소프트웨어 개발과 프로젝트 관리
a, b, c의 참·거짓은 서로 독립적으로 정할 수 있다고 한다. 다음 처리 'if (a) { S1; } if (b) { S2; } if (c) { S3; }'에서 분기 커버리지(모든 판정의 참과 거짓을 적어도 1회씩 실행한다)를 만족하는 데 필요한 최소 테스트 케이스의 수는?
- A1
- B2
- C8
정답과 해설 보기
정답: B. 2
세 판정 각각에서 참과 거짓을 모두 지나가야 합니다. (a, b, c가 모두 참)과 (모두 거짓)의 2개 테스트 케이스로 각 판정의 참과 거짓이 1회씩 실행되므로, 최소는 2개입니다. 1개(모두 참)로도 S1~S3의 모든 명령문은 실행할 수 있으므로 구문 커버리지는 만족하지만, 거짓 쪽 분기(아무것도 하지 않고 다음으로 나아가는 경로)가 실행되지 않습니다. 8은 참·거짓의 조합 2³ = 8가지를 모두 시험하는 경우의 수입니다.