정보관리기술/소프트웨어공학

테스트 커버리지(Test Coverage), 코드 커버리지(Code Coverage) / ①

아이티신비 2024. 1. 9. 08:30

문제7) 테스트 커버리지(Test Coverage)와 코드 커버리지(Code Coverage)

 

답)

 

 

1. 테스트 케이스 실제 수령 여부 확인, 테스트 커버리지(Test Coverage) 설명

가. 테스트 커버리지(Test Coverage)의 정의 및 특징

 

구분
설명
정의
  • 테스트 케이스가 실제로 애플리케이션 코드를 커버하는지 여부와 테스트 케이스를 실행할 때 얼마나 많은 코드가 실행되는지를 결정하는 기술
특징
높은 커버리지
  • 우수한 커버리지 보장을 위해 더 많은 테스트케이스 생성
중복 제거
  • 프로젝트에서 별로 의미가 없는 테스트 사례를 식별하고 제거하는데 특히 유용함
높은 ROI
  • 테스트 적용 범위는 ROI 에 상당한 영향을 미칠 수 있음
테스트 미수행 지역 발견
  • 테스트 케이스는 테스트 케이스에서 다루지 않는 영역 찾음

 

나. 테스트 커버리지(Test Coverage)의 유형

구분
설명
예시

Statement Coverage
  • 소스 코드의 모든 명령문이 최소 한 번 테스트 되었음을 보장
  • 커버리지 : 1A-2C-3D-E-4G-5H
Banch
Coverage
  • 가능한 모든 경로 또는 분기가 적용되는지 확인
  • 커버리지#1(True 조건 점검) : 1A-2C-3D-E-4G-5H
  • 커버리지#2(True 조건 점검) : 1A-2B-E-4F
Path Coverage
  • 가능한 모든 실행 결로를 찾기 위해 프로그램의 소스 코드를 사용하는 것
  • 처음부터 끝까지 모든 경로의 적용을 보장함
  • 커버리지 #1 : 1A-2B-E-4F
  • 커버리지 #2 : 1A-2B-E-4G-5H
  • 커버리지 #3 : 1A-2C-3D-E-4G-5H
  • 커버리지 #4 : 1A-2C-3D-E-4F
  • 이외 각 테스트 케이스의 경계 값을 검증하는 Boundary Value Coverage

 

2. 테스트 수행 범위 검증, 코드 커버리지(Code Coverage) 설명


구분
설명
정의
  • 테스트 대상의 전체 범위에서 테스트를 수행한 범위 정도로 테스트 대상을 얼마나 테스트했는지 테스트의 정확성을 판단하는 척도
유형
구문 커버리지(SC)
  • 모든 명령문을 적어도 한번 수행하는 테스트 케이스
결정 커버리지(DC)
  • 전체 결정문이 적어도 한번은 참과 거젓의 결과를 수행하는 테스트 케이스
조건 커버리지(CC)
  • 명령문 내의 각 개별 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 테스트 케이스
조건/결정 커버리지(C/DC)
  • 전체 결정문뿐만 아니라 개별 조건식도 참 한번, 거짓 한 번의 결과가 되도록 수행하는 테스트 케이스
변경조건/결정 커버리지(MC/CC)
  • 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 결정문에 독립적으로 영향을 주도록 하는 테스트 케이스
다중조건 커버리지(MCC)
  • 모든 개별식 조건이 모든 조합을 고려한 커버리지
경로 커버리지(PC)
  • 모든 경로를 적어도 한번 수행하는 테스트 케이스
  • 다중조건 커버리지가 가장 넓은 커버리지 이나 상황에 적합한 테스트 케이스 선택이 바람직함

 

3. 테스트 커버리지와 코드 커버리지 비교

구분
테스트 커버리지
코드 커버리지
유형
  • 블랙박스 테스트
  • 화이트 박스 테스트
사용이유
  • 소프트웨어 개선에 필요한 새로운 테스트 케이스 발굴 및 측정
  • 효율적 테스트 수행 능력 측정
효과
  • 기능확인
  • 프로그램 흐름에서 버그 발견