Что показывает покрытие кода и нужно ли добиваться 100%?
Основы тестирования
Покрытие кода (coverage) показывает, какая доля строк, веток и функций выполнилась во время тестов. Оно не говорит, что тесты проверили результат.
Метрики
- Lines и statements — выполненные строки.
- Branches — ветки
ifи тернарных выражений. - Functions — вызванные функции.
Почему 100% не цель
- Тест может выполнить код и ничего не проверить: покрытие есть, защиты нет.
- Погоня за числом толкает на бессмысленные тесты геттеров и конфигов.
- Последние проценты стоят непропорционально дорого.
Как использовать с пользой
- Смотреть на непокрытые ветки как на подсказку, где нет сценариев.
- Ставить разумный порог на новый код (например, 80%) и следить, чтобы он не падал.
- Дополнять покрытие другими практиками: код-ревью, мутационное тестирование.
Коротко для собеседования
Coverage показывает непроверенные места, но не качество проверок. Цель — осмысленные тесты на критичную логику, а не цифра.