구문, 결정, 조건, 조건/결정, 변경조건/결정, 다중조건, 경로 |
I. 소스코드에 대한 테스트 수행 범위 지표, 테스트 커버리지의 개요
가. 소스코드 커버리지(Source Code Coverage)의 정의
- 테스트의 정확성을 판단하는 척도로 테스트 대상인 소스 코드 중 테스트를 통해 실행된 코드의 비율 지표
나. 소스코드 커버리지의 필요성
- SW 개발비의 80%가 결함 보완 과정에서 소요
- SW 결함으로 매년 GDP 의 0.6% 손실 발생 (미국 기준)
- 결함의 절반이상은 개발 중 발견되지 않음
II. 소스코드 커버리지의 관계도 및 종류
가. 소스코드 커버리지의 관계도
나. 소스코드 커버리지의 종류
종류 |
내용 |
사례 |
구문 커버리지 (Statement Coverage) |
- 프로그램을 구성하는 모든 구문들이 최소한 한번은 실행될 수 있는 입력 데이터를 데스트 데이터로 선정 - 프로그램 내 모든 구문의 테스트를 보장 |
- 소스코드 If(a>0 or b>0) call join - 테스트케이스 a = 3, b = 4 |
결정 커버리지 (Decision Coverage) |
- 프로그램 내의 전체 결정문이 적어도 한번은 참과 거짓의 결과를 수행하는 테스트 케이스 생성 - 모든 분기문을 테스트 하는 방법 |
|
조건 커버리지 (Condition Coverage) |
- 결정 명령문 내의 각 조건이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 테스트 케이스 - 모든 조건을 커버하는 방법 |
|
조건/결정 커버리지 (Condition/Decision Coverage) |
- 전체 조건식 뿐만 아니라 개별 조건식도 참 한번, 거짓 한번 결과가 되도록 수행하는 테스트 케이스 |
|
변경조건/결정 커버리지 (MC/DC) |
- 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 하는 테스트 케이스 - 변수 개수 + 1개의 테스트 진행 |
|
다중조건/결정 커버리지(Multiple Condition Coverage) |
- 결정 포인트 내에 있는 모든 개별식 조건의 모든 조합을 고려한 커버리지 |
|
경로 커버리지 (Path Coverage) |
- 실행 경로를 수행하도록 테스트 케이스를 설계하는 테스트 설계 기법 |
상호 독립적인 경로를 모두 수행, 잠재적 오류 발견 |
III. 테스트 커버리지 포함관계
- (A or B)에서 (A or B)를 전체 결정문, A와 B를 개인 결정문
- 전체 결정문 참/거짓 1회 (결정 커버리지) / 개인 결정문 참/거짓 1회 (조건 커버리지)
- 전체 결정문, 개인 결정문 참/거짓 1회 (조건/결정 커버리지)
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
탐색적 테스팅 (0) | 2021.02.03 |
---|---|
경험 기반 테스트 (0) | 2021.02.03 |
리스크 기반 테스트 (0) | 2021.02.03 |
회귀테스트(Regression Test) (0) | 2021.02.02 |
구조기반 테스트(Structure-based Test) (0) | 2021.02.02 |
명세기반 테스트(Specification-based Test) (0) | 2021.02.02 |
테스트 오라클(Test Oracle) (0) | 2021.02.02 |
테스트 베드(Test Bed) (0) | 2021.02.02 |
댓글