[소프트웨어 구축] 테스트 커버리지

2025. 10. 16. 15:35·💻 CS/정보처리기사

1. 테스트 커버리지 개념

  • 테스트가 코드의 어느 정도를 검증했는지를 측정하는 지표
  • 결함을 놓치지 않도록 테스트 범위를 정의하고 향상시키기 위함
  • 여러 커버리지 기준으로 테스트의 완성도를 분석할 수 있음

 

2. 테스트 커버리지 유형

  • 기능 기반 커버리지
  • 라인 커버리지
  • 코드 커버리지

 

3. 코드 커버리지

구분 설명
구문(문장) 커버리지
(Statement Coverage)
프로그램 내 모든 명령문을 적어도 한 번씩 수행
결정(분기) 커버리지
(Branch Coverage)
프로그램 내 전체 결정(분기)가 적어도 한 번씩은 참/거짓 결과를 수행
조건 커버리지
(Condition Coverage)
결정 명령문 내의 각 개별 조건식이 적어도 한 번은 참/거짓 결과 수행
조건/결정 커버리지
(Condition/Decision Coverage)
전체 결정식뿐 아니라 개별 조건식도 참/거짓 한 번 이상 수행
변경 조건/결정 커버리지
(Modified Condition/Decision Coverage,
MC/DC)
각 개별 조건식이 독립적으로 전체 결정식 결과에 영향을 주는지 확인
다중 조건 커버리지
(Multiple Condition Coverage)
결정 포인트 내 모든 개별 조건식의 모든 가능한 논리적 조합을 고려 → 100% 커버리지 보장

 

(1) 구문 커버리지

  • 모든 코드를 한 번 이상 실행했는지 확인
  • 코드의 각 문장을 최소 1번 실행
  • 가장 기본적이고, 조건 만족 여부는 무관함

(2) 조건 커버리지

  • 각 조건식의 True / False 값을 모두 발생시킴
  • 모든 조건식을 참 / 거짓으로 테스트
  • 조합은 신경 쓰지 않고, 개별 조건만 검증
  • 예시: if (A && B) → A(True/False), B(True/False)

(3) 결정 커버리지

  • 조건 전체 결과(True/False)가 모두 발생했는지 확인
  • 분기점의 전체 흐름을 점검
  • if(A && B) : 전체 결과가 True/False 되도록 확인

(4) 조건/결정 커버리지

  • 조건 + 결정 커버리지를 동시에 만족
  • 조건의 각각과 결정 결과까지 확인
  • if(A && B) : A, B 각각 true/false + 결과도 true/false

예시

  • 테스트 1: A=true, B=true (결정 true)
  • 테스트 2: A=true, B=false (결정 false)
  • 테스트 3: A=false, B=true (결정 false)

(5) 변경 조건/결정 커버리지

  • 모든 조건은 최소 한 번은 True/False를 가짐
  • 한 조건만 바꿔 결과가 바뀌는지 확인
  • 이론적으로 가장 안전한 조합이며 케이스도 줄임

예시

  • 테스트 1: A=true, B=true → 결과: true
  • 테스트 2: A=false, B=true → 결과: false → A 바뀌어 결과 변함
  • 테스트 3: A=true, B=true → 결과: true
  • 테스트 4: A=true, B=false → 결과: false → B 바뀌어 결과 변함

(6) 다중 조건 커버리지

  • 모든 조건의 조합을 테스트 (2ⁿ 개)
  • 조건들 간의 모든 경우의 수 검증
  • if(A && B) : TT, TF, FT, FF

 

더보기

참고

꿈꾸는라이언 정처기 실기 요약노트

흥달쌤 [5분 특강] #17 테스트 커버리지

'💻 CS > 정보처리기사' 카테고리의 다른 글

[소프트웨어 구축] 모듈의 결합도(Coupling)와 응집도(Cohesion)  (0) 2025.10.21
[소프트웨어 구축] GoF(Gang of Four) 디자인 패턴  (3) 2025.10.16
[정보 보안] 보안 공격 기법  (0) 2025.10.16
[데이터베이스] 키와 무결성  (2) 2025.10.16
[운영체제] 페이지 교체 알고리즘  (4) 2025.10.16
'💻 CS/정보처리기사' 카테고리의 다른 글
  • [소프트웨어 구축] GoF(Gang of Four) 디자인 패턴
  • [정보 보안] 보안 공격 기법
  • [데이터베이스] 키와 무결성
  • [운영체제] 페이지 교체 알고리즘
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • 전체
    오늘
    어제
    • 분류 전체보기 (104)
      • 📂 Project (2)
        • Paint the City (2)
      • 💭 Problem Solving (42)
        • C++ (28)
        • Java (14)
      • 📝 Study (17)
        • React (1)
        • Java (16)
      • 💻 CS (11)
        • 면접을 위한 CS 전공지식 노트 (2)
        • 정보처리기사 (9)
      • 🏃‍♀️ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    github
    react
    unity
    시뮬레이션
    트리
    백트래킹
    makefile
    BFS
    .h
    dfs
    git
    C
    프로그래머스
    knapsack
    42경산
    정보처리기사
    CS
    구현
    dynamic programming
    swea
    브루트포스
    VR
    정렬
    그리디 알고리즘
    HTML
    CSS
    La Piscine
    java
    맵
    백준
  • hELLO· Designed By정상우.v4.10.3
0=2.
[소프트웨어 구축] 테스트 커버리지
상단으로

티스토리툴바