모두CBT

다음 소스 코드와 테스트 입력을 사용한 테스트 커버리지 설명으로 옳지 … | [7급 국가직 소프트웨어공학] 21년 1회차 기출문제 상세 페이지

1[7급 국가직 소프트웨어공학] 21년 1회차
다음 소스 코드와 테스트 입력을 사용한 테스트 커버리지 설명으로 옳지 않은 것은? (단, 단축연산(short-circuit evaluation)은 수행하지 않는다)
문장
번호
소스 코드테스트 입력
void temp(int x, int y) {T = {t1:(x=-2, y=3),
    t2:(x=2, y=0)}
1    if(x < 0 && y >= 0)
2        printf("%d",y);
3    if(x >= 0)
4        printf("%d",x);
}
1
t2만 사용하면 문장(statement) 커버리지가 75 %이다.
2
T를 사용하면 문장 커버리지가 100 %이다.
3
T를 사용하면 분기(branch) 커버리지가 100 %이다.
4
T를 사용하면 조건(condition) 커버리지가 100 %이다.
해설

T로는 조건 y ≥ 0이 거짓이 되는 경우가 없으므로 조건 커버리지는 100%가 아니다.

t1(x=-2, y=3)은 문장 1·2·3을, t2(x=2, y=0)는 문장 1·3·4를 실행한다. 개별 조건을 보면 x < 0과 x ≥ 0은 참·거짓이 모두 나오지만 y ≥ 0은 두 입력 모두 참이다.

  • t2만 사용한 문장 커버리지: 문장 4개 중 1·3·4를 실행하므로 75%이다.
  • T의 문장 커버리지: t1이 문장 2를, t2가 문장 4를 실행해 4개 모두 실행되므로 100%이다.
  • T의 분기 커버리지: 첫째 if는 t1에서 참·t2에서 거짓, 둘째 if는 t1에서 거짓·t2에서 참이므로 100%이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 소프트웨어공학] 21년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 소프트웨어공학 기출문제 암기장 전체 보기