변형 조건/결정 커버리지(modified condition/decision coverage, MC/DC)는 결정 안의 각 조건이 결정의 결과에 독립적으로 영향을 준다는 것을 보이도록 요구하는 구조적 커버리지 기준이다.[1][2] MC/DC를 이루려면 다음을 모두 만족해야 한다.

  • 프로그램의 모든 진입점과 출구가 적어도 한 번 실행되었다.
  • 모든 결정이 가능한 모든 결과를 적어도 한 번 가졌다.
  • 결정 안의 모든 조건이 가능한 모든 값을 적어도 한 번 가졌다.
  • 결정 안의 각 조건이 결정의 결과에 독립적으로 영향을 준다는 것이 보였다.[1]

독립적인 영향

조건 하나의 독립적인 영향은 두 케이스로 보인다. 두 케이스는 결정의 결과가 서로 다르고 그 조건의 값이 서로 다르며, 다른 조건은 값이 그대로이거나 가려져(masked) 있다. 이 두 케이스를 독립성 쌍(independence pair)이라 한다.[3]

예를 들어 a && b에서 a의 영향은 (참, 참)과 (거짓, 참)의 짝이, b의 영향은 (참, 참)과 (참, 거짓)의 짝이 보인다. 세 케이스 (참, 참), (거짓, 참), (참, 거짓)으로 MC/DC를 이룬다.[1]

Unique-cause와 masking

독립적인 영향을 보이는 방식으로 unique-cause MC/DC와 masking MC/DC가 있고, 강하게 결합된 조건에만 masking을 허용하는 unique-cause+masking MC/DC도 있다.[3]

  • Unique-cause MC/DC: 독립성 쌍의 두 케이스 사이에 그 조건과 결정의 결과만 값이 바뀌고, 다른 조건은 모두 그대로다.
  • Masking MC/DC: 결정 안의 다른 조건도 값이 바뀔 수 있다. 다만 불 논리로 따져서 다른 조건이 결정의 결과에 영향을 주지 않는다는 것을 확인해야 한다.[1]

and 연산자에서는 한쪽 피연산자를 거짓으로 두면 다른 쪽이 가려진다. a && b에서 a가 거짓이면 b의 값은 결과에 영향을 주지 못한다.[3]

결합 조건(coupled conditions)은 하나를 바꾸면 다른 것도 바뀔 수 있는 조건들이다. 하나를 바꾸면 늘 다른 것도 바뀌는 조건을 강하게 결합된(strongly coupled) 조건이라 하고, 결정 안에 되풀이된 같은 조건도 여기에 든다.[3] 결정 안에 되풀이되거나 강하게 결합된 조건이 있으면 그 조건만 바꿀 수 없어서, 그 결정에는 unique-cause 방식을 쓸 수 없다. (A and B) or (A and C)가 그런 예다.[1][3] masking MC/DC는 unique-cause MC/DC보다 더 많은 결정에서 이룰 수 있고, 결합 조건이 있는 결정에도 쓸 수 있다.[3]

케이스 수

결정의 조건 개가 서로 다르고 각각 한 번씩만 나오며 커버리지를 이루는 케이스 집합이 있으면, unique-cause MC/DC는 적어도 개의 케이스가 필요하다. 같은 가정에서 masking MC/DC의 최소 케이스 수는 이다.[3]

다중 조건 커버리지는 조건 값의 모든 조합, 곧 개의 케이스가 필요하다. MC/DC는 다중 조건 커버리지의 이점을 상당 부분 얻으면서, 필요한 케이스 수가 조건 수에 선형으로 늘도록 만든 기준이다. 다중 조건 커버리지의 케이스 수는 조건 수에 지수로 는다.[1] 예를 들어 조건이 10개면 다중 조건 커버리지는 1024개의 케이스가 필요하고, unique-cause MC/DC는 적어도 11개의 케이스가 필요하다.[1][3]

기원

Chilenski와 Miller는 1994년 논문에서 MC/DC 기준과 그 성질을 제시했다.[2]

[1]
K. J. Hayhurst, D. S. Veerhusen, J. J. Chilenski, and L. K. Rierson, “A Practical Tutorial on Modified Condition/Decision Coverage,” Tech. Memo. NASA/TM-2001-210876, 2001. Accessed: Oct. 03, 2026. [Online]. Available: https://ntrs.nasa.gov/citations/20010057789
[2]
J. J. Chilenski and S. P. Miller, “Applicability of modified condition/decision coverage to software testing,” Software Engineering Journal, vol. 9, no. 5, pp. 193–200, 1994, doi: 10.1049/sej.1994.0025.
[3]
J. J. Chilenski, “An Investigation of Three Forms of the Modified Condition Decision Coverage (MCDC) Criterion,” Federal Aviation Administration (FAA), Final Rep. DOT/FAA/AR-01/18, 2001. Accessed: Oct. 03, 2026. [Online]. Available: https://www.faa.gov/sites/faa.gov/files/aircraft/air_cert/design_approvals/air_software/AR-01-18_MCDC.pdf