도구 소개
“커버리지”라고 불리는 숫자는 세 가지이며, 각각 다른 질문에 답합니다. 요구사항 커버리지는 모든 요구사항에 테스트가 있는지를 묻습니다. 실행 커버리지는 계획된 테스트 중 실제로 얼마나 실행되고 통과했는지를 묻습니다. 코드 커버리지는 자동화 테스트가 실행되는 동안 어떤 코드가 실행되었는지를 묻습니다. 이 계산기는 세 가지를 모두 다루고 각 공식을 보여 줍니다. 코드 커버리지의 경우 Istanbul, Vitest, Jest, JaCoCo, coverage.py 보고서의 네 가지 비율과 기준치를 입력하면, 어떤 지표가 기준을 통과하지 못하는지 표시하고 패턴을 짚어 줍니다. 예를 들어 분기 커버리지가 라인 커버리지보다 훨씬 낮다면 대개 오류 경로와 else 분기가 테스트되지 않았다는 뜻입니다. 커버리지로 알 수 없는 것도 함께 설명합니다.
사용 방법
- 요구사항, 실행, 코드 커버리지 중 계산기를 선택하세요.
- 개수나 비율을 입력하면 결과가 즉시 갱신됩니다.
- 코드 커버리지의 경우 CI에서 강제하는 기준치를 설정하고 분석 결과를 확인하세요.
- 상태 보고용으로 요약을 복사하세요.
테스트 커버리지 계산기 자주 묻는 질문
코드 커버리지 100%는 좋은 목표인가요?
그런 경우는 드뭅니다. 마지막 몇 퍼센트는 대개 도달하기 비싼 방어 코드이고, 100% 커버리지도 어설션이 의미 있다는 것을 증명하지는 못합니다. 많은 팀이 70–90%를 기준으로 두고, 커버되지 않은 코드는 풀 리퀘스트에서 검토합니다.
분기 커버리지가 라인 커버리지보다 낮은 이유는 무엇인가요?
if 문이 있는 라인은 한 번만 실행되어도 커버된 것으로 집계되지만, 분기 커버리지는 참과 거짓 결과가 모두 필요합니다. 차이가 크다면 많은 조건이 한쪽 방향, 흔히 정상 경로로만 테스트되고 있다는 뜻입니다.
테스트가 실제로 무언가를 검증하는지 어떻게 알 수 있나요?
뮤테이션 테스트(예: JavaScript의 Stryker, Java의 PIT)는 코드를 조금씩 바꾸고 테스트가 실패하는지 확인합니다. 살아남은 뮤턴트는 테스트 중 실행되지만 실제로는 검증되지 않는 코드를 보여 줍니다.