Как организовать и проводить Smoke-тестирование?

«Как организовать и проводить Smoke-тестирование?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Smoke-тестирование (Sanity Check) — это быстрая проверка базовой работоспособности критичных функций приложения после сборки или деплоя. Его цель — отсечь нерабочие билды до запуска более глубокого тестирования.

Ключевые принципы:

  • Минимальный набор: Тестируются только самые важные, сквозные пользовательские сценарии (например: запуск приложения, вход в систему, доступ к основному модулю).
  • Высокая скорость: Выполняется за несколько минут (обычно 5-15).
  • Стабильность: Тесты должны быть максимально надежными и не зависеть от нестабильных данных.
  • Ранний запуск: Интегрируется в CI/CD пайплайн сразу после успешной сборки и деплоя на тестовое окружение.

Пример чек-листа для веб-приложения:

  1. Главная страница загружается без критических ошибок в консоли.
  2. Пользователь может успешно войти с валидными учетными данными.
  3. После входа загружается личный кабинет (dashboard).
  4. Работает ключевая функция (например, создание нового элемента).
  5. Проверяется доступность критичных внешних сервисов (API, база данных).

Пример интеграции в CI (псевдокод):

# .gitlab-ci.yml или аналоги
stages:
  - build
  - deploy_to_staging
  - smoke_test

smoke_test:
  stage: smoke_test
  script:
    - npm run smoke-tests # Запуск автоматизированных smoke-тестов
  allow_failure: false   # Падение smoke-тестов блокирует дальнейшие стадии

Результат: Если smoke-тесты проходят, билд считается условно стабильным для запуска регрессионного тестирования. Если нет — сборка бракуется, и команда получает уведомление о критической поломке.