소프트웨어 개발과 프로젝트 관리

temp와 err의 값은 서로 독립적으로 정할 수 있다고 한다. 다음 처리 'if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); }'에서 구문 커버리지(모든 명령문을 적어도 1회 실행한다)를 만족하는 데 필요한 최소 테스트 케이스의 수는?

  1. A2
  2. B3
  3. 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의 거짓 쪽(아무것도 하지 않는 경로)을 지나지 않아도 만족할 수 있습니다.

이 분야 연습하기 분야로 돌아가기

소프트웨어 개발과 프로젝트 관리의 다른 문제

  1. a, b, c의 참·거짓은 서로 독립적으로 정할 수 있다고 한다. 다음 처리 'if (a) { S1; } if (b) { S2; } if (c) { S3; }'에서 분기 커버리지(모든 판정의 참과 거짓을 적어도 1회씩 실행한다)를 만족하는 데 필요한 최소 테스트 케이스의 수는?
  2. 판정 'A 그리고 B'(A와 B는 서로 독립적으로 참·거짓을 정할 수 있는 조건)에 대해 테스트 케이스 (A = 참, B = 거짓)과 (A = 거짓, B = 참)의 2개를 실행했다. 커버리지 기준에 대해 올바른 것은?
  3. 상향식 테스트에서 아직 완성되지 않은 상위 모듈 대신, 테스트 대상인 하위 모듈을 호출하여 테스트 데이터를 넘기고 결과를 받기 위해 만드는 것은?
  4. 테스트 공정에서 테스트 시간(또는 테스트 케이스의 소화 수)을 가로축에, 발견된 결함의 누적 건수를 세로축에 잡은 신뢰도 성장 곡선을 그렸다. 곡선이 아직 오른쪽 위로 올라가는 채이고, 포화하는(평평해지는) 모습이 보이지 않을 때의 판단으로 가장 적절한 것은?
  5. 규모가 25 k스텝(25,000행)인 펌웨어의 통합 테스트에서 결함이 30건 발견되었다. 조직의 과거 실적으로부터 이 공정에서 발견되는 결함의 기준은 1 k스텝당 2~4건으로 되어 있다. 이 결과의 평가로 가장 적절한 것은?