Invisible Safety,

Proven by Intelligence

보이지 않는 안전을 인텔리전스로 증명하다.

기술 노트
IT 산업의 변화를 이끄는 MDS인텔리전스의
기술 인사이트를 만나보세요.
시스템 소프트웨어 개발
[VectorCAST] Code Coverage – MC/DC
2026년 07월 31일

이번 테크노트에서는 Code Coverage 종류 중 하나인 MC/DC에 대해서 알아보겠습니다.

 



1. MC/DC란?


Code Coverage는 테스트의 충분성을 평가하는 대표적인 지표입니다. Statement Coverage나 Branch Coverage 역시 테스트의 수행 범위를 확인하는 데 유용한 지표입니다.



하지만 Statement Coverage, Branch Coverage를 100% 달성했다고 해서, 모든 조건이 충분히 검증되었다고 볼 수는 없습니다.



특히 여러 조건이 결합된 의사결정(Decision)에서는 일부 결함이 여전히 숨어 있을 수 있습니다.


이러한 이유로 ISO26262와 DO-178C 같은 국제 표준에서는 MC/DC(Modified Condition/Decision Coverage)를 중요한 시험 기준으로 요구하고 있습니다.





2. MC/DC 가 요구되는 이유


Branch Coverage는 모든 분기(True/False)가 최소 한 번씩 수행되면 100%가 달성됩니다.



그러나 각 조건이 최종 의사결정(Decision)에 독립적으로 어떠한 영향을 미치는지까지는 확인할 수 없습니다



반면, MC/DC는 각 조건이 다른 조건의 영향 없이 독립적으로 최종 결과를 변경시키는지를 확인하는 커버리지 지표입니다.



자동차, 항공, 철도와 같은 Safety-Critical 시스템에서는 작은 조건 하나의 오류도 심각한 사고로 이어질 수 있습니다.



이러한 이유로 항공 소프트웨어 표준인 DO-178C는 최고 안전 등급인 Level A에서 MC/DC를 요구하며, 자동차 기능 안전 표준인 ISO26262에서도 ASIL D에서 MC/DC를 매우 중요한 구조적 커버리지 기준(Highly Recommended) 으로 제시하고 있습니다.





3. VectorCAST를 활용한 MC/DC 분석


조건이 하나라면 Test Case를 직접 설계하는 것이 어렵지 않습니다.



하지만 조건이 늘어날수록 필요한 Test Case와 조합도 함께 증가합니다.



예를 들어, 조건이 5~6개만 되어도 어떤 테스트가 부족한지 사람이 직접 판단하기는 쉽지 않습니다.



또한, 프로젝트 규모가 커질수록,

- 현재MC/DC가 몇%인지

- 어떤 조건이 아직 검증되지 않았는지

- 어떤 테스트를 추가해야하는지

관리하는 것도 상당한 부담이 될 것 입니다.



VectorCAST는 테스터가 MC/DC 테스트 설계를 효율적으로 수행할 수 있도록, 아래와 같이 진리표를 제공합니다.

 





또한, MC/DC Test Case 자동 생성 기능을 사용하여, MC/DC 달성에 필요한 Test Case를 빠르고 효율적으로 생성할 수 있습니다.





4. 마무리


지금까지 MC/DC가 중요한 이유와 VectorCAST를 활용하여 MC/DC를 측정하고 분석하는 방법에 대해서 살펴보았습니다.



MC/DC는 단순히 커버리지 수치를 높이기 위한 지표가 아니라, 각 조건이 의사결정에 미치는 영향을 독립적으로 검증함으로써 잠재적인 결함을 발견할 수 있도록 돕는 중요한 구조적 커버리지 지표입니다.



VectorCAST를 활용하면 MC/DC를 자동으로 측정/분석할 뿐만 아니라 Test Case 생성까지 지원하여 보다 효율적인 테스트 환경을 구축할 수 있습니다.


이번 테크노트 관련하여 궁금하신 사항 있으시다면 언제든지 연락 주세요! :)