본문 바로가기
IT기술노트/소프트웨어공학

소스코드 커버리지(Source Code Coverage)

by 비트코기 2021. 2. 2.

구문, 결정, 조건, 조건/결정, 변경조건/결정, 다중조건, 경로


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)를 전체 결정문, AB를 개인 결정문

- 전체 결정문 참/거짓 1(결정 커버리지) / 개인 결정문 참/거짓 1(조건 커버리지)

- 전체 결정문, 개인 결정문 참/거짓 1(조건/결정 커버리지)

 

 

반응형

댓글