블랙박스·화이트박스 테스트 기법
Black-box and White-box Testing Techniques
블랙박스 테스트는 내부 구조를 보지 않고 명세(요구사항)를 기반으로 입력·출력을 검증하는 명세 기반 기법이며, 화이트박스 테스트는 소스코드의 내부 논리 구조를 기반으로 커버리지를 충족하도록 테스트 케이스를 설계하는 구조 기반 기법이다.
핵심 키워드
명세 기반 테스트(Specification-based)구조 기반 테스트(Structure-based)동등 분할(Equivalence Partitioning)경계값 분석(Boundary Value Analysis)결정 테이블(Decision Table)상태 전이(State Transition)구문·결정·조건 커버리지MC/DC기본 경로 테스트(McCabe 순환 복잡도)
암기: 블랙박스 "동경결상원페": 동등분할·경계값·결정테이블·상태전이·원인결과그래프·페어와이즈
구성도
정리
1. 개요
- 필요성: 모든 입력·경로의 완전 테스트는 불가능 → 체계적 기법으로 최소 케이스로 최대 결함 검출
- 분류: 명세 기반(블랙박스), 구조 기반(화이트박스), 경험 기반(오류 추정, 탐색적 테스트)
- 관련 표준: ISO/IEC/IEEE 29119(테스트 기법은 Part 4)
2. 구성/원리
① 블랙박스(명세 기반) 기법
| 기법 | 원리 |
|---|---|
| 동등 분할 | 입력 도메인을 동일 동작 클래스로 나눠 대표값 선정 |
| 경계값 분석 | 경계 및 경계 ±1 값에 결함 집중 특성 활용 |
| 결정 테이블 | 조건 조합과 행동(Action)을 표로 정리 |
| 원인-결과 그래프 | 입력(원인)과 출력(결과) 논리 관계를 그래프화 후 결정 테이블 도출 |
| 상태 전이 | 상태·이벤트·전이를 모델링하여 유효/무효 전이 검증 |
| 페어와이즈(조합) | 모든 2개 인자 조합을 최소 케이스로 커버 |
| 유스케이스 | 사용자 시나리오(주/대안 흐름) 기반 |
② 화이트박스(구조 기반) 기법 – 커버리지
| 커버리지 | 기준 |
|---|---|
| 구문(문장) | 모든 문장을 1회 이상 실행 |
| 결정(분기) | 각 결정의 참/거짓을 1회 이상 |
| 조건 | 각 개별 조건의 참/거짓을 1회 이상 |
| 조건/결정 | 조건 + 결정 커버리지 동시 만족 |
| MC/DC | 각 개별 조건이 결정 결과에 독립적으로 영향을 줌을 확인 |
| 다중 조건 | 모든 조건 조합 실행 |
| 기본 경로 | 순환 복잡도 V(G) = E − N + 2 만큼의 독립 경로 |
| 데이터 흐름 | 변수 정의(def)-사용(use) 경로 |
3. 비교
| 항목 | 블랙박스 | 화이트박스 |
|---|---|---|
| 기반 | 요구사항·명세 | 소스코드·내부 로직 |
| 수행 주체 | 테스터, 사용자 | 개발자 |
| 주요 단계 | 통합·시스템·인수 테스트 | 단위 테스트 |
| 검출 결함 | 누락 기능, 인터페이스·성능 오류 | 논리 오류, 미실행 코드 |
| 한계 | 내부 경로 미검증 | 명세 누락 기능 검출 불가 |
4. 고려사항·최신 동향
- 고려사항
- 두 기법은 상호 보완 → 명세 기반으로 설계 후 커버리지로 충분성 측정
- 커버리지 강도: 다중 조건 > MC/DC > 조건/결정 > 결정 > 구문 (조건 커버리지는 결정 커버리지를 보장하지 않음)
- 안전 중요 SW: 항공(DO-178C 최고 등급)은 MC/DC, 자동차(ISO 26262)는 ASIL에 따른 커버리지 요구
- 최신 동향
- CI 파이프라인 내 자동화 테스트·커버리지 게이트
- 뮤테이션 테스트로 테스트 케이스 품질 평가, 퍼징 확산
- AI 기반 테스트 케이스 자동 생성
함께 볼 토픽
v1 · 2026. 10. 19. 갱신 · 틀린 내용을 발견하면 알려 주세요.