규칙에 조건이 세 개 들어 있다고 해서 세 조건이 모두 결과에 영향을 주는 것은 아닙니다. 조지 불(George Boole)은 논리 함수를 한 기호가 1인 경우와 0인 경우로 나누어 전개했습니다. 이번에는 불의 식을 표의 행 짝으로 바꾸어 읽습니다. 다른 값은 그대로 두고 입력 하나만 바꿨을 때 출력이 달라지는지 확인해 보겠습니다.
01 · 불이 풀려던 문제
여러 기호가 얽힌 함수의 내용을 어떻게 드러낼까요?
불은 1848년 「The Calculus of Logic」에서 부류와 명제를 계산하는 일반 방법을 세우려 했습니다. 기호가 여러 개 들어간 식을 그대로 바라보면 각 기호가 맡는 역할을 알아보기 어렵습니다. 그는 한 기호를 골라 그 값이 1일 때와 0일 때의 두 경우로 함수를 나누었습니다.
가상의 시설 입장 규칙에서 x는 예약 확인, y는 안전교육 이수, z는 보호 장비 지참이라고 하겠습니다. 출력 F=1은 입장 가능, F=0은 입장 불가입니다. 세 입력은 여덟 조합을 만들지만, x의 역할을 보고 싶다면 y와 z가 같은 두 행끼리 짝지으면 됩니다.
불은 한 입력의 0·1 경우로 함수를 나누는 전개식을 제시했습니다. ‘변수 영향’과 MC/DC는 훨씬 뒤에 발전한 분석·시험 용어입니다. 이 글은 두 시대를 구별하면서, 불의 전개가 오늘의 행 비교를 설명하는 바탕이 된다는 점을 살핍니다.
02 · 불의 제안
F(1)과 F(0)을 나란히 두면 입력의 역할이 보입니다
불의 1848년 논문 식 (8)은 φ(x)=φ(1)x+φ(0)(1−x)입니다. x=1인 부분은 첫 항에, x=0인 부분은 둘째 항에 놓입니다. 여기서 +는 서로 겹치지 않게 나뉜 부류를 합치는 불의 기호 사용입니다. 보통 수의 덧셈으로 두 출력을 더하라는 뜻이 아닙니다.
표에서는 y와 z를 고정한 뒤 x=0행과 x=1행의 F를 비교합니다. 두 출력이 다르면 그 조합에서 x가 결과를 바꿉니다. 네 행 짝에서 모두 같다면 현재 함수는 x에 의존하지 않습니다. 같은 절차를 y와 z에도 적용할 수 있습니다. 이렇게 불 논리의 식을 행 짝으로 펼치면 기호가 맡는 역할을 값에서 확인할 수 있습니다.
03 · 불의 전개식을 표로
출력을 바꾸고, 입력 하나의 행 짝을 비교하세요
| 행 | x | y | z | F |
|---|
한 입력만 다른 행 짝
| 짝 | 0일 때 F | 1일 때 F | 판정 |
|---|
처음 규칙은 F=(xy) 또는 z입니다. z를 비교하면 네 짝 중 세 짝에서 출력이 달라집니다. x를 비교하면 y=1, z=0인 한 짝에서만 달라집니다. ‘z는 무관’을 누르면 z의 모든 짝이 같아집니다. 출력을 모두 0 또는 모두 1로 정했을 때 각 입력이 ‘영향 없음’으로 판정되는지도 확인해 보세요.
04 · 표에서 얻은 발견
한 입력만 다른 두 행을 비교해 영향을 확인합니다
x가 식에 적혀 있어도 모든 조합에서 출력을 바꾸지는 않을 수 있습니다. F=xy에서는 y=0일 때 x를 뒤집어도 출력은 계속 0이고, y=1일 때만 x가 결과를 바꿉니다. 따라서 “x가 영향을 준다”는 말에는 영향을 확인한 짝이 적어도 하나 있다는 뜻이 들어갑니다.
선택한 입력의 네 짝은 진리표의 여덟 행을 정확히 두 행씩 나눕니다. 비교 횟수 4는 사람 수나 성공 비율이 아닙니다. 출력 변화 짝 수를 4로 나눈 값도 실제 사건이 일어날 확률이 아닙니다. 이 표가 정의한 조합 공간에서 변화가 발견된 몫일 뿐입니다.
“x가 중요하다”보다 “y=1, z=0을 고정했을 때 x를 0에서 1로 바꾸면 F가 0에서 1로 바뀐다”라고 씁니다. 고정한 조건, 바꾼 입력, 두 출력을 함께 남기면 재현할 수 있습니다.
05 · 오늘의 실제 적용
규칙의 불필요 조건과 시험 누락을 찾을 수 있습니다
검색 필터나 권한 규칙에 조건이 많아지면, 화면에는 입력란이 있지만 결과에는 아무 영향도 주지 않는 조건이 생길 수 있습니다. 모든 다른 값을 고정하고 그 조건만 뒤집은 행을 비교하면 불필요 조건을 찾을 수 있습니다. 제거 전에는 업무 예외와 미확인 상태가 따로 있는지 확인해야 합니다.
안전과 직결되는 소프트웨어 시험의 MC/DC도 한 조건의 독립 효과를 보이기 위해 다른 조건을 고정하고 그 조건과 결정 결과가 함께 바뀌는 행 짝을 찾습니다. NASA 자료는 이 방식을 명시합니다. MC/DC는 불이 만든 시험 기준이 아니며, 불의 전개와 닮은 행 비교를 현대 시험 공학에서 엄격한 증거로 사용하는 사례입니다.
① 입력의 0·1 의미를 고정합니다. ② 가능한 행과 출력을 만듭니다. ③ 한 입력만 다른 행을 짝짓습니다. ④ 출력이 달라지는 짝을 기록합니다. ⑤ 변화 짝이 없는 조건은 요구사항, 자료 품질, 예외 처리를 확인한 뒤 정리합니다.
06 · 바르게 쓰는 기준
0, 미확인, 영향 없음을 구별합니다
x=0은 예약하지 않았다고 확인된 상태입니다. 예약 정보를 불러오지 못한 미확인 상태를 0으로 넣으면 서로 다른 상황이 합쳐집니다. 미확인은 별도 상태나 보류 결과로 처리한 뒤 두 값 표가 적용되는 범위를 밝혀야 합니다.
변화 짝이 0개라는 판정은 현재 적은 여덟 행과 출력에서 그 입력이 결과를 바꾸지 않았다는 뜻입니다. 현실 전체에서 영원히 쓸모없다는 결론은 아닙니다. 입력 정의나 출력 규칙이 바뀌면 다시 검사해야 합니다.
불의 문제: 여러 기호가 든 함수에서 각 기호의 경우를 드러내기. 불의 제안: 한 입력의 1과 0에 따라 함수를 두 부분으로 전개하기. 오늘의 쓰임: 한 조건만 다른 행 짝을 비교해 규칙 의존성과 시험 증거를 확인하기.
07 · 자료와 출처
불의 원전과 현대 시험 자료
- 조지 불, 「The Calculus of Logic」(1848) — 식 (8)의 전개와 이어지는 정리.
- Project Gutenberg, 『The Calculus of Logic』 서지 페이지 — 1848년 원전의 전자판과 발행 정보.
- NASA Technical Reports Server, A Practical Approach to Modified Condition/Decision Coverage — 조건 하나의 독립 효과를 행 짝으로 확인하는 후대 시험 방법.
- NASA Software Engineering Handbook, Multi-condition Software Requirements — 다른 조건을 고정하고 한 조건을 바꾸는 공식 지침.
- 조지 불 초상 판화 · Wikimedia Commons — 1865년 1월 21일 게재, 공개 영역.
