소프트웨어 개발과 프로젝트 관리
판정 'A 그리고 B'(A와 B는 서로 독립적으로 참·거짓을 정할 수 있는 조건)에 대해 테스트 케이스 (A = 참, B = 거짓)과 (A = 거짓, B = 참)의 2개를 실행했다. 커버리지 기준에 대해 올바른 것은?
- A분기 커버리지는 만족하지만, 조건 커버리지는 만족하지 않는다
- B분기 커버리지와 조건 커버리지를 모두 만족한다
- C조건 커버리지는 만족하지만, 분기 커버리지는 만족하지 않는다
정답과 해설 보기
정답: C. 조건 커버리지는 만족하지만, 분기 커버리지는 만족하지 않는다
조건 커버리지는 판정 안의 개별 조건(A와 B)이 각각 참과 거짓을 적어도 1회 취할 것을 요구합니다. 2개의 테스트 케이스에서 A도 B도 참과 거짓을 1회씩 취하므로, 조건 커버리지는 만족합니다. 그러나 'A 그리고 B'는 어느 테스트 케이스에서도 거짓이 되어 판정이 참이 되는 분기를 한 번도 지나지 않으므로, 분기 커버리지는 만족하지 않습니다. 조건 커버리지만으로는 분기 커버리지를 보장할 수 없으므로, 둘 다 만족하는 결정/조건 커버리지 등이 쓰입니다. 덧붙여 여기서는 각 조건에 준 값으로 생각하고 있으며, C 언어의 &&처럼 왼쪽이 거짓이면 오른쪽을 평가하지 않는 경우에는 실제로 평가된 조건으로 세는 사고방식도 있습니다.