Что такое регрессия?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Регрессия (Regression)
Регрессия — это когда старый функционал, который работал раньше, сломался после добавления новых изменений или исправлений.
Примеры
Пример 1: Мы добавили функцию "Рекомендации товаров". После этого логин перестал работать.
Пример 2: Мы исправили баг с фильтром по цене. Теперь фильтр по категории работает неправильно.
Регрессионное тестирование
Регрессионное тестирование — это переполнение набора тестов, которые уже проходили раньше, чтобы убедиться что ничего не сломалось.
Когда проводить
- После каждого релиза
- После исправления критичного бага
- После обновления dependency
- После refactoring
- После интеграции с внешним сервисом
Как организовать
Набор регрессионных тестов:
- Критичные пути приложения
- Часто используемые функции
- Недавно исправленные баги
- Интеграционные точки
Пример для e-commerce:
- Логин/logout
- Поиск товаров
- Фильтрация
- Добавление в корзину
- Checkout
- Оплата
- Tracking заказа
Автоматизация
Регрессионное тестирование идеально для автоматизации.
Цикл:
- Разработчик делает change
- CI/CD запускает регрессионные тесты
- Если тесты зеленые → merge
- Если тесты красные → баг
Риски без регрессии
- Скрытые баги в production
- Потеря доверия пользователей
- Срочные фиксы
- Потеря времени на отладку
Best Practices
Покрытие: Регрессионные тесты должны покрывать как минимум критичный функционал.
Скорость: Набор должен выполняться быстро (< 1 часа для CI/CD).
Maintenance: Держать тесты актуальными когда меняется UI или логика.
Приоритеты: Тестировать критичное в первую очередь.
Регрессионное тестирование — ключ к стабильности продукта.