Ответ
Smoke-тестирование (санитарная проверка) — это быстрый набор тестов, выполняемый после каждой новой сборки или развертывания, чтобы убедиться, что критически важные функции системы работают и можно приступать к более глубокому тестированию.
Ключевые характеристики:
- Быстрое выполнение (минуты, а не часы).
- Проверка основных, а не всех путей.
- Высокая стабильность (минимальная зависимость от внешних данных).
Типичные сценарии для smoke-набора:
- Запуск приложения и доступность главной страницы.
- Аутентификация и авторизация (вход с валидными учетными данными).
- Критичный CRUD-сценарий (например, создание и просмотр основной сущности).
- Проверка ключевого интеграционного пункта (например, ответ от основного микросервиса или БД).
Пример автоматизированного smoke-теста на Python:
def test_smoke_main_workflow(api_client, test_user):
"""Проверка основного потока: вход и создание элемента."""
# 1. Аутентификация
auth_response = api_client.post("/login", json=test_user)
assert auth_response.status_code == 200
token = auth_response.json()["access_token"]
api_client.headers = {"Authorization": f"Bearer {token}"}
# 2. Создание основного ресурса
new_item = {"title": "Smoke Test Item"}
create_response = api_client.post("/items", json=new_item)
assert create_response.status_code == 201
item_id = create_response.json()["id"]
# 3. Проверка, что ресурс доступен
get_response = api_client.get(f"/items/{item_id}")
assert get_response.status_code == 200
assert get_response.json()["title"] == new_item["title"]
Цель: Не найти все баги, а быстро дать сигнал "сборка сломана", экономя время команды на запуск полного регресса.