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

판정 'A 그리고 B'(A와 B는 서로 독립적으로 참·거짓을 정할 수 있는 조건)에 대해 테스트 케이스 (A = 참, B = 거짓)과 (A = 거짓, B = 참)의 2개를 실행했다. 커버리지 기준에 대해 올바른 것은?

  1. A분기 커버리지는 만족하지만, 조건 커버리지는 만족하지 않는다
  2. B분기 커버리지와 조건 커버리지를 모두 만족한다
  3. C조건 커버리지는 만족하지만, 분기 커버리지는 만족하지 않는다
정답과 해설 보기

정답: C. 조건 커버리지는 만족하지만, 분기 커버리지는 만족하지 않는다

조건 커버리지는 판정 안의 개별 조건(A와 B)이 각각 참과 거짓을 적어도 1회 취할 것을 요구합니다. 2개의 테스트 케이스에서 A도 B도 참과 거짓을 1회씩 취하므로, 조건 커버리지는 만족합니다. 그러나 'A 그리고 B'는 어느 테스트 케이스에서도 거짓이 되어 판정이 참이 되는 분기를 한 번도 지나지 않으므로, 분기 커버리지는 만족하지 않습니다. 조건 커버리지만으로는 분기 커버리지를 보장할 수 없으므로, 둘 다 만족하는 결정/조건 커버리지 등이 쓰입니다. 덧붙여 여기서는 각 조건에 준 값으로 생각하고 있으며, C 언어의 &&처럼 왼쪽이 거짓이면 오른쪽을 평가하지 않는 경우에는 실제로 평가된 조건으로 세는 사고방식도 있습니다.

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

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

  1. 상향식 테스트에서 아직 완성되지 않은 상위 모듈 대신, 테스트 대상인 하위 모듈을 호출하여 테스트 데이터를 넘기고 결과를 받기 위해 만드는 것은?
  2. 테스트 공정에서 테스트 시간(또는 테스트 케이스의 소화 수)을 가로축에, 발견된 결함의 누적 건수를 세로축에 잡은 신뢰도 성장 곡선을 그렸다. 곡선이 아직 오른쪽 위로 올라가는 채이고, 포화하는(평평해지는) 모습이 보이지 않을 때의 판단으로 가장 적절한 것은?
  3. 규모가 25 k스텝(25,000행)인 펌웨어의 통합 테스트에서 결함이 30건 발견되었다. 조직의 과거 실적으로부터 이 공정에서 발견되는 결함의 기준은 1 k스텝당 2~4건으로 되어 있다. 이 결과의 평가로 가장 적절한 것은?
  4. Git에서 두 개발자가 같은 파일의 같은 행을 각각 다른 브랜치에서 고쳐 쓰고, 한쪽 브랜치를 다른 쪽에 병합했다. 이때 일어나는 일로 적절한 것은?
  5. 설계서나 소스 코드의 리뷰 방법 중, 모더레이터(진행자)가 주도하고 참가자의 역할을 정하며, 체크리스트 등을 사용해 공식적으로 수행하고, 발견한 결함을 기록하여 수정까지 확인하는 것은?