정보시스템감리사/기출문제_19년_20회

50_문장커버리지_분기커버리지

론리나잇 2025. 4. 30. 15:08

📘 문제 50. 최소 문장/분기 커버리지 테스트 케이스 수

다음 pseudo code를 보고 최소 문장 커버리지 (statement coverage) 테스트 케이스(test case)의 수와
최소 분기 커버리지 (branch coverage) 테스트 케이스(test case)의 수로 가장 적절한 것을 고르시오.

🔢 의사코드 (Pseudo Code)

read a, b;
if (a + b > 10) then
    print “Big”;
endif
if (a > 10) then
    print “aBig”;
endif
print a, b;

✅ 개념 정리

📌 문장 커버리지 (Statement Coverage)

  • 프로그램 내 모든 문장최소 1회 이상 실행되었는지를 평가
  • 조건문 내의 실행문도 포함
  • 조건이 거짓이라도, 다른 케이스로 인해 해당 문장이 한 번이라도 실행되면 충족

📌 분기 커버리지 (Branch Coverage)

  • 조건문의 분기(True / False) 양쪽 모두 최소 한 번은 실행되었는지를 평가
  • if문은 True 경로, False 경로가 각각 한번씩 나와야 함

🧪 문장 커버리지 분석

전체 실행 문장

  1. read a, b;
  2. print "Big"; (조건 1 참일 때 실행)
  3. print "aBig"; (조건 2 참일 때 실행)
  4. print a, b;

테스트 케이스 예시

  • a = 11, b = 0
    • a + b = 11 > 10 → 참 → "Big" 출력
    • a = 11 > 10 → 참 → "aBig" 출력
    • 나머지 모든 문장도 실행됨

✅ 단 1개의 테스트 케이스로 모든 문장 실행 → 문장 커버리지 충족


🧪 분기 커버리지 분석

분기 조건 2개

  1. if (a + b > 10) → True / False
  2. if (a > 10) → True / False

테스트 케이스 예시

  • TC1: a = 11, b = 0

    • 조건 1: 참
    • 조건 2: 참
  • TC2: a = 1, b = 1

    • 조건 1: 거짓
    • 조건 2: 거짓

✅ 두 조건 모두에서 True / False 각각 한 번씩 실행됨 → 분기 커버리지 충족


✅ 최종 정리

항목 최소 테스트 케이스 수 설명
문장 커버리지 1개 모든 실행문이 한 번 이상 실행됨
분기 커버리지 2개 모든 조건 분기(True/False) 실행됨

🟩 정답: ③번. 문장 커버리지: 1, 분기 커버리지: 2