Метрика покрытия кода: ограничения и примеры
Метрика покрытия кода показывает, какая доля исходного кода была выполнена в тестах.
Однако стопроцентное покрытие кода не гарантирует идеальное качество или отсутствие ошибок. Давайте рассмотрим два основных типа метрик покрытия кода и их ограничения.
Типы метрик покрытия кода
1. Code Coverage (Покрытие кода)
2. Branch Coverage (Покрытие ветвей)
Code Coverage
Code Coverage измеряет отношение количества выполненных строк кода к общему количеству строк кода. На первый взгляд, кажется логичным стремиться к максимальному покрытию, но этот подход имеет свои недостатки.
Пример:
Теперь рассмотрим пример рефакторинга кода:
Проблемы с таким подходом:
1. Тесты могут выполнять строки кода без проверки их корректности.
2. Тесты не обязательно покрывают все возможные крайние случаи.
3. Высокий процент покрытия может создать иллюзию надежности.
Branch Coverage
Branch Coverage измеряет отношение количества покрытых ветвей к общему количеству ветвей в коде. Ветви – это управляющие структуры, такие как if, switch, и циклы.
Пример:
Проблемы с таким подходом:
1. Неполное покрытие сценариев.
2. Упущенные граничные случаи.
Заключение:
✔ Метрика покрытия кода, будь то code coverage или branch coverage, является полезным инструментом, и они могут говорить о проблемах
✔ Низкие показатели говорят о проблема с тестами, однако высокие показатели не гарантируют что с тестами все в порядке
✔ Метрики покрытия - начальный этап на пути к хорошим тестам.
Было полезно? Присоединяйтесь к моему телеграм-каналу, — там ещё больше разборов и примеров для тестирования.