| 개발 단계 | 테스트 레벨 | 테스트 관점 | 설명 |
|---|---|---|---|
| 코딩 | 단위 테스트 (Unit Test) | 개발자 (White Box) | • 모듈, 클래스, 함수 등 가장 작은 코드 단위를 테스트. • 주로 개발자가 직접 수행. |
| 설계 | 통합 테스트 (Integration Test) | 개발자/테스터 (Gray Box) | • 단위 테스트를 통과한 모듈들을 결합하여, 모듈 간의 인터페이스와 상호작용이 올바른지 테스트. |
| 요구분석 | 시스템 테스트 (System Test) | 테스터 (Black Box) | • 개발된 소프트웨어가 전체 시스템으로서 요구사항을 만족하는지, 기능적/비기능적 측면을 모두 테스트. |
| - | 인수 테스트 (Acceptance Test) | 사용자/고객 (Black Box) | • 사용자가 직접 소프트웨어를 사용해보며, 실제 운영 환경에서 요구사항대로 동작하는지 최종 검수하는 테스트. |
| 구분 | 화이트박스 테스트 (White Box Test) | 블랙박스 테스트 (Black Box Test) |
|---|---|---|
| 관점 | 내부 구조와 로직 중심 | 기능과 명세 중심 |
| 대상 | 소스 코드의 모든 경로(분기, 조건) | 요구사항 명세서 |
| 목표 | 코드의 논리적 경로를 테스트하여 커버리지를 높임 | 요구된 기능이 정확하게 동작하는지 검증 |
| 종류 | • 구문 커버리지: 모든 문장을 한 번 이상 실행. • 결정(분기) 커버리지: 모든 조건문의 참/거짓을 한 번 이상 실행. | • 동등 분할: 유사한 입력값들을 하나의 그룹으로 묶어 테스트. • 경계값 분석: 경계값(최소, 최대, 바로 위/아래)에서 오류가 발생할 확률이 높다는 점을 이용. |
| 비유 | 유리 상자 내부를 들여다보며 테스트 | 검은 상자의 내용물은 모른 채, 입력과 출력만 보고 테스트 |