생각그림 연구소 / 조지 불 특집 / 제14회

조지 불 특집 · 생각을 계산하는 법 14

불의 전개식으로 입력 하나씩 살펴보기

다른 입력을 고정하고 하나만 뒤집어, 결과를 바꾸는 조건을 찾아봅니다.

1848년 전개식 (8) · 현대 조건 독립성 검사

조지 불의 역사적 초상 판화
조지 불(1815–1864)논리의 관계를 기호와 계산으로 나타낸 수학자
초상화 출처

『일러스트레이티드 런던 뉴스』, 1865년 1월 21일 게재. 작가 미상. 퍼블릭 도메인.

위키미디어 공용에서 원본 보기
본문 크기

규칙에 조건이 세 개 들어 있다고 해서 세 조건이 모두 결과에 영향을 주는 것은 아닙니다. 조지 불(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에도 적용할 수 있습니다. 이렇게 불 논리의 식을 행 짝으로 펼치면 기호가 맡는 역할을 값에서 확인할 수 있습니다.

F = xF(1) + (1−x)F(0)

03 · 불의 전개식을 표로

출력을 바꾸고, 입력 하나의 행 짝을 비교하세요

세 입력 함수 실험 · 8개 진리표 행F 버튼으로 출력을 바꾸고, 살펴볼 입력을 고릅니다. 이 사례의 사람·상황은 모두 가상입니다.
행xyzF

한 입력만 다른 행 짝

짝0일 때 F1일 때 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 · 자료와 출처

불의 원전과 현대 시험 자료

  1. 조지 불, 「The Calculus of Logic」(1848) — 식 (8)의 전개와 이어지는 정리.
  2. Project Gutenberg, 『The Calculus of Logic』 서지 페이지 — 1848년 원전의 전자판과 발행 정보.
  3. NASA Technical Reports Server, A Practical Approach to Modified Condition/Decision Coverage — 조건 하나의 독립 효과를 행 짝으로 확인하는 후대 시험 방법.
  4. NASA Software Engineering Handbook, Multi-condition Software Requirements — 다른 조건을 고정하고 한 조건을 바꾸는 공식 지침.
  5. 조지 불 초상 판화 · Wikimedia Commons — 1865년 1월 21일 게재, 공개 영역.