Что проверяется в ходе smoke-тестирования (дымового тестирования)?

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

Ответ

Smoke-тестирование — это поверхностная проверка критического функционала после сборки или развертывания, чтобы убедиться, что система готова к более глубокому тестированию.

Цель: Обнаружить критические (блокирующие) дефекты, которые делают дальнейшее тестирование бессмысленным.

Что обычно проверяется (на примере типичного веб-приложения):

  1. Доступность и запуск: Приложение успешно развернуто и отвечает по основному URL.
  2. Критичный пользовательский путь (Happy Path):
    • Загрузка главной страницы.
    • Аутентификация: Вход в систему с валидными учетными данными.
    • Навигация: Переход по основным разделам (например, "Каталог", "Корзина").
    • Ключевое действие: Создание или просмотр основной сущности (например, добавление товара в корзину).
  3. Работа интеграций: Базовое подключение к основному API и базе данных.

Пример набора smoke-тестов (псевдокод):

# 1. Проверка доступности сервиса
assert health_check() == "OK"

# 2. Проверка главной страницы
response = get("/")
assert response.status_code == 200
assert "Добро пожаловать" in response.text

# 3. Проверка входа в систему
auth_response = post("/api/login", json={"login": "test", "pass": "test"})
assert auth_response.status_code == 200
assert "session_id" in auth_response.cookies

# 4. Проверка загрузки основного каталога
catalog_response = get("/api/products", cookies=auth_response.cookies)
assert catalog_response.status_code == 200
assert isinstance(catalog_response.json(), list)

Важно: Smoke-тесты должны быть быстрыми (минуты) и стабильными. Они не проверяют детали, граничные случаи или производительность.