Ответ
Smoke-тестирование — это поверхностная проверка критического функционала после сборки или развертывания, чтобы убедиться, что система готова к более глубокому тестированию.
Цель: Обнаружить критические (блокирующие) дефекты, которые делают дальнейшее тестирование бессмысленным.
Что обычно проверяется (на примере типичного веб-приложения):
- Доступность и запуск: Приложение успешно развернуто и отвечает по основному URL.
- Критичный пользовательский путь (Happy Path):
- Загрузка главной страницы.
- Аутентификация: Вход в систему с валидными учетными данными.
- Навигация: Переход по основным разделам (например, "Каталог", "Корзина").
- Ключевое действие: Создание или просмотр основной сущности (например, добавление товара в корзину).
- Работа интеграций: Базовое подключение к основному 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-тесты должны быть быстрыми (минуты) и стабильными. Они не проверяют детали, граничные случаи или производительность.