Test Coverage

권혁진·2022년 8월 25일
0

테스트 종류와 기법

큰 틀로는 동적 테스팅과 정적 테스팅이 있는데 우리가 확인하고 학습 할 내용은 동적 테스팅의 구조기반 테스트이다.

구조기반 테스트는 화이트박스 기반 테스팅을 말하는데 코드의 구조를 보고 테스트를 설계하는것을 말한다.

구조기반 테스트의 종류

  • 구문기반 커버리지

  • 결정 커버리지

  • 조건 커버리지

  • mC/Dc

  • 경로커버리지




구조기반 테스트를 간단하게 다이어그램으로 정의 해보면

이런 형태의 다이어그램으로 산출 할 수 있다.

하나씩 간단하게 살펴본다.

구문 커버리지(Statement)

구문 커버리지란 시험 대상의 전체 구문 중에 테스트에 의해 실행된 구문을 측정하는 것이다.

구문 커버리지(%) = (수행된 구문의 수 / 전체 구문의 수) x 100% 로 정의 할 수 있다.

JACOCO를 사용하여 코드 커버리지를 확인하여 전체 프로젝트의 테스트 현황을 알아볼 수 있다.

결정 커버리지(Decision Coverage)

  • Decision Coverage는 각 조건문이 True or False가 되는 조건이 모두 테스트되는 정도를 측정하는 척도이다.

  • 결정 포인트(Decision Points)내의 전체 조건식이 true 또는 false의 모든 값을 갖고 모든 분기로 흐르면 달성된다.

  • 결정커버리지는 구문커버리지 달성을 보장한다.

  • 테스트 깊이가 깊을 수록 제품의 커버리지는 높아지나 테스트 케이스 수가 기하 급수적으로 많아져 비용, 시간, 리소스 등이 많이 소요된다.

글만 봐서는 잘 이해가 안될 수 있으니 표를 보고 결정 커버리지가 정확히 어떤건지 살펴보자.

그림을 보면 If문 안에 조건이 2가지가 있는데 편하게 각각 A 와 B 조건이라고 칭한다. 결정이란 A와 B의 각각의 상태를 조합해서 나오는것이다. ex.)조건 A와 B가 각각 True, False라면 결정은 False가 되는것이다.

이 때 특정 범위의 테스트 케이스를 입력값으로 집어넣어서 결정문의 상태를 한번은 True가 되도록, 다른 한번은 False가 되도록 한다. 이러한 TC의 집합을 결정커버리지 라고 한다.

조건 커버리지(Condition Coverage)

  • Condition Coverage는 결정포인트 내에 있는 개개의 개별조건식이 True 와 False의 모든 값을 갖게 되는 경우를 말한다.

조건/결정 커버리지(Condition/Decision Coverage)

  • 위에 조건 커버리지, 결정 커버리지를 잘 이해 했다면 굉장히 쉽다. 조건 커버리지를 만족함과 동시에 결정커버리지도 만족할 수 있는 TC Coverage를 말한다.

    변경 조건/결정 커버리지(MC/DC)

profile
성장하는 개발자

0개의 댓글