Как вы боретесь с флаки
Вопрос
В вашем наборе 10% тестов нестабильны, команда перестала доверять CI. Что будете делать?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Измерить: история прогонов, какие тесты флакают и как часто
Карантин известных флаки с владельцем и сроком, чтобы вернуть доверие к билду
Разбор по причинам: ожидания, данные, порядок, стенд, время
Инструменты: многократный прогон, трейсы, видео, логи сервера
Профилактика: правила ревью (без sleep, свои данные), линтеры
Ретраи только как временная мера с отчётом о flaky
Что могут спросить следом
- Как отличить флаки теста от флаки продукта?
- Как убедить команду выделить время на починку?
- Какую долю флаки вы считаете допустимой?
Разбор
Образцовый ответ: «Сначала цифры: собираю историю прогонов и нахожу тесты, которые на одном коммите и падали, и проходили. Самые частые переношу в карантин: они крутятся, но не блокируют мерж, у каждого есть владелец и задача. Так команда снова верит красному билду. Дальше разбираю причины: чаще всего это ожидания времени вместо состояния, общие данные, зависимость от порядка, нестабильный стенд. Воспроизвожу прогоном одного теста 50 раз и смотрю трейс. Бывает, что флаки это настоящая гонка в продукте, такое завожу как баг. Чтобы не росло снова: в ревью запрещаю sleep и общие данные, ретраи включаю, но отчёт о flaky смотрю каждую неделю»).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.