#яжменеджер #рабочийпроцесс
Други, пока еду на SQAшечку, есть время для следующей части про метрики. Напомню, что первый блок метрик - про автоматизацию (АТ - автотесты).
Группа метрик №1
тут.
Группа метрик №2:
Стабильность АТ.
1️⃣% успешных тестов или Test Pass Rate
Считается как Количество успешных тестов / Общее количество тестов) * 100.
Такая метрика показывает качество кода и тестов для каждого прогона.
Может использоваться как квалити гейт в CI/CD (например, Pass Rate>95% и релиз автоматом катится на прод).
Однако, если тесты постоянно показывают 100% успешность это так же может быть тревожным сигналом. Например, тесты ложноположительны или они слишком простые и не затрагивают сложную логику.
Низкий же процент (примерно меньше 70) точно означает, что необходимо что-то исправлять: либо код очень забагованный, либо (что чаще) автотесты крайне не стабильные, ещё вероятно, что причина в окружении. В любом случае необходимо провести тщательный анализ. Если низкий процент успешности не повышать, то доверие к автотестам будет пропадать, а с ним и весь профит.
2️⃣Количество флаки тестов. Здесь нет простой формулы подсчёта, т.к. первоначально необходимо измерить каждый тест и определить его флаки рейт, т.е. процент фейлов теста по причинам, не связанным с багами функциональности.
Flaky rate (одного теста) = (Количество фейлов / Количество запусков) * 100.
Далее нам надо определиться, какие тесты мы будем считать "Flaky", т.е. пороговый Flaky rate, например, 5%. Т.о. количество флаки тестов - это сколько тестов имеют Flaky rate > 5%.
Так же иногда бывает полезно оценить % флаки тестов от общего числа АТ: (Количество флаки тестов / Общее количество АТ) * 100.
Пример:
У нас есть 100 АТ. 5 из них имеют Flaky Rate > 5% (нашего установленного порога). 5 флаки тестов из 100 - это 5%.
На мой взгляд, это крайне важная метрика для автоматизации, благодаря которой можно своевременно предпринимать меры для поддержки доверия к АТ и варьировать планы на автоматизацию: если у вас в проекте много флаки, нет смысла делать новые АТ, пока не стабилизируете уже существующие.
3️⃣Среднее время восстановления сломанных тестов.
Считается как среднее время по всем тестам: от получения фейла до прогона с положительным результатом в случае, когда АТ нуждался в починке/актуализации (т.е. падал не из-за бага системы).
Такая метрика показывает насколько быстро команда может справляться с такими задачами. Ведь наивысший приоритет в разработке АТ - это стабильная работа существующих, а уже потом идёт написание новых.
Также эта метрика служит монитором, позволяющим вовремя заметить отклонения и предпринять соответствующие меры.
А как вы меряете стабильность ваших АТ?