Вопрос с собеседования · Тестирование (QA)

Чем отличаются smoke, sanity и регрессионное тестирование?

JuniorВиды тестирования
Ещё спрашивают так:
  • Что такое смоук-тестирование?
  • Чем ретест отличается от регресса?
  • Что такое регрессионное тестирование?
Коротко

Smoke — быстрая проверка, что сборка вообще работает; sanity — узкая проверка конкретного исправления или функции; регресс — что изменения не сломали старое.

  • Ретест — повторная проверка исправленного бага, регресс — проверка всего вокруг
  • Регресс — главный кандидат на автоматизацию

А ещё Порядок на сборке: smoke → проверки задачи и ретест → регресс

Подробно

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

Sanity-тестирование — точечная проверка конкретной области после изменения: исправили расчёт скидки — убеждаемся, что скидка считается и соседние расчёты логичны. Глубоко всё не проверяем.

Ретест (подтверждающее тестирование) — повторное выполнение проверки, которая нашла дефект, чтобы убедиться, что он исправлен.

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

Термины smoke и sanity в разных компаниях используют по-разному — на собеседовании стоит дать определение и пример, а не спорить о названиях.

Пример

Вышла сборка с исправлением бага «не применяется промокод». Smoke: приложение открывается, вход работает, можно оформить заказ. Ретест: промокод из баг-репорта теперь применяется. Sanity: проверяем разные типы промокодов. Регресс: оплата, доставка и история заказов работают как раньше.

Что хотят услышать

  • Чёткое различие целей трёх видов и ретеста.
  • Пример на одной сборке.
  • Связь регресса с автоматизацией.

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

  • Путать ретест и регресс.
  • Считать smoke полным тестированием сборки.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Регресс — повторная проверка только одного исправленного бага перед релизом
  • ✗Smoke — полная проверка всех функций перед релизом, регресс — проверка одного исправления
  • ✓Smoke — сборка жива; sanity — исправление; регресс — старое цело
  • ✗Регресс плохо подходит для автоматизации, поэтому его всегда делают вручную

Что спросят дальше

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования