임베디드 용어 사전
관측·테스트

커버리지

테스트가 코드의 어느 부분을 실행했는지 비율로 나타낸 지표. 높다고 옳은 것은 아니다.

문장 커버리지    각 줄이 한 번이라도 실행됐는가
분기 커버리지    if 의 참·거짓 양쪽을 다 지나갔는가
MC/DC          복합 조건의 각 항이 결과를 좌우함을 보였는가  ← 항공·자동차 고등급에서 요구

무엇을 말해 주나

낮은 커버리지는 확실한 신호다 — 안 돌아본 코드가 있다는 뜻이니까. 반대로 높은 커버리지가 정확성을 보장하지는 않는다. 실행만 하고 결과를 검증하지 않는 테스트도 커버리지는 올린다.

임베디드에서 재는 법

PC 단위 테스트     gcov 같은 도구로 그대로 측정된다
타깃 실행         계측 코드가 들어가 크기와 타이밍이 바뀐다 — 별도 빌드로 측정한다

타깃에서 재려면 결과를 밖으로 내보내야 해서 손이 많이 간다. 그래서 보통 PC 로 옮길 수 있는 로직의 커버리지를 목표로 잡는다.

실무 감각

숫자를 목표로 삼기보다, 커버되지 않은 목록을 읽고 왜 안 도는지 하나씩 판단하는 편이 낫다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 테스트 — 하드웨어 없이, 그리고 하드웨어와 함께