← Назад к списку
ТехническаяТестирование (QA)Junior

Чем отличаются смоук, санити и регрессионное тестирование? Когда какое проводится?

Короткий ответ

  • Смоук — быстрая проверка, что сборка вообще живая
  • Смоук гоняется на каждую сборку, часто автоматизирован
  • Санити — узкая проверка конкретного изменения или фикса
  • Регресс — проверка, что старое не сломалось от нового
  • Регресс широкий и длинный, основной кандидат на автоматизацию
  • Порядок: смоук, потом новая функциональность, потом регресс

Смоук отвечает «можно ли тестировать сборку», санити — «работает ли конкретное изменение», регресс — «не сломалось ли всё остальное».

Как сказать вслух

пример ответа

Смоук — это короткий набор проверок критичных функций: приложение открывается, логин работает, главный сценарий проходит. Если смоук падает, сборку возвращают без дальнейшего тестирования. Санити — точечная проверка конкретного изменения или фикса, без охвата всей системы. А регресс — это широкая проверка, что новые изменения не сломали существующую функциональность. Регресс самый объёмный, поэтому его в первую очередь автоматизируют.

Подробный ответ

Основной ответ

Эти три вида отличаются целью и глубиной. Смоук-тестирование (smoke) — поверхностная проверка самых критичных функций сборки: ставится ли она, открывается ли, работают ли ключевые сценарии. Выполняется на каждую сборку, часто автоматизировано и встроено в CI как гейт: красный смоук означает, что тестировать дальше бессмысленно. Санити (sanity) — узконаправленная проверка разумности конкретного изменения: после фикса или небольшой доработки проверяется затронутая область, без полного прохода. Регрессионное тестирование — проверка того, что изменения не сломали ранее работавшую функциональность; выполняется перед релизом или регулярно, охватывает широкий набор сценариев и является главным кандидатом на автоматизацию, потому что повторяется из релиза в релиз. Терминологию команды трактуют по-разному, поэтому на проекте важнее договориться о составе наборов, чем спорить об определениях.

Ключевые моменты

  • Смоук как гейт CI. Автоматический смоук после каждого деплоя на стенд быстро отсекает сломанные сборки.
  • Санити — про глубину, не ширину. Проверяется одна область, но внимательно; обычно вручную после точечного изменения.
  • Регресс и анализ влияния. Полный регресс дорог, поэтому состав выбирают по анализу затронутых областей и рискам.
  • Подтверждающее тестирование отдельно. Re-testing — проверка самого фикса; регресс — проверка окружающей функциональности.

Практический контекст

Один из самых частых вопросов на интервью любого уровня, потому что термины путают. Интервьюер может дать ситуацию: «пришла сборка с одним фиксом за день до релиза — что будете гонять?» Ожидаемый ответ: смоук, подтверждение фикса, санити вокруг изменения и регресс по затронутой области, с объяснением почему не полный регресс.

Частые ошибки

  • Считают смоук и санити синонимами и не могут развести их по цели
  • Говорят «прогоню полный регресс» на любое изменение, не упоминая анализ влияния
  • Путают регресс с повторной проверкой самого фикса (re-testing)

ИП Кочкин Алексей Сергеевич · ИНН 390509026279 · ОГРНИП 325390000030973 · jiniys2005@yandex.ru