91% прохождения. Статус Green. Выкатили. Худшая регрессия в истории.

Мы достигли 91% прохождения теста на классификацию интентов. Порог составлял 90%. Мы преодолели планку. Мы выкатили код.

Это была наша худшая регрессия за квартал.

Проблема заключалась в нашей математике. Наш показатель оценки держался на уровне 96% или 97% неделями. Затем одно изменение сломало один конкретный сегмент (slice): неоднозначные запросы на возврат средств. Этот сегмент упал с 98% до 74%.

Этот сегмент составляет 4% от нашего общего трафика. Поскольку мы смотрели на среднее значение, общий показатель упал всего до 91%. Статус Gate остался зеленым.

Агрегированные показатели скрывают сбои за шумом.

Пользователи из этого сегмента не видели 91%. Они видели 74%. Статический порог говорит о том, летит ли вся система в пропасть. Он не говорит о том, что одна часть вашей системы умирает. Если 96 сегментов в порядке, а один падает, высокий средний показатель скрывает этот крах. Вы узнаете об ошибке из тикетов техподдержки, а не из инструментов тестирования.

Мы изменили стратегию. Мы перестали использовать абсолютные числа для проверки (gating). Теперь мы сравниваем результаты с последним успешным запуском.

Мы используем два правила. Оба должны выполняться:

  • Ни один отдельный сегмент не должен падать более чем на 3 пункта относительно baseline.
  • Общий агрегированный показатель не должен падать более чем на 1,5 пункта относительно baseline.

В нашем недавнем случае сегмент возвратов упал на 24 пункта. Первое правило сразу бы это отловило.

Остерегайтесь ловушек дельта-гейтинга (delta gating). Если ваш baseline обновляется при каждом запуске, вы можете незаметно скатиться к провалу. Падение на 0,5 пункта каждый день будет проходить любой тест. Вы медленно превращаетесь в плохой продукт.

Следуйте этим шагам, чтобы исправить ваше тестирование:

  • Обновляйте ваш baseline только тогда, когда ваша основная ветка (main branch) в статусе green.
  • Требуйте одобрения человеком любого намеренного снижения показателей.
  • Ваш baseline должен быть фиксацией того, что работает, а не просто того, что было в последний раз.
  • Проверяйте дисперсию (variance) ваших последних 5 успешных (green) запусков. Если сегмент колеблется сильнее вашего порога, значит, ваш порог — это шум.
  • Тестируйте свой самый маленький сегмент. Подумайте, насколько сильно он может упасть, прежде чем это заметит агрегированный показатель. Если ответ — большое число, значит, ваш агрегат скрывает ошибки.

Source: https://dev.to/ethanwritesai/91-pass-rate-gate-green-shipped-worst-regression-we-had-all-quarter-4dfn

Optional learning community: https://t.me/GyaanSetuAi