В какой последовательности выполнять санитарный, смоук и регрессионный виды тестирования
Что проверяют
Различаете ли вы три вида проверок по цели и объёму, а не только по названию, и понимаете ли, почему порядок именно такой. Следом обычно просят объяснить разницу между sanity и повторной проверкой исправленного бага и рассказать, как отбираются тесты для регрессии.
Как отвечать
Общепринятый порядок на новой сборке: смоук, затем санитарное, затем регрессионное.
- смоук: первая проверка сборки. Приложение запускается, работает вход, открываются ключевые экраны, проходит главный сценарий. Цель одна: понять, можно ли вообще тестировать. Упал смоук, сборка возвращается разработчикам. Обычно это короткий автоматизированный набор, который гоняется в CI на каждую сборку;
- санитарное (sanity): узкая и неглубокая проверка того, что изменилось. Пришёл фикс или доработка, и вы убеждаетесь, что конкретная функция и её ближайшее окружение ведут себя разумно;
- регрессионное: проверка, что изменения не сломали то, что работало раньше. Самый большой объём, поэтому его делают последним, когда уже известно, что сборка жизнеспособна. Тесты отбирают по анализу влияния изменений и приоритету, основную часть автоматизируют.
Порядок следует из стоимости: сначала дешёвые проверки, которые могут остановить всё остальное, потом дорогие. Стоит оговорить, что терминология плавает: в глоссарии ISTQB sanity test долго значился синонимом smoke test, поэтому на собеседовании полезно сказать, какое разделение используете вы и ваша команда.
Где спотыкаются
Ставят санитарное тестирование первым. Проверять конкретную правку на сборке, которая может даже не запуститься, значит тратить время впустую.
Путают sanity с повторным тестированием (retest). Повторное тестирование подтверждает, что закрыт конкретный баг, а sanity смотрит шире, на функциональность вокруг изменения.
Говорят, что регрессия это «прогнать все тесты». На больших продуктах полный ручной прогон занимает дни, поэтому важно объяснить, по какому принципу вы сужаете набор и что при этом отдаёте автотестам.