Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Какие метрики в автотестировании вы используете?

metrics
Теги: #<Tag:0x00007f7b642895b0>

#1

здравствуйте, сообственно сабж. Какие метрики вы используете? Возможно у кого-то есть хорошая литература по метрикам ?


(Yury) #2

Вот тут человек неплохо тему раскрыл:


#3

Практическая часть.
Предположим, что речь идет об оценке “качества” авто-тестов.
Я бы выделил 4 класса метрик, которыми пользуюсь:

  1. Метрики покрытия
    В частности, метрики покрытия кода. Можно мерить покрытие функций, ветвлений или строк кода - зависит от инструментария.
    Аналогично, можно мерить покрытие любых других объектов или сущностей (экранов приложения, контролов, вызовов АПИ, требований, сценариев).

  2. Метрика эффективности обнаружения
    Процент регрессионных багов, найденных авто-тестами. Для это нужно маркировать дефекты в баг-трекинг системе, чтобы получать статистику.
    С моей точки зрения, одна из прямых и самых полезных оценок “качества” авто-тестов. Единственная проблема - трудно ставить цели роста по ней (т.к. нахождение багов носит вероятностный характер).

  3. Метрика “хрупкости” тестов
    Процент ложных срабатываний и устойчивость к различным инфраструктурным сбоям. Цель - выявлять и править нестойкие тесты.

  4. Время выполнения для одной сборки
    Сколько требуется ресурсов и времени на получение результатов прогона для одной сборки.

Теоретическая часть.
Есть такой подход GQM (Goal Question Metric - https://en.wikipedia.org/wiki/GQM) для формирования системы метрик, используемых в организации.
Т.е. сначала определяются проблемы и цели, а уже потом под них подбираются метрики.
Например, на начальном этапе авто-тестов мало, и вопросы наращивания покрытия важнее “хрупкости”.
Когда авто-тестов много, гораздо большую роль играют ресурсно-временные аспекты и избыточность набора тестов.
А брать какой-то универсальный набор метрик я бы не советовал - лучше определиться, что наиболее актуально в данный момент.