MC/DC (Modified Condition / Decision Coverage)

I. 결과에 독립적인 N+1 TC, MC/DC의 개요

가. MC/DC (Modified Condition / Decision Coverage)의 개념

  • 개별 조건식이 다른 조건식의 영향을 받지 않고 전체 조건식의 결과에 독립적으로 영향을 주는 테스트 케이스 도출 구조적 테스트기법
  • 개별 조건식이 전체 조건식의 결과에 영향을 주는 조건 조합을 찾아 커버리지를 테스트하는 방법
  • 커버리지: 소프트웨어 테스트 시 테스트가 충분한지 나타내는 지표

나. MC/DC의 특징

결과에 독립적Condition / Decision 커버리지를 만족하고 결정에서 각 조건들은 결과에 독립적이어야 함
N + 1
테스트 케이스
일반적으로 N개 입력을 가진 결정에서 N+1개의 테스트 케이스 필요

다. 테스트 커버리지 간 포함관계 개념도

 

II. MC/DC 결정테이블

가. 결정 테이블 소스 구문

흐름도분기문 소스
if (A && B) { // A, B는 개별 조건 식
 C = e + f; // A && B 는 전체 조건식
}else{
  C = e – f;
}

나. MC/DC 조건식 테이블

개별조건식전체조건식MC/DC
TC
설명
ABA&&B
TTTY– A, B 중 일부 변경 시 전체조건식 영향
TFFY– B가 T로 변경 시 전체조건식에 영향
FTFY– A가 T로 변경 시 전체조건식에 영향
FFFN– A, B 중 일부 변경 시 영향없음, TC 제외
  • 전체 조합을 테스트하는 것은 현실적으로 불가능하며, 가능한 의미 있게 조합 수를 줄여 테스트하는 것이 핵심

 

III. MC/DC 커버리지를 활용하는 최근 국제 표준 동향

구분유관 표준주요 내용
차량ISO 26262
Coverage LevelASIL AASIL BASIL CASIL D
Statement Coverage매우 추천매우 추천추천추천
Branch Coverage추천매우 추천매우 추천매우 추천
MC/DC추천추천추천매우 추천

IEC 61508을 근간으로 하여 ISO 26262에 MC/DC 테스트 내용이 포함됨에 따라 관련 MISRA 코딩 룰 또한 26262 포함하여 재정

항공DO-178B,
DO-178C
항공 임베디드 소프트웨어 표준인 DO-178B에서 Code Coverage는 중요한 요소로 관리

  • Statement Coverage (Level C)
  • Decision Coverage (Level B)
  • Modified Condition/Decision Coverage (Level A) 최상위 등급

 

9 Comments

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^