Code-Coverage
1 Code Coverage
In computer science, test coverage is a measure used to describe the degree to which the source code of a program is executed when a particular test suite runs. A program with high test coverage, measured as a percentage, has had more of its source code executed during testing, which suggests it has a lower chance of containing undetected software bugs compared to a program with low test coverage - wikipedia
- 코드 커버리지란 테스트 스위트가 소스 코드를 얼마나 실행하는지를 백분율로 나타낸 것
2 Code Coverage 측정 기준
- 코드 커버리지는 소스 코드를 기반으로 수행하는 화이트 박스 테스트를 통해 측정합니다.
- 구문(Statement), 조건(Condition), 결정(Decision) 3가지 측정 기준을 가지고 화이트 박스 테스트를 통해 커버리지를 나타냄
블랙 박스 테스트(Black-box test)
- 소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 동작을 검사하는 방식이다.
- 올바른 입력과 올바르지 않은 입력을 입력하여 올바른 출력이 나오는지 테스트하는 기법이다.
- 사용자 관점의 테스트 방법이라 볼 수 있다.
화이트 박스 테스트(White-box test)
- 응용 프로그램의 내부 구조와 동작을 검사하는 테스트 방식이다.
- 소프트웨어 내부 소스 코드를 테스트하는 기법이다.
- 개발자 관점의 단위 테스트 방법이라 볼 수 있다.
2.1 구문(Statement)
- 구문은 라인 커버리지, 코드 커버리지라고 부른다
- 코드 한줄이 한 번이상 실행되면 충족된다
코드 커버리지 = 실행 코드 라인 수 / 전체 라인 수
2.2 조건(Condition)
- 모든 조건식의 내부 조건이 true/false를 가지게 되면 총족된다
- 내부 조건이란 조건식 내부에 있는 각각의 조건이다
if (x > 0 && y < 0)조건식이 있을 때- 내부 조건은
x > 0와y < 0두 가지다
- 내부 조건은
- 조건을 기준으로 하면 구문, 과 결정 커버리지를 만족 못하는 경우가 존재할 수 있다
2.3 결정(Decision)
- 브랜치 커버리지, 분기 커버리지라고 부른다
- 브랜치 커버리지 지표는 코드 라인 수를 사용하는 대신 if 문과 swith 문과 같은 제어 구조에 중점을 둔다
- 모든 조건식이 true/false를 가지게 되면 충족된다
브랜치 커버리지 = 통과 분기 / 전체 분기 수
2.4 어떤 기준을 선택할까?
- 세 가지 코드 커버리지 중에서 구문 커버리지가 가장 대표적으로 많이 사용되고 있다
- 라인 커버리지를 사용하면(만족하면) 모든 시나리오를 테스트한다는 보장은 할 수 없지만, 어떤 코드가 실행되더라도 해당 코드는 문제가 없다는 보장은 할 수 있습니다.