Ответ
В Java-разработке нет единого стандарта, но существуют общепринятые рекомендации:
- 70-80% — хороший, достижимый уровень для бизнес-логики.
- 100% — идеал, но часто избыточен и экономически нецелесообразен.
- <50% — тревожный сигнал о недостаточном тестировании.
Важно: Качество тестов (проверка важных сценариев, читаемость, поддержка) всегда приоритетнее формального процента покрытия. Высокий процент, достигнутый тривиальными тестами, не гарантирует надежности.
Почему не 100%? Стремление к полному покрытию часто приводит к тестированию геттеров/сеттеров, тривиального кода или логики фреймворков, что увеличивает затраты на поддержку без реальной пользы.
Пример настройки правила в Maven с Jacoco:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>0.70</minimum> <!-- Минимум 70% -->
</limit>
</limits>
</rule>
</rules>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>