
MC/DC 커버리지, 왜 Statement·Branch Coverage만으로 부족할까요?
항공전자·안전 관련 소프트웨어에서는 함수가 한 번 실행되었다는 사실보다 복합 판단식의 각 조건이 의도한 대로 작동하는지 확인하는 것이 중요합니다. 특히 여러 조건이 AND·OR 연산으로 결합되면 분기 결과만 확인해도 개별 조건의 영향이 검증되지 않을 수 있습니다.
MC/DC(Modified Condition/Decision Coverage)는 결정문 내부의 각 조건이 결과에 독립적으로 영향을 미치는지 확인하는 구조적 커버리지입니다. DO-178C Level A 소프트웨어의 검증 목표를 이해할 때 핵심적으로 다뤄집니다.
구조적 커버리지의 차이
| 지표 | 확인 내용 | 한계 또는 특징 |
| Statement Coverage | 실행 가능한 문장 실행 여부 | 판단식 내부 각 조건 영향은 보장하지 않음 |
| Decision/Branch Coverage | 결정 결과 True/False 및 분기 실행 | 복합 조건의 독립적 효과는 별도로 확인 필요 |
| MC/DC Coverage | 각 조건이 결정 결과에 독립적으로 영향을 주는 시험 단위 (Test Case Unit) | 조건 조합·마스킹·도달 가능성 검토 필요 |
조건 두 개로 이해하는 MC/DC 측정 예제

다음과 같이 두 조건 A와 B가 모두 참일 때만 장비 출력이 활성화되는 판단식이 있다고 가정합니다. 예제는 논리를 설명하기 위한 단순화된 형태입니다.
결정식은 D = A AND B입니다.
① A=True, B=True이면 D=True ② A=False, B=True이면 D=False ③ A=True, B=False이면 D=False.
①과 ②를 비교하면 B를 고정한 상태에서 A만 변경되어 결정 결과가 바뀝니다.
①과 ③을 비교하면 A를 고정한 상태에서 B만 변경되어 결정 결과가 바뀝니다.
이렇게 각 조건이 결정 결과에 독립적으로 영향을 미치는 시험 쌍을 확인하는 것이 MC/DC의 핵심입니다. 복잡한 표현식에서는 조건 간 결합, 동일 변수 중복, 단락 평가와 마스킹 효과까지 고려해야 합니다.
MC/DC 단순 예제 진리표
| 시험 | A | B | D=A∧B | 검증 역할 |
| TC1 | True | True | True | 두 조건의 기준 시험 |
| TC2 | False | True | False | A의 독립 영향 확인: TC1과 비교 |
| TC3 | True | False | False | B의 독립 영향 확인: TC1과 비교 |
DO-178C Level A와 MC/DC는 어떻게 연결되나요?
DO-178C의 구조적 커버리지 분석은 요구사항 기반 시험이 코드 구조를 얼마나 검증했는지 확인하는 보완 활동입니다. 특히 Level A에서는 MC/DC 수준의 구조적 커버리지 입증이 중요한 목표로 다뤄집니다.
여기서 MC/DC 100%를 달성했다고 소프트웨어가 자동으로 인증되거나 모든 결함이 제거되는 것은 아닙니다. 요구사항 기반 테스트의 충분성, 결함 처리, 형상관리, 독립적 검증 및 기타 DO-178C 목표가 함께 충족되어야 합니다.
LDRA로 MC/DC 커버리지를 측정할 때 준비할 것은?

LDRA Tool Suite는 Statement·Branch·MC/DC 등 구조적 커버리지 분석과 요구사항 추적성을 지원합니다. 실무에서는 먼저 적용 DAL, 컴파일러·타깃 환경, 소스코드 접근 수준, 시험 구동 방식을 확인해야 합니다.
검증 과정은 시험 요구사항과 케이스 확정 → 타깃/호스트 시험 수행 → 커버리지 수집 → 미달성 조건 식별 → 추가 시험 또는 정당화 검토 → 산출물 정리로 진행할 수 있습니다. 실제 타깃과 계측 방식에 따라 수행 방법은 달라집니다.
DCCC·데이터/제어 결합과 혼동하지 마세요
고객이 함께 검색하는 DCCC(Data and Control Coupling Coverage)는 소프트웨어 구성요소 사이의 데이터·제어 결합에 대한 검증을 가리키는 용어로, 단일 결정식 내부의 MC/DC와는 평가 대상이 다릅니다. 프로젝트에서 요구하는 커버리지 범위를 먼저 확인해야 합니다.
모아소프트에서 어떤 기술지원을 받을 수 있나요?

모아소프트는 LDRA 기반 SW 신뢰성 시험과 DO-178C 검증 업무의 적용 범위를 검토합니다. MC/DC가 미달성되는 이유를 단순히 테스트 케이스 부족으로 단정하지 않고, 실제 도달 가능성·비활성 코드·방어 코딩·검증 목표를 확인하는 접근이 필요합니다.
MC/DC 커버리지 시험 범위 견적을 요청할 때는 적용 DAL, 코드 규모, 개발언어, 컴파일러, 타깃 보드, 기존 단위시험과 커버리지 결과를 알려주시면 구체적인 상담에 도움이 됩니다.
고객이 자주 묻는 질문(FAQ)
Q. MC/DC의 정확한 뜻은 무엇인가요?
A. Modified Condition/Decision Coverage의 약자로, 복합 결정문 안의 각 조건이 결정 결과에 독립적 영향을 미치는지 검증하는 지표입니다.
Q. DO-178C Level A에서 MC/DC가 중요한 이유는 무엇인가요?
A. Level A는 가장 높은 소프트웨어 보증 수준으로, 구조적 커버리지 분석에서 MC/DC 검증이 중요한 목표입니다.
Q. Branch Coverage 100%면 MC/DC도 100%인가요?
A. 아닙니다. 모든 분기를 실행했더라도 복합 조건 각각의 독립적 영향이 입증되지 않을 수 있습니다.
Q. LDRA가 MC/DC 테스트 케이스를 자동으로 모두 완성해 주나요?
A. 도구는 구조적 커버리지 분석을 지원하지만, 요구사항 기반 시험설계와 미달성 조건의 검토는 별도로 필요합니다.
모아소프트 기술·교육 문의
MC/DC 검증 범위, LDRA 적용 및 DO-178C 시험 견적이 필요하다면 모아소프트에 문의하세요.
- 대표 문의: 02-420-3203
- 홈페이지: 기술 문의하기








