Какие метрики тестирования важны в условиях CI/CD
Что проверяют
Понимаете ли вы, что метрики нужны для решений, а не для отчёта руководству. Хороший ответ отличает метрики скорости обратной связи от метрик качества продукта и объясняет, какое решение принимается по каждой цифре. Следом спрашивают, какую метрику вы чинили бы первой.
Как отвечать
Соберите ответ по группам:
- время обратной связи: сколько идёт пайплайн на пул-реквесте, считать по p95, а не по среднему. Ориентир: минуты на юнит-прогоне, до 15-20 минут на весь блокирующий набор, длинные сценарии уносятся в ночной прогон;
- доля нестабильных тестов: сколько тестов дают разный результат на одном коммите. Метрика номер один, потому что мигающий тест обесценивает красную сборку и команда перестаёт на неё смотреть. Лечится карантином и отдельной очередью на починку;
- стабильность основной ветки: процент зелёных сборок и суммарное время, которое ветка простояла красной;
- покрытие по изменённому коду: порог вроде 80% на строки пул-реквеста работает, общий процент по проекту годами стоит на месте и ничего не меняет. Помните, что покрытие показывает исполнение кода, а не проверку поведения, поэтому рядом уместно мутационное тестирование (
PIT,Stryker); - утечка дефектов: сколько багов нашли после релиза против найденных до него, с разбивкой по этапу обнаружения. Это прямая проверка, ловят ли тесты хоть что-то;
- DORA-четвёрка: частота выкаток, время от коммита до прода, доля неудачных изменений и время восстановления. Именно на этом языке разговор идёт с бизнесом.
Назовите и источники цифр: отчёты JUnit XML и Allure, история прогонов в CI, трекер с полем «этап обнаружения», ошибки на проде из Sentry.
Где спотыкаются
Делают покрытие целью. Оно немедленно дорастает до нужного процента тестами без единого утверждения, а качество не меняется.
Считают количество тест-кейсов и найденных багов показателем качества. Сотня мелких кейсов на одну форму выглядит внушительно и ничего не говорит о рисках, а большое число багов одинаково хорошо объясняется и хорошим тестированием, и плохим кодом.
Меряют среднее время прогона. Среднее прячет длинный хвост, а команда ждёт как раз p95, куда попадают повторные запуски.