Какую цель преследует регрессионное тестирование?

«Какую цель преследует регрессионное тестирование?» — вопрос из категории Тестирование, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Цель регрессионного тестирования — обнаружить новые ошибки (регрессии) в уже протестированном функционале после внесения изменений в код, таких как:

  • Исправление багов.
  • Добавление новой функциональности.
  • Рефакторинг или оптимизация кода.
  • Изменение конфигурации или зависимостей.

Почему это важно? Любое изменение может непреднамеренно нарушить работу существующих функций. Регрессионные тесты обеспечивают стабильность продукта.

Основные подходы:

  • Полный регресс: Запуск всех существующих тестов. Надежно, но может быть долго для больших проектов.
  • Выборочный регресс: Запуск только тестов, связанных с измененным модулем и критически важными функциями. Требует анализа влияния изменений.
  • Автоматизированный регресс: Интеграция в CI/CD-пайплайн для автоматического запуска после каждого коммита.

Практический пример: Допустим, в интернет-магазине исправили баг в расчете скидки. После исправления необходимо запустить:

  1. Тесты на сам расчет скидки.
  2. Тесты на оформление заказа (где используется скидка).
  3. Тесты на отображение итоговой цены в корзине.

Это гарантирует, что исправление не сломало смежную логику.