다음 C 언어로 작성된 소스코드에서 두 개의 테스트 케이스, [Test… | [7급 국가직 소프트웨어공학] 24년 1회차 기출문제 상세 페이지
1[7급 국가직 소프트웨어공학] 24년 1회차
다음 C 언어로 작성된 소스코드에서 두 개의 테스트 케이스, [Test case 1: (x=10, y=10, z=10), Test case 2: (x=8, y=7, z=5)]를 사용하여 테스트를 실행할 때, 이 두 개의 테스트 케이스로 달성되는 분기 커버리지와 조건 커버리지를 바르게 계산한 것은? (단, 단축 연산(short-circuit evaluation)은 수행하지 않고, 분기 및 조건에서 true 및 false 각각을 하나의 경우의 수로 계산한다)분기 커버리지(%) 조건 커버리지(%)if ((x > 5) || (y > 10) || (z < 8)) {
z = x + y;
z = z - 1;
}
if ((x > 8) && (z > 9)) {
z = z + 1;
}
1
50 70
2
75 80
3
75 70
4
100 80
해설
분기 커버리지는 75%, 조건 커버리지는 70%이다. 첫 번째 if의 거짓 분기와 일부 조건의 한쪽 결과가 실행되지 않는다.
Test case 1 (10, 10, 10): 첫 if는 x>5가 참이라 참, z = 10+10−1 = 19. 둘째 if는 x>8 참, z>9 참으로 참.
Test case 2 (8, 7, 5): 첫 if는 x>5와 z<8이 참이라 참, z = 8+7−1 = 14. 둘째 if는 x>8 거짓, z>9 참으로 거짓.분기: 첫 if 참, 둘째 if 참·거짓만 실행
조건: x>5(참만), y>10(거짓만), z<8(참·거짓), x>8(참·거짓), z>9(참만)
오류나 개정된 내용이 보이면 알려주세요