다음 코드에 대해 기본 경로(basis path) 테스트를 수행할 때,… | [7급 국가직 소프트웨어공학] 21년 1회차 기출문제 상세 페이지
1[7급 국가직 소프트웨어공학] 21년 1회차
다음 코드에 대해 기본 경로(basis path) 테스트를 수행할 때, 모든 독립적인 경로가 최소한 한 번은 실행되는 테스트 입력 집합은?int max(int a, int b, int c) { int result = a; if (b > result) result = b; if (c > result) result = c; return result; }
1
(a=1, b=2, c=3)
2
(a=1, b=1, c=1), (a=1, b=2, c=1)
3
(a=1, b=1, c=1), (a=1, b=1, c=2), (a=1, b=2, c=2)
4
(a=1, b=2, c=3), (a=1, b=3, c=2), (a=2, b=3, c=3)
해설
독립 경로를 모두 실행하는 입력 집합은 (1,1,1), (1,1,2), (1,2,2)이다.
if 문이 2개이므로 순환 복잡도는 이고, 독립 경로는 두 조건의 결과가 (거짓, 거짓)·(거짓, 참)·(참, 거짓)인 3개로 잡을 수 있다.
(1,1,1)은 두 조건 모두 거짓, (1,1,2)는 c > result만 참, (1,2,2)는 b > result만 참이 되어 세 경로를 모두 실행한다.
- (1,2,3) 하나: 두 조건이 모두 참인 경로 1개만 실행한다.
- (1,1,1), (1,2,1): 두 조건 거짓 경로와 b만 참인 경로 2개뿐이다.
- (1,2,3), (1,3,2), (2,3,3): b > result가 항상 참이라 첫 조건이 거짓인 경로가 없어 독립 경로 3개를 채우지 못한다.
오류나 개정된 내용이 보이면 알려주세요