문장 커버리지 각 줄이 한 번이라도 실행됐는가
분기 커버리지 if 의 참·거짓 양쪽을 다 지나갔는가
MC/DC 복합 조건의 각 항이 결과를 좌우함을 보였는가 ← 항공·자동차 고등급에서 요구
무엇을 말해 주나
낮은 커버리지는 확실한 신호다 — 안 돌아본 코드가 있다는 뜻이니까. 반대로 높은 커버리지가 정확성을 보장하지는 않는다. 실행만 하고 결과를 검증하지 않는 테스트도 커버리지는 올린다.
임베디드에서 재는 법
PC 단위 테스트 gcov 같은 도구로 그대로 측정된다
타깃 실행 계측 코드가 들어가 크기와 타이밍이 바뀐다 — 별도 빌드로 측정한다
타깃에서 재려면 결과를 밖으로 내보내야 해서 손이 많이 간다. 그래서 보통 PC 로 옮길 수 있는 로직의 커버리지를 목표로 잡는다.
실무 감각
숫자를 목표로 삼기보다, 커버되지 않은 목록을 읽고 왜 안 도는지 하나씩 판단하는 편이 낫다.