Ответ
Да, smoke-тестирование (санитарная проверка) является подмножеством регрессионного тестирования. Оно выполняет роль быстрого фильтра.
Smoke-тестирование:
- Цель: Проверить, работает ли базовая, критически важная функциональность после сборки (build).
- Объем: Узкий, покрывает основные сценарии (например, запуск приложения, вход в систему, загрузка главной страницы).
- Когда выполняется: Сразу после получения новой сборки.
Regression-тестирование:
- Цель: Убедиться, что новые изменения не сломали существующую функциональность.
- Объем: Широкий, включает smoke-тесты, тесты на новые функции и глубокую проверку ранее работавших модулей.
Аналогия:
- Smoke — это проверка, есть ли «дым» (явные критические поломки). Если дым есть, дальнейшее тестирование бессмысленно.
- Regression — это полная проверка «здоровья» системы после изменений.
Пример набора тестов:
# Smoke-тест (часть регрессии)
def test_smoke_app_starts():
response = client.get('/health')
assert response.status_code == 200
# Регрессионный тест (более глубокий)
def test_regression_user_profile():
# Проверяет комплексный сценарий, который работал ранее
user = login('test_user')
profile = user.get_profile()
assert profile['email'] == 'test@example.com'
assert profile['settings'] is not None