Ответ
Цель регрессионного тестирования — обнаружить новые ошибки (регрессии) в уже протестированном функционале после внесения изменений в код, таких как:
- Исправление багов.
- Добавление новой функциональности.
- Рефакторинг или оптимизация кода.
- Изменение конфигурации или зависимостей.
Почему это важно? Любое изменение может непреднамеренно нарушить работу существующих функций. Регрессионные тесты обеспечивают стабильность продукта.
Основные подходы:
- Полный регресс: Запуск всех существующих тестов. Надежно, но может быть долго для больших проектов.
- Выборочный регресс: Запуск только тестов, связанных с измененным модулем и критически важными функциями. Требует анализа влияния изменений.
- Автоматизированный регресс: Интеграция в CI/CD-пайплайн для автоматического запуска после каждого коммита.
Практический пример: Допустим, в интернет-магазине исправили баг в расчете скидки. После исправления необходимо запустить:
- Тесты на сам расчет скидки.
- Тесты на оформление заказа (где используется скидка).
- Тесты на отображение итоговой цены в корзине.
Это гарантирует, что исправление не сломало смежную логику.