Ответ
Smoke-тестирование (Sanity Check) — это быстрая проверка ключевой функциональности после сборки (build), чтобы убедиться, что система в принципе работоспособна для начала более глубокого тестирования. Это "поверхностный" тест.
Регрессионное тестирование — это полная или выборочная проверка уже протестированной функциональности после внесения изменений (багфикс, новая фича), чтобы убедиться, что эти изменения не сломали существующую работу.
| Критерий | Smoke-тестирование | Регрессионное тестирование |
|---|---|---|
| Цель | Проверить готовность сборки к тестированию | Проверить отсутствие регрессий после изменений |
| Глубина | Поверхностная, только основные сценарии | Глубокая, покрывает затронутые и смежные области |
| Время | Минуты | Часы или дни |
| Когда выполняется | После каждой новой сборки | Перед релизом, после значительных изменений |
Пример Smoke-теста для API:
// Пример для Postman/Newman
pm.test("SMOKE: API Gateway responds", function () {
pm.response.to.have.status(200);
});
pm.test("SMOKE: Core auth service is up", function () {
const jsonData = pm.response.json();
pm.expect(jsonData.service_status).to.eql("OK");
});
Практика: В CI/CD пайплайне сначала запускается набор Smoke-тестов. Если они проходят, затем может запускаться регрессионная или полная тест-сьюта.