Найти в Дзене

Метрики покрытия кода в тестировании. Часть 2.

Оглавление

Продолжаем изучат метрики в тестировании, в прошлой статье мы в целом разобрали, что это такое.

Метрика покрытия кода

Показатель покрытия кода даёт возможность определить, насколько тщательно написанный программистом код протестирован модульными или интеграционными тестами.

Для вычисления показателя используется формула:

T = (C / Code) ⋅ 100%, где:
T — тестовое покрытие;
C — количество строк кода, покрытых тестами;
Code — общее количество строк кода.

Для разработчиков важно регулярно писать и использовать модульные тесты, чтобы проверять корректность кода. Это позволяет быстро находить дефекты в модулях ещё до этапа тестирования, что значительно экономит время. Чем больше модульных тестов написано и чем больше строк кода они покрывают, тем выше шанс обнаружить дефект на раннем этапе. Поэтому необходимо постоянно отслеживать метрику покрытия кода. В этом могут помочь специальные инструменты, например, SonarQube, который является одним из самых популярных на сегодняшний день.

В чём суть?

На самом деле в процессе разработки иногда добавляют разные условия, методы, которые актуальны в текущий момент, но с течением времени, это всё может стать не актуальным, это в лучшем случае, а в худшем, стать лишним кодом или же кодом, который ломает какую либо логику или же замедляет её.

Например

У нас есть простое сложение 2 чисел и 3 варианта исхода.

-2

Это примитивный пример, но очень показательный. Давайте представим что а и в у нас равны 1 и 3 соответственно. Тогда у нас будут задействованы следующие строки:

-3

3 из 8. То есть покрытие операторов будет 37,5%. Таким образом и формируется всё покрытие кода. В конечном итоге можно будет определить ненужные строки и провести рефакторинг.

SonarQube — это платформа с открытым исходным кодом, предназначенная для постоянного анализа и измерения качества кода и его покрытия.

Её возможности:

  1. Поддержка языков Java, C, C++, C#, Objective-C, Swift, PHP, JavaScript, Python и других.
  2. Предоставление отчётов о дублировании кода, соблюдении стандартов кодирования, покрытия кода модульными тестами, возможные ошибки в коде, плотность комментариев в коде, технический долг и другое.
  3. Сохранение истории метрик и построение графиков изменения этих метрик во времени.
  4. Позволяет интегрироваться с такими IDE, как Visual Studio, IntelliJ IDEA и Eclipse, с помощью плагина SonarLint.
  5. Обеспечивает интеграцию с внешними инструментами: JIRA, Mantis, LDAP, Fortify и другими.
  6. Можно расширять существующую функциональность с помощью сторонних плагинов.

Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!

Обучение тестированию

Наука
7 млн интересуются