소프트웨어 개발과 프로젝트 관리
temp와 err의 값은 서로 독립적으로 정할 수 있다고 한다. 다음 처리 'if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); }'에서 구문 커버리지(모든 명령문을 적어도 1회 실행한다)를 만족하는 데 필요한 최소 테스트 케이스의 수는?
- A2
- B3
- C4
정답과 해설 보기
정답: A. 2
명령문은 fan = HIGH, fan = LOW, log()의 3개입니다. fan = HIGH와 fan = LOW는 1회의 실행에서 한쪽만 지나가므로 적어도 2회가 필요하며, 예를 들어 (temp > 80, err가 참)과 (temp ≤ 80, err가 거짓)의 2개 테스트 케이스로 3개의 명령문을 모두 실행할 수 있습니다. 3은 명령문의 수만큼 테스트 케이스를 만든 경우, 4는 두 조건의 참·거짓 조합(경로)을 모두 시험하는 경우의 수입니다. 구문 커버리지는 가장 약한 커버리지 기준으로, 예를 들어 두 번째 if의 거짓 쪽(아무것도 하지 않는 경로)을 지나지 않아도 만족할 수 있습니다.