Интересная статья о выявлении регрессии в результатах тестов на производительность в проекте Skia. Если у вас большое количество тестов на производительность и много поддерживаемых платформ, то количество измерений получается огромным (в Skia для каждого коммита 40,000 измерений). Оценивать такие результаты вручную затруднительно. Можно сделать границы значений для каждого теста (как в chromium), но такое решение не всегда будет работать и вы будете получать ложно-положительные срабатывания. Автор предлагает такое решение:
- собрать все серии результатов для фиксированного набора коммитов (в Skia это обычно 100-250 изменений) - нормализовать серии результатов для каждого теста, чтобы среднее значение стало равно 0 и стандартное отклонение 1.0 - сгруппировать нормализованные серии результатов с помощью knn (метод k ближайших соседей) - для каждой группы вычислить коэффициент регрессии и сравнивать значение коэффициента с каким-то эмпирическим числом, специфичным для проекта и тем самым автоматически выявлять регрессии.