Computer Science

Code Coverage

Code Coverage?

  • 코드 커버리지
    소스코드를 기반으로 수행하는 화이트 박스 테스트를 통해 측정한다.

블랙박스 테스트
소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 동작을 검사하는 방식
올바른 입력과 올바르지 않은 입력을 입력해 올바른 출력이 나오는지 테스트
사용자 관점의 테스트 방법

화이트박스 테스트
응용 프로그램의 내부 구조와 동작을 검사하는 테스트 방식
내부 소스 코드를 테스트하는 기법
개발자 관점의 단위 테스트 방법

  • 측정 기준
  1. 구문 (라인 커버리지): 코드 한 줄이 한 번이상 실행된다면 충족
  2. 조건: 모든 조건식의 내부 조건이 true/false를 가지게 되면 충족
    조건 커버리지를 기준으로 테스트 할 경우 구문 커버리지와 결정 커버리지를 만족하지 못하는 경우가 존재할 수 있다.
  3. 결정 (브랜치 커버리지): 모든 조건식이 true/false를 가지게 되면 충족

셋 중 가장 많이 사용되는 것은 라인 커버리지!
why? 조건 커버리지나 브랜치 커버리지의 경우 로직의 시나리오에 대한 테스트에 더 가깝다. 또한 조건문이 존재하지 않는 코드의 경우에는 조건/결정 커버리지의 대상에서 아예 제외되어버린다.

요약하자면, 라인 커버리지를 만족하면 모든 시나리오를 테스트한다는 보장은 할 수 없지만, 어떤 코드가 실행될 때 해당 코드(라인)가 문제없다는 보장을 할 수 있다.