Продолжаем изучат метрики в тестировании, в прошлой статье мы в целом разобрали, что это такое.
Метрика покрытия кода
Показатель покрытия кода даёт возможность определить, насколько тщательно написанный программистом код протестирован модульными или интеграционными тестами.
Для вычисления показателя используется формула:
T = (C / Code) ⋅ 100%, где:
T — тестовое покрытие;
C — количество строк кода, покрытых тестами;
Code — общее количество строк кода.
Для разработчиков важно регулярно писать и использовать модульные тесты, чтобы проверять корректность кода. Это позволяет быстро находить дефекты в модулях ещё до этапа тестирования, что значительно экономит время. Чем больше модульных тестов написано и чем больше строк кода они покрывают, тем выше шанс обнаружить дефект на раннем этапе. Поэтому необходимо постоянно отслеживать метрику покрытия кода. В этом могут помочь специальные инструменты, например, SonarQube, который является одним из самых популярных на сегодняшний день.
В чём суть?
На самом деле в процессе разработки иногда добавляют разные условия, методы, которые актуальны в текущий момент, но с течением времени, это всё может стать не актуальным, это в лучшем случае, а в худшем, стать лишним кодом или же кодом, который ломает какую либо логику или же замедляет её.
Например
У нас есть простое сложение 2 чисел и 3 варианта исхода.
Это примитивный пример, но очень показательный. Давайте представим что а и в у нас равны 1 и 3 соответственно. Тогда у нас будут задействованы следующие строки:
3 из 8. То есть покрытие операторов будет 37,5%. Таким образом и формируется всё покрытие кода. В конечном итоге можно будет определить ненужные строки и провести рефакторинг.
SonarQube — это платформа с открытым исходным кодом, предназначенная для постоянного анализа и измерения качества кода и его покрытия.
Её возможности:
- Поддержка языков Java, C, C++, C#, Objective-C, Swift, PHP, JavaScript, Python и других.
- Предоставление отчётов о дублировании кода, соблюдении стандартов кодирования, покрытия кода модульными тестами, возможные ошибки в коде, плотность комментариев в коде, технический долг и другое.
- Сохранение истории метрик и построение графиков изменения этих метрик во времени.
- Позволяет интегрироваться с такими IDE, как Visual Studio, IntelliJ IDEA и Eclipse, с помощью плагина SonarLint.
- Обеспечивает интеграцию с внешними инструментами: JIRA, Mantis, LDAP, Fortify и другими.
- Можно расширять существующую функциональность с помощью сторонних плагинов.
Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!