[정처기 실기 대비] 화이트박스 테스트 - 조건 커버리지, 분기 커버리지, 조건/분기 커버리지

2025. 8. 5. 14:50·공부기록/CS
조건, 분기 이름부터 확 구별이 와닿지 않는다.
그래서 나올 때마다 계속 헷갈리는데, 한 번에 정리해보고 익혀보자!! 
분기 커버리지 if, switch처럼 분기문이 참/거짓 모두 실행되는가? 모든 분기를 한 번씩 실행
조건 커버리지 조건식 안에 있는 모든 조건이 참/거짓 되는가? 모든 조건이 true/false 한번씩
조건/분기 커버리지 위 두 개를 합친 것 분기도, 조건도 다 체크
 

검색해보면 나오는 뻔한 정의이다.

근데 정의만 보면 무슨 말인가 봐도 이해가 안된다.

예시로 쉽게 이해해서 다시 찾아보는 일이 없게 만들어보자!!


if (A || B) { 
    // 실행문
 }

 

위의 코드는 1개의 분기문과 2개의 조건이 있다. 

분기문이 if문이라 생각하면 되고, 조건이 if 분기문 안에 있는 조건들을 의미한다.

(위의 예제에서는 A와 B가 조건이 된다.)

  • 1개의 분기문 (if)
  • 2개의 조건 (A, B)

1. 분기 커버리지 (Branch Coverage)

  • if (A || B)가 true 되는 경우
  • if (A || B)가 false 되는 경우

분기 커버리지라는 것은 if문 통째로 T와 F가 모두 실행되었는지를 확인하는 것이다.

A B 분기문(IF문)의 결과 
F F ❌ (조건식 false)
T F ✅ (조건식 true)
 

→ IF문이 T와 F인 경우 둘 다 실행됐기 때문에 분기 커버리지 100%가 된다.


2. 조건 커버리지 (Condition Coverage)

  • A가 true, false 되는 케이스 실행
  • B도 true, false 되는 케이스 실행

조건 커버리지는 분기문 안에 있는 조건 하나하나의 값이 T와 F 모두 실행 되어봤는지를 확인한다

 

A B
T F
F T

위의 경우를 보면 A라는 조건도 T, F를 모두 확인했고, B라는 조건도 F와 T를 모두 점검했다.

따라서 이 경우에는 조건 커버리지 100%가 된다. 

 


cf. 하지만 조건 커버리지가 100%라고 해서 분기 커버리지도 100%가 되는 것은 아니다. 

A B if 분기문의 결과
T F T
F T T

 

바로 위의 표를 보면, 각 조건 A,B는 T/F를 모두 만족하지만

if 분기문은 T만 결과가 나오는 것을 볼 수 있다. 따라서 분기 커버리지는 100%가 아니게 된다.

이렇게 조건 커버리지와 분기 커버리즈를 모두 합쳐서 확인하는 검증 기준이 조건/분기 커버리지이다. 

 

 


3. 🔹 조건/분기 커버리지 (Condition/Decision Coverage)

  • if문이 true/false 모두 됐는지 (분기 커버리지)
  • 내부 조건(A, B)이 true/false 모두 나왔는지 (조건 커버리지)

→ 둘 다 만족해야 조건/분기 커버리지 100%


한 번에 정리하자면 아래 예제를 가지고 이렇게 표현할 수 있겠다. 

if (A || B)
조건 커버리지는 → A, B 각각 true와 false를 모두 확인했는지 점검! 
분기 커버리지는 → if문이 true와 false가 되는 경우를 모두 확인하고 있는지 점검!  
조건/분기 커버리지는 → 둘 다 만족하는지!
저작자표시 비영리 변경금지 (새창열림)

'공부기록 > CS' 카테고리의 다른 글

02. 개략적인 규모 추정  (0) 2025.10.06
01. 사용자 수에 따른 규모 확장성  (0) 2025.10.05
[정처기 실기 대비] 라우팅 프로토콜 - RIP, OSPF  (6) 2025.07.13
[정처기 실기 대비] 네트워크 보안 관련 프로토콜, IPsec, SSL, S-HTTP  (1) 2025.07.12
[OS] 프로세스 스케줄링 알고리즘  (0) 2025.05.26
'공부기록/CS' 카테고리의 다른 글
  • 02. 개략적인 규모 추정
  • 01. 사용자 수에 따른 규모 확장성
  • [정처기 실기 대비] 라우팅 프로토콜 - RIP, OSPF
  • [정처기 실기 대비] 네트워크 보안 관련 프로토콜, IPsec, SSL, S-HTTP
Lyv
Lyv
  • Lyv
    inimizi
    Lyv
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 이것저것 도전 (5)
        • 공모전 (0)
        • 우테코 (5)
      • PS (16)
        • 삼성기출 (2)
        • LeetCode & Codility (4)
        • Programmers (6)
        • BaekJoon (4)
      • 공부기록 (33)
        • CS (16)
        • 영어 (1)
        • iOS (1)
        • 프로그래밍 언어 (0)
        • Web (4)
        • Linux (1)
        • Docker (2)
        • Network (4)
        • IaC (3)
      • 프로젝트 경험 (0)
      • DailyLog (4)
      • 취준Log (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    우테코
    DP
    C++
    프로그래머스
    디자인패턴
    컨테이너
    ansible
    os
    우테코프리코스
    스케줄링
    백준
    대학생
    PS
    til
    이미지
    정처기실기
    운영체제intro
    자동화
    IAC
    운영체제
    네트워크
    문제풀이
    프리코스회고
    manifest
    리눅스
    정처기
    FastAPI
    코테
    c언어
    공부기록
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Lyv
[정처기 실기 대비] 화이트박스 테스트 - 조건 커버리지, 분기 커버리지, 조건/분기 커버리지
상단으로

티스토리툴바