I. 코드 커버리지
-. 소프트웨어 테스트 수행 시 소스코드를 어느 수준까지 테스트 수행하였는가를 나타내는 기준을 의미로 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표
-. 완전 경로 테스트로부터 기준을 약하게 하여 합리적인 방법으로 테스트 케이스를 선정하는 기준
-. 코드의 구조를 테스트하는 기법은 일반적으로 특정 커버리지를 달성하기 위한 테스트를 설계하고 테스트 케이스를 도출하기 위해 사용
특징:
II. 구조기반 테스팅 대상
구분 | 구조기반 테스팅 대상 |
컴포넌트 레벨 | 구문, 결정, 분기문, 코드 |
통합 레벨 | 콜 트리(한 모듈이 다른 모듈 호출하는 관계) |
시스템 레벨 | 메뉴 구조, 비즈니스 프로세스, 웹 페이지 구조 |
II. 소스코드 커버리지 관계도 및 종류
가. 소스코드 커버리지 관계도
-. 다중조건이 커버리지가 가장 크고 변경조건/결정 커버리지, 조건/결정 커버리지, 결정 커버리지, 조건 커버리지, 구문 커버리지 순으로 포함관계가 형성됨
-. 코드 커버리지의 종류는 일반적으로 문장 커버리지(statement coverage), 분기 커버리지(branch coverage), MC/DC 커버리지(Modified Condifion/Decision Coverage)를 많이 사용함
나. 소스코드 커버리지 종류
구분 | 종류 | 설명 |
단일 커버리지 | 구문 커버리지 | -. 모든 명령문을 적어도 한번 수행하는 테스트 케이스 -. 가장 약한 형태의 커버리지 기준 |
결정 커버리지 | -. 전체 결정문이 적어도 한번은 참과 거짓의 결과를 수행하는 테스트 케이스 -. Branch 커버리지 같은 의미구문 커버리지 만족 |
|
조건 커버리지 | -. 명령문 내의 각 개별 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 테스트 케이스 -. 결정 커버리지 보다 강함 |
|
복합 커버리지 | 조건/결정 커버리지 | -. 전체 결정문 뿐만 아니라 개별 조건식도 참 한번, 거짓 한번 결과가 되도록 수행하는 테스트 케이스 -. 결정 및 조건 커버리지 향상 |
변경 조건/결정 커버리지 | -. 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 결정문에 독립적으로 영향을 주도록 하는 테스트 케이스 -. 조건/결정 커버리지의 문제점 해결 -. 논리식의 문제점 발생시 해결 난해 |
|
다중 조건 커버리지 | -. 모든 개별식 조건의 모든 조합을 고려한 커버리지 -. 커버리지 100% 달성 |
|
경로 커버리지 | 모든 경로에 보장하는 테스트 케이스 -. 상호 독립적인 경로를 모두 수행, 잠재적 오류 발견 |