← Назад к вопросам
Какое должно быть покрытие тестами в проекте?
2.3 Middle🔥 121 комментариев
#Тестирование
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
# Покрытие тестами в Java проектах
Покрытие кода тестами (Code Coverage) — это метрика, показывающая какой процент кодовой базы покрыт автоматическими тестами. Это один из важных показателей качества проекта, но не единственный.
Стандартные показатели
Минимум для production
70-80% — общепринятый минимум для production кода:
- Критические и сложные части системы должны быть протестированы
- Бизнес-логика обязательно полностью протестирована
- Getters/setters и trivial код можно не покрывать
Рекомендуемые показатели
- 85-90% — хороший результат для большинства проектов
- 90%+ — отличное качество, достаточно высокий стандарт
- 95%+ — критичные системы, банки, healthcare, aerospace
- 100% — редко достижимо и не всегда целесообразно
Виды покрытия
1. Line Coverage (покрытие строк)
Процент строк кода, выполненных во время тестов:
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException();
}
return a / b;
}
}
Если нет теста для divide(5, 0), то обработка исключения не покрыта.
2. Branch Coverage (покрытие ветвей)
Процент всех путей выполнения кода:
public String checkAge(int age) {
if (age >= 18) {
return "Adult";
} else {
return "Minor";
}
}
Для 100% branch coverage нужны тесты обоих путей.
3. Method Coverage (покрытие методов)
Процент методов, вызванных хотя бы один раз.
Инструменты для измерения
JaCoCo (Java Code Coverage)
Самый популярный инструмент:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.10</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
Запуск: mvn clean test (отчёт в target/site/jacoco/index.html)
Best Practices
✅ Делай это:
- Пиши тесты для критичной бизнес-логики
- Не гонись за 100% — качество важнее количества
- Тести исключительные ситуации
❌ Не делай это:
- Не тести только для количества%
- Не копируй тесты просто для coverage
- Не тести внешние библиотеки
Рекомендации по покрытию
| Тип проекта | Покрытие | Примечание |
|---|---|---|
| Стартап | 60-70% | Скорость важнее |
| Веб-приложение | 75-85% | Баланс |
| Enterprise | 85-90% | Высокий стандарт |
| Банковская система | 95%+ | Критична надёжность |
| Библиотека | 90%+ | Часто используется другими |
Выводы
- 85-90% — золотой стандарт для большинства проектов
- Качество > количество: лучше 80% хороших тестов чем 100% плохих
- Фокусируйся на критичной логике — бизнес-слой, валидация
- Автоматизируй проверку через CI/CD
- Регулярно пересматривай стратегию в зависимости от проекта