결정 테이블 커버리지는 실제 조건 조합 중 전제상 발생할 수 있는 feasible rule을 분모로 셉니다. 명시된 요구사항으로 발생 불가능함을 설명할 수 있는 조합은 전체 표에 표시하되 실행 규칙과 coverage 분모에서는 제외할 수 있습니다.

단순히 아직 시험하지 않았거나 업무 규칙이 불분명한 조합을 임의로 infeasible로 처리하면 안 됩니다. 예제에서는 전체 네 조합 중 한 조합이 명시된 입력 불변식과 모순되므로 가능한 규칙 세 개만 분모에 둡니다.

규칙 열은 조건 조합과 결과를 나타냅니다

결정 테이블 테스트는 조건의 조합과 그 조합에서 기대하는 동작을 열로 정리해 빠뜨린 규칙이나 모순을 찾는 블랙박스 기법입니다. 두 조건이 각각 참 또는 거짓이라면 아무 제약이 없을 때 전체 조합은 네 개입니다. 그러나 일부 조합이 요구사항의 전제 때문에 일어날 수 없다면 실행 대상은 네 개보다 적을 수 있습니다. 기준은 표를 만든 사람의 직감이 아니라, 조건 사이에 명시된 제약과 시험 대상의 정의입니다.

전제를 명시한 뒤 네 조합을 펼칩니다

전체 조합을 세운 뒤 feasible 규칙만 테스트 대상으로 계산합니다
규칙계정 활성자격 증명 통과기대 동작커버리지 분모
R1참참세션 허용포함
R2참거짓실패 횟수 기록포함
R3거짓거짓접근 거부포함
R4거짓참N/A: 전제와 모순제외

두 Boolean 조건에서 가능한 전체 조합은 2×2로 네 개입니다. 하지만 예제의 불변식은 비활성 계정에서 자격 증명 검증이 통과하지 못한다고 정했습니다. 따라서 R4는 조건표에 남겨 불가능한 이유를 드러내되 실행 가능한 규칙으로 보지는 않습니다. 남은 R1, R2, R3은 각각 다른 기대 동작을 갖습니다. 테스트가 R1과 R3만 실행했다면 feasible 규칙 세 개 중 두 개를 실행했으므로 이 단순한 전체 결정표 기준 coverage는 2/3, 약 66.7%입니다.

원본 창작 예시의 분모 계산
전체 조건 조합: 4
불변식과 모순되는 조합: 1
feasible rule: 4 - 1 = 3
실행한 feasible rule: R1, R3 = 2
coverage: 2 / 3 = 약 66.7%

불가능한 조합의 근거를 열에 남깁니다

  1. 각 조건의 가능한 값을 나열하고 전체 조합 수를 계산합니다.
  2. 조건 사이의 명시된 전제나 불변식을 원문 요구사항에서 찾습니다.
  3. 불가능하다고 판단한 조합과 근거를 N/A 등으로 표에 표시합니다.
  4. 그 근거가 약하거나 누락된 조합은 feasible 대상에서 빼지 말고 요구사항을 확인합니다.
  5. 실행된 feasible 열 수를 전체 feasible 열 수로 나눠 coverage를 계산합니다.

미시험 규칙과 불가능한 규칙을 바꿔 부르지 않습니다

자주 하는 실수는 테스트하기 어렵거나 아직 처리 방법을 정하지 않은 조합을 불가능한 규칙으로 치환하는 것입니다. 예를 들어 R2를 실행하지 않았다고 해서 R2가 사라지는 것은 아닙니다. 이는 단순히 미실행 규칙입니다. 반대로 전제에 근거해 R4가 절대로 입력되지 않는다는 점이 입증되면 이를 N/A로 기록하고 분모에서 제외할 수 있습니다. 명세가 불명확하다면 규칙 자체가 누락됐는지 검토해야 합니다. ISTQB의 Foundation Level과 Test Analyst syllabus는 feasible column 기준 coverage를 설명합니다. 고급 Test Analyst 문서는 불가능 규칙을 검토할 때 feasibility를 확인하도록 다룹니다.

이 예시는 full decision table을 사용하므로 각 열이 조건의 구체적인 한 조합을 나타냅니다. 규칙을 합쳐 표를 최소화하면 한 열이 여러 원래 조합을 대표할 수 있습니다. 이 경우에는 단순히 현재 표의 열 수만 세지 말고 어떤 원래 조합을 대표하는지와 누락·겹침이 없는지 점검해야 합니다. 이번 글은 전체 조합에서 infeasible 여부를 판단하는 기본 계산에 한정하고 최소화 절차는 다루지 않습니다.

정답을 가리고 확인해 보세요

이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.

전체 조합이 4개이고 명시된 불변식과 모순되는 조합이 1개입니다. 실행 가능한 규칙 3개 중 2개를 시험했다면 coverage는 얼마인가요?

정답과 해설 확인가능한 규칙 세 개 중 두 개를 실행했으므로 coverage는 약 66.7%입니다. 미실행 규칙은 여전히 분모에 포함합니다.

결정 테이블 coverage는 실행한 feasible column 수를 전체 feasible column 수로 나눕니다. 불가능 조합은 근거가 있어야 제외하며 미시험과는 다릅니다.