Ответ
Smoke-тестирование (Build Verification Test) — это минимальный набор проверок, который подтверждает, что ключевые функции приложения работают после новой сборки. Его цель — быстро отсеять совершенно нерабочие билды.
Критерии отбора smoke-кейсов:
- Критичность: Проверяются только самые важные, базовые функции, без которых продукт не может быть использован.
- Скорость: Кейсы должны выполняться быстро (минуты, а не часы).
- Стабильность: Кейсы должны быть максимально надежными и не флакющими.
Типичные сценарии для smoke-набора:
- Запуск приложения: Приложение успешно стартует без критических ошибок.
- Авторизация: Пользователь может войти в систему с валидными данными.
- Навигация: Открываются основные разделы приложения (главная страница, профиль).
- Критическая интеграция (если есть): Проверка доступности основного внешнего сервиса (например, платежного шлюза).
Пример автоматизированного smoke-теста для API:
import requests
def test_smoke_health_check():
"""Проверка, что основное API отвечает."""
response = requests.get("https://api.example.com/health", timeout=5)
assert response.status_code == 200
assert response.json()["status"] == "OK"
def test_smoke_user_login():
"""Проверка базового сценария входа."""
login_data = {"username": "test_user", "password": "secure_pass"}
response = requests.post("https://api.example.com/auth/login", json=login_data)
assert response.status_code == 200
assert "access_token" in response.json() # Ключевой токен получен
Если smoke-тесты не проходят, сборка считается нестабильной, и дальнейшее глубокое тестирование не начинается.