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

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

Ответ

Контроль покрытия кода тестами — совместная ответственность, распределенная между ролями.

Распределение ответственности:

Роль Зона ответственности Инструменты / Метрики
Разработчик Написание модульных (unit) и интеграционных тестов для своей функциональности. Цель: высокое покрытие (80%+) бизнес-логики. JaCoCo, SonarQube, локальный запуск тестов.
QA-инженер Написание и поддержка end-to-end (E2E) и системных тестов. Цель: покрытие ключевых пользовательских сценариев. Selenium, Cypress, Postman/Newman.
Tech Lead / Архитектор Установка стандартов и порогов покрытия. Интеграция проверок в CI/CD. Конфигурация пайплайна, правила в pom.xml/build.gradle.

Практическая реализация в CI/CD (Maven + JaCoCo):

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <configuration>
        <rules>
            <rule>
                <element>BUNDLE</element>
                <limits>
                    <limit>
                        <counter>INSTRUCTION</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.80</minimum> <!-- Минимум 80% -->
                    </limit>
                </limits>
            </rule>
        </rules>
    </configuration>
    <executions>
        <execution>
            <goals><goal>check</goal></goals>
        </execution>
    </executions>
</plugin>

Такой конфиг гарантирует, что сборка упадет, если покрытие упадет ниже заданного порога.