2. 소프트웨어 공학/소프트웨어 구현 및 시험

코드 커버리지

SWExpert 2022. 10. 13. 23:33

I. 코드 커버리지

-. 소프트웨어 테스트 수행 시 소스코드를 어느 수준까지 테스트 수행하였는가를 나타내는 기준을 의미로 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표

-. 완전 경로 테스트로부터 기준을 약하게 하여 합리적인 방법으로 테스트 케이스를 선정하는 기준

-. 코드의 구조를 테스트하는 기법은 일반적으로 특정 커버리지를 달성하기 위한 테스트를 설계하고 테스트 케이스를 도출하기 위해 사용

특징: 

II. 구조기반 테스팅 대상

구분 구조기반 테스팅 대상
컴포넌트 레벨 구문, 결정, 분기문, 코드
통합 레벨 콜 트리(한 모듈이 다른 모듈 호출하는 관계)
시스템 레벨 메뉴 구조, 비즈니스 프로세스, 웹 페이지 구조

 

II. 소스코드 커버리지 관계도 및 종류

가. 소스코드 커버리지 관계도

-. 다중조건이 커버리지가 가장 크고 변경조건/결정 커버리지조건/결정 커버리지결정 커버리지조건 커버리지구문 커버리지 순으로 포함관계가 형성됨

 

-. 코드 커버리지의 종류는 일반적으로 문장 커버리지(statement coverage), 분기 커버리지(branch coverage), MC/DC 커버리지(Modified Condifion/Decision Coverage)를 많이 사용함

 

나. 소스코드 커버리지 종류

구분 종류 설명
단일 커버리지 구문 커버리지 -. 모든 명령문을 적어도 한번 수행하는 테스트 케이스
-. 가장 약한 형태의 커버리지 기준
결정 커버리지 -. 전체 결정문이 적어도 한번은 참과 거짓의 결과를 수행하는 테스트 케이스
-. Branch 커버리지 같은 의미구문 커버리지 만족
조건 커버리지 -. 명령문 내의 각 개별 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 테스트 케이스
-. 결정 커버리지 보다 강함
복합 커버리지 조건/결정 커버리지 -. 전체 결정문 뿐만 아니라 개별 조건식도 참 한번, 거짓 한번 결과가 되도록 수행하는 테스트 케이스
-. 결정 및 조건 커버리지 향상
변경 조건/결정 커버리지 -. 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 결정문에 독립적으로 영향을 주도록 하는 테스트 케이스
-. 조건/결정 커버리지의 문제점 해결
-. 논리식의 문제점 발생시 해결 난해
다중 조건 커버리지 -. 모든 개별식 조건의 모든 조합을 고려한 커버리지
-. 커버리지 100% 달성
경로 커버리지 모든 경로에 보장하는 테스트 케이스
-. 상호 독립적인 경로를 모두 수행, 잠재적 오류 발견