코드를 대상으로 한 화이트 박스 테스트 기법 중 간단하면서 널리 사용하는 두 가지 방법
- 구문 테스팅
- 분기 테스팅
안전이나 미션에 치명적이거나 무결성이 높아야 하는 환경보다 철저한 코드 커버리지를 달성하기 위해 사용하는 보다 엄격한 화이트 박스 기법이 사용된다.
상위 테스트 레벨(API 테스트)에 사용하거나, 코드와 관련 없는 커버리지(신경망 테스트에서 뉴런 커버리지)를 사용하는 화이트박스 테스트 기법도 있다.
구문 테스팅과 구문 커버리지
구문 테스팅에서 커버리지 항목은 실행 가능한 구문이 된다.
목적
코드 구문을 실행하는 테스트 케이스를 설계해서 허용할 수 있는 수준의 커버리지를 달성하는 것이다.
커버리지는 테스트 케이스가 실행한 구문 수를 코드의 실행 가능한 구문 총수로 나누어 계산하며 백분율로 표시한다.
100% 구문 커버리지를 달성했을 경우
- 코드의 모든 실행 가능한 구문을 적어도 한 번은 실행했다는 것이 보장된다.
- 이는 결함이 있는 모든 구문도 실행해 결함 존재를 식별할 수도 있는 장애가 나타났어야 함을 의미한다고 여길 수 있다.
- 테스트 케이스로 구문을 실행했다고 해서 결함이 반드시 식별되는 것은 아니다.
- ex) 데이터에 종속적인 결함(분모를 0으로 설정한 경우에만 실패하는 나눗셈)은 식별하지 못할 수 있다.
- 100% 구문 커버리지가 모든 결정 논리를 테스트했다고 보장하는 것도 아니다.
- ex) 코드의 모든 분기가 실행되지 않았을 수도 있다.
분기 테스팅과 커버리지
분기
- 제어 흐름 그래프에서 두 노드(nodes) 간 제어의 이동으로 테스트 대상에서 소스코드 구문의 실행 가능 순서를 보여준다.
- 제어의 이동은 조건 없이(직선적 코드(straight-line code)) 또는 조건에 따라 이루어질 수 있다.(결정문 결과)
분기 테스팅
- 커버리지 항목은 분기이다.
- 목적은 코드의 분기를 실행하는 테스트 케이스를 설계해서 허용할 수 있는 수준의 커버리지를 달성하는 것이다.
- 커버리지는 테스트 케이스가 실행한 분기 수를 분기 총수로 나눈 값으로 측정하며 백분율로 표시한다.
100% 분기 커버리지 달성 시
- 코드의 모든 분기(무조건 및 조건 분기)를 테스트 케이스로 실행하게 된다.
- 조건 분기는 일반적으로 "if... then" 결정문의 참 또는 거짓 결과, 스위치/케이스 구문의 결과, 또는 루프(loop)에서 종료 또는 계속의 여부의 결정에 부합한다.
- 테스트 케이스로 분기를 실행한다고 해서 반드시 결함을 식별할 수 있는 것은 아니다.
- ex) 코드의 특정 경로를 실행하는 결함은 감지하지 못할 수 있다.
분기 커버리지는 구문 커버리지를 포함한다.
즉, 100% 분기 커버리지를 달성하는 테스트 케이스의 집합은 100% 구문 커버리지도 달성하지만, 그 반대의 경우는 성립하지 않는다.
화이트박스 테스팅의 가치
모든 화이트박스 테스트 기법이 가진 근본적인 강점
- 테스트 중 전체 소프트웨어 구현을 고려하므로 소프트웨어 명세가 모호하거나 뒤떨어지고 불완전한 경우에도 결함을 쉽게 감지할 수 있다는 점이다.
- 반면에 소프트웨어가 하나 이상의 요구사항을 구현하지 않는 경우, 화이트박스 테스팅으로 그것이 누락됐다는 결함을 식별하지 못할 수 있다는 단점이 있다.
- 화이트박스 테스트 기법은 정적 테스팅(코드 드라이 런 중)에 사용할 수 있다.
- 아직 실행할 준비가 되지 않은 코드 외에도 슈도 코드(pseudocode) 또는 제어 흐름 그래프로 모델링할 수 있는 기타 상위 수준 및 하향식(top-down) 논리를 검토하는 데 적합하다.
블랙박스 테스팅만 수행해서는 실제 코드 커버리지 측정치를 얻을 수 없다.
화이트박스 커버리지 측정치는 객관적인 커버리지 측정값을 제공하고 이 커버리지를 높이기 위해 추가 테스트 생성을 위한 정보도 함께 제공함으로써 코드 신뢰도를 높일 수 있다.
Reference
https://www.kstqb.org/sw/sw3.asp
KSTQB
ISTQB® SW 테스팅 자격시험 --> ISTQB ® Certified Tester Foundation Level (CTFL) --> ISTQB® Certified Tester Foundation Level (CTFL) 자격명 (Name) ISTQB® Certified Tester Foundation Level (CTFL) 인증기관 (Certification Body) International S
www.kstqb.org
'QA > ISTQB' 카테고리의 다른 글
| ISTQB - CTFL [테스트 분석과 설계] 협업 기반 테스트 접근법 정리 (0) | 2026.07.16 |
|---|---|
| ISTQB - CTFL [테스트 분석과 설계] 경험 기반 테스트 기법 정리 (0) | 2026.07.16 |
| ISTQB - CTFL [테스트 분석과 설계] 테스트 기법 개요, 블랙박스 테스트 기법 정리 (0) | 2026.07.14 |
| ISTQB - CTFL [정적 테스팅] 피드백과 리뷰 프로세스 정리 (0) | 2026.07.13 |
| ISTQB - CTFL [정적 테스팅] 정적 테스팅의 기초 정리 (0) | 2026.07.13 |