Автоперезапуск сделал пайплайн зелёным, а два бага ушли в прод: чем реально снижать flaky
Доля нестабильных тестов в регрессе — 13,5%. Чтобы пайплайн перестал мигать, команда включила автоматический перезапуск упавших тестов до трёх раз. Пайплайн позеленел.
За квартал на прод ушли два дефекта, которые эти тесты ловили примерно в половине прогонов.
Что делать с нестабильностью?
- Увеличить число автоперезапусков с трёх до десяти и разбирать только те тесты, которые не позеленели ни за одну попытку
- Вынести нестабильные тесты в отдельное необязательное задание с allow_failure, оставив в основном пайплайне только те, что не мигали месяц
- Удалить тесты, падавшие за месяц больше трёх раз, и договориться, что эти сценарии закрывают юнит-тестами разработчики
- Собрать историю прогонов, разложить падения по причинам и чинить причины: фиксированные паузы заменить ожиданием условия, тестовые данные развести по тестам
- Считать прогон зелёным, если упало не больше пяти процентов тестов, а список падений просматривать раз в неделю
