실행을 기록하는 구조
JaCoCo의 자바 에이전트는 클래스를 불러올 때 기록 코드를 넣어 실행 정보를 수집한다. 수집 기록과 보고서 생성은 구분되는 단계다. 빌드 도구 연동을 쓰면 에이전트 설정을 직접 다루는 부담을 줄일 수 있다. 분석하는 클래스 파일은 기록을 만든 실행의 파일과 일치해야 한다.
줄과 분기의 의미
한 줄에 여러 명령이 대응할 수 있어 줄의 실행 여부와 모든 명령의 실행 여부는 다르다. 줄 단위 표시에는 컴파일된 디버그 정보가 필요하다. 분기 지표는 조건문과 선택문의 경로를 다루며 예외 처리는 이 분기 집계에 포함되지 않는다. 따라서 높은 분기 비율이 모든 예외 경로의 검사를 뜻하지 않는다.
보고서 해석과 범위
컴파일러가 만든 합성 코드가 결과에 영향을 줄 수 있으므로 소스와 바이트코드의 차이를 고려한다. 커버리지는 지나간 코드의 기록이며 올바른 단언의 존재를 증명하지 않는다. 원격 제어 인터페이스를 쓰는 경우 인증 기능이 없다는 제약도 고려해 접근 범위를 제한한다. 일반 테스트와 변이 테스트를 함께 살펴보면 서로 다른 공백을 찾는 데 도움이 된다.