Ответ
Smoke-тестирование — это поверхностный, быстрый набор проверок, выполняемый после каждой новой сборки (build) или развертывания (deploy) приложения.
Основная цель: убедиться, что критически важные функции системы работают, и сборка достаточно стабильна для начала более глубокого тестирования (например, регрессионного). Если smoke-тесты не проходят, сборка "отбраковывается", и дальнейшее тестирование не имеет смысла.
Ключевые характеристики:
- Выполняется первым после получения сборки.
- Охватывает основной сценарий ("happy path") ключевых модулей (например, вход в систему, загрузка главной страницы, создание базовой сущности).
- Высокая скорость — обычно 5-30 минут.
- Может быть ручным или автоматизированным. Автоматизация предпочтительна для скорости и consistency.
Пример набора smoke-тестов для веб-приложения:
- Загрузка главной страницы (статус 200).
- Успешный вход с валидными учетными данными.
- Отображение основного виджета/панели управления после входа.
- Выход из системы.
Пример автоматизированного smoke-теста на Python/pytest:
import pytest
import requests
BASE_URL = "https://app.example.com"
def test_homepage_is_accessible():
response = requests.get(BASE_URL)
assert response.status_code == 200
assert "Welcome" in response.text
def test_user_can_login():
login_url = f"{BASE_URL}/api/login"
credentials = {"email": "test@example.com", "password": "test123"}
response = requests.post(login_url, json=credentials)
assert response.status_code == 200
json_response = response.json()
assert "auth_token" in json_response # Проверяем, что токен получен