| 구분 | 쉬운 설명 | 특징 및 차이점 요약 |
|---|---|---|
| 구문 커버리지 (Statement Coverage) | 코드에 있는 각 명령문(줄)이 적어도 한 번 실행됐는지 확인하는 것 | - 가장 기본 - 단순히 ‘코드가 실행됐냐’만 체크 - 조건이나 분기 무시 |
| 결정 커버리지 (Decision Coverage) | if, while 같은 조건문에서 ‘참(true)’과 ‘거짓(false)’ 결과가 각각 한 번씩 실행됐는지 확인 | - 조건문 분기 결과를 모두 실행해야 함 - 구문 커버리지 포함 - 조건값을 두 방향 모두 테스트 |
| 조건 커버리지 (Condition Coverage) | 복잡한 조건문 내 각각의 조건이 ‘참’과 ‘거짓’을 한 번씩 가져봤는지 확인 | - 조건 하나하나를 따로 테스트 - 조건 내부 각 요소의 결과 확인 - 구문 커버리지 만족 |
| 조건/결정 커버리지 (Condition/Decision Coverage) | 조건 커버리지와 결정 커버리지를 둘 다 만족하는 것 | - 조건과 분기 모두 체크 - 조건과 결정 모두 충족해야 통과 |
| 변경 조건/결정 커버리지 (Modified Condition/Decision Coverage, MC/DC) | 각 조건이 독립적으로 결과에 영향을 미치는지 테스트 | - 조건끼리 서로 영향을 안 받도록 따로 테스트 - 안전-critical 분야 필수 - 조건/결정 커버리지보다 엄격 |
| 다중 조건 커버리지 (Multiple Condition Coverage) | 모든 조건의 가능한 ‘참/거짓’ 조합을 전부 테스트 | - 모든 조건 조합 다 테스트(완전 검사) - 가장 완벽하지만 시간이 많이 듬 |
| 경로 커버리지 (Path Coverage) | 프로그램의 모든 가능한 실행 경로를 한 번씩 다 실행해 보는 것 | - 코드의 모든 경로 다 검사 - 가장 완벽한 테스트 방법이나 현실적으론 비효율적 |