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

«Какие метрики использовались для измерения покрытия кода тестами?» — вопрос из категории Тестирование, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для измерения и контроля покрытия кода тестами использовался инструмент JaCoCo, интегрированный в процесс сборки Maven.

Отслеживаемые метрики покрытия:

  1. Покрытие строк (Line Coverage): Процент исполненных строк исходного кода.
  2. Покрытие ветвлений (Branch Coverage): Процент покрытых ветвей условий (if/else, switch).
  3. Покрытие методов (Method Coverage): Проcentage покрытых методов.

Целевые показатели на проекте:

  • Покрытие строк (Line Coverage) ≥ 80%
  • Покрытие ветвлений (Branch Coverage) ≥ 70%

Пример конфигурации плагина JaCoCo в pom.xml:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.8</version>
    <executions>
        <execution>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

После выполнения тестов (mvn test) генерировался HTML-отчет, который позволял детально анализировать непокрытые участки кода.