MC/DC로 검증하는 안전 필수 소프트웨어의 결정 로직

MC/DC의 독립 영향성 검증 원리와 안전 필수 소프트웨어 적용 방식, 커버리지 기준 비교 및 최소 테스트 집합 설계 방법을 정리한다.

2026-08-14 · 최초 발행 2025-12-22

분기 결과가 아니라 조건의 영향까지 증명한다

항공·자동차처럼 안전성이 중요한 소프트웨어에서는 분기 결과를 참과 거짓으로 한 번씩 실행했다고 해서 검증이 끝나지 않는다. 다중 조건으로 이루어진 결정식에서는 개별 조건이 실제로 최종 결정값을 바꾸는지까지 확인해야 한다.

MC/DC(Modified Condition/Decision Coverage)는 하나의 결정(decision)을 이루는 각 원자 조건(condition)이, 나머지 조건을 고정했을 때 결정 결과를 독립적으로 변경함을 최소 한 번 입증하도록 요구하는 커버리지 기준이다.

이 기준에서는 다음을 확인한다.

  • 모든 조건이 T/F로 평가됐는가
  • 각 조건의 독립적인 영향성이 증명됐는가
  • 각 결정에서 가능한 결과 경로를 관찰했는가
  • 중복을 줄인 테스트 집합으로 이를 달성했는가

Statement, Decision, Condition 커버리지를 포괄하는 강화된 기준이며, 모든 조건 조합을 수행하는 Multiple-condition 방식보다 테스트 수를 줄일 수 있다.

조건쌍과 실행 증적으로 확인하는 방식

MC/DC의 핵심은 조건쌍(pairing)이다. 특정 조건 하나만 바꾸고 다른 조건은 동일하게 유지한 두 테스트를 비교해, 결정값이 달라지는지를 확인한다. 이 비교가 있어야 해당 조건이 결정에 독립적으로 영향을 미쳤다고 말할 수 있다.

테스트 설계는 보통 논리식을 정규화하고 단락 평가를 고려하는 데서 시작한다. 이후 원자 조건을 분리하고, 조건별 독립 영향성을 보여 줄 테스트 케이스를 만든 뒤, 중복되는 조합을 제거해 최소화한다.

실행 단계에서는 분기와 조건 수준의 계측 코드를 삽입하고 런타임 트레이스를 수집한다. 커버리지 분석기는 실행 결과를 바탕으로 조건별 독립 영향성이 충족됐는지 리포트로 보여 준다.

DO-178C Level A/B와 ISO 26262 ASIL C/D에서는 MC/DC가 강력 권고되거나 사실상 요구된다. 이때 테스트 결과만 남겨서는 부족하며, 요구사항–테스트–커버리지 사이의 추적성과 증적 문서화가 함께 필요하다.

요구사항에서 인증 증적까지 이어지는 흐름

미충족충족요구사항 결정 로직 식별논리식 정규화 원자 조건추출테스트 설계: 조건 독립 영향성계획계측 삽입 실행 트레이스수집커버리지 분석: MC/DC 검증충족 여부 판정테스트 보강 재실행증적 생성 인증 제출

커버리지 기준을 선택할 때의 차이

기준 확인 대상 테스트 수 증가(상대) 논리 결함 탐지력 규제·인증 적합성
Statement 실행문을 최소 1회 실행 낮음 낮음 제한적
Decision/Branch 분기 결과 T/F를 1회씩 실행 낮음~중간 중간 일부 활용
Condition 각 조건의 T/F를 1회씩 실행 중간 중간 보조 지표
MC/DC 각 조건이 결정에 미치는 독립 영향성 중간~높음 높음 안전 필수 핵심
Multiple-condition 모든 조건 조합 매우 높음 최고 비용 과다로 비현실적 사례 다수

테스트 수 증가와 탐지력은 일반적인 경향이며, 실제 결과는 시스템 복잡도와 단락 평가 전략에 따라 달라진다.

안전 관련 제어 로직에서의 운영 포인트

항공 분야에서는 비행 제어 SW의 Level A/B 대상을 중심으로 MC/DC를 적용하고, 조건-결정 매핑 표와 테스트 대비표로 독립 영향성을 증명한다.

자동차에서는 ASIL C/D의 파워트레인·ADAS 제어 로직이 대상이 될 수 있다. HIL/SIL을 혼합해 센서 결함과 엣지 케이스를 포함한 커버리지를 달성한다.

의료·철도 분야에서는 IEC 62304/EN 50128과 연관된 안전 모듈에 선택적으로 적용할 수 있다. 변경 영향도 분석을 기준으로 회귀 시 MC/DC를 다시 확인하는 절차를 운영한다.

CI/CD에서는 조건·결정 수준의 계측 빌드를 분리하고, MC/DC 100% 목표와 예외 승인 워크플로를 포함한 커버리지 임계치 게이팅을 둘 수 있다. 테스트 셋 자동 최소화 도구도 함께 적용 대상이 된다.

논리식으로 보는 최소 테스트 집합

대상 결정식은 다음과 같다.

D = (A && B) || C

A, B, C가 각각 다른 조건이 고정된 상태에서 D를 변경하는지 확인해야 한다. 권장 테스트 셋은 4개 케이스다.

  • T1: A=0, B=1, C=0 → D=0 (A 독립 영향 비교용 기준)
  • T2: A=1, B=1, C=0 → D=1 (T1↔T2로 A 독립 영향 입증)
  • T3: A=1, B=0, C=0 → D=0 (T2↔T3로 B 독립 영향 입증)
  • T4: A=1, B=0, C=1 → D=1 (T3↔T4로 C 독립 영향 입증)

각 조건은 두 테스트 사이에서만 달라지고, 나머지 조건은 같아야 한다. 단락 평가(short-circuit)가 발생하는 시나리오에서도 결정식 평가가 일관되도록 입력을 구성해야 한다.

고위험 로직에 집중할 때 얻는 효과

MC/DC는 논리 결함과 마스킹 결함의 검출률을 높인다. 경험적 범위 기준으로 Branch 대비 1.2~2.0배 수준의 논리 결함 검출을 기대할 수 있다.

모든 조건 조합을 시험하는 Multiple-condition 방식과 비교하면 테스트 수를 50~80% 절감할 수 있다. 고위험 로직에 검증 투자를 집중해 전체 검증 비용을 최적화하는 접근이다.

표준 적합 증적을 확보하면 인증 리드타임을 수 주 단위로 단축할 수 있고, 회귀 시에는 변경 영향 구간만 재증명해 사이클 타임을 줄일 수 있다. 수치는 도메인·복잡도·도구에 따른 편차가 있으므로 조직 데이터 기반의 정량화가 필요하다.

MC/DC는 다중 조건 결정 로직의 결함 탐지력을 확보하면서도 테스트 수를 현실적인 범위에 두려는 기준이다. 안전 필수 시스템과 중요도가 높은 로직에서는 표준 기반 절차, 계측·분석 자동화, 증적 관리 체계를 함께 갖춰야 한다.

MC/DC소프트웨어 테스트커버리지안전 필수 소프트웨어DO-178C