Smoke-тестирование и регрессионное тестирование — важные виды ручного тестирования, применяемые на разных этапах разработки и выпуска обновлений.
История вопроса:
Smoke-тест (от “smoke test” в электронике — проверка, не идет ли «дым» после включения прибора) — это быстрая минимальная проверка, что основные функции системы работоспособны. Регрессионное тестирование — это полная или частичная перепроверка функционала для убеждения, что новый код не нарушил существующие функции.
Проблема:
Часто эти тесты путают или применяют некорректно, теряя время либо пропуская важные проверки. Также возникают вопросы, как и по каким критериям формировать наборы тестов для smoke и regression.
Решение:
Ключевые особенности:
Входит ли smoke-тестирование в регрессионное?
Нет, smoke — подмножество особых «жизненно важных» тестов, а регресс включает в себя и новые, и важные старые проверки.
Можно ли запускать только smoke-тесты перед релизом?
Нет — этого недостаточно. Smoke только сигнализирует, что всё "живое", но не гарантирует отсутствие критических багов в менее «публичной» функциональности.
Допустимо ли менять состав smoke-тестов на каждом релизе?
Нет, состав smoke стабильный и меняется только при радикальных изменениях продукта.
Перед релизом команда ограничивается только smoke-тестами, не проводит регрессионное тестирование. В результате обнаруживаются баги в малозаметных, но важных функциях уже после релиза.
Плюсы:
Минусы:
После каждого деплоя на тестовое окружение проводят сначала smoke-тесты, а потом — регрессионные по обновляемым сценариям. Документируют результаты и оперативно дорабатывают тесты при изменениях в продукте.
Плюсы:
Минусы: