🧩 화이트박스 테스트란?
- 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트.
- 코드분석과 프로그램 구조에 대한 지식 바탕으로 문제 발생 가능성이 있는 모듈 내부 테스트 방법
- 소스 코드의 모든 문장을 한 번 이상 수행함으로써 진행
- 산출물의 기능별로 적절한 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.
- 구조 기반 테스트, 코드 기반 테스트, 로직 기반 테스트, 글래스 박스 테스라고 부른다.
✅ 화이트박스 테스트 주요 유형
[구결조 조변다 기제데루]
유형 | 키워드 | 요약개념설명 | 비유 | 예시 |
*구문(=문장) 커버리지 (Statemanet Coverage) |
모든 문장 실행 | 프로그램의 **모든 코드 라인(문장)**이 최소 1번은 실행되었는지 확인 | 책을 한 줄도 빼먹지 않고 읽었는지 확인하는 것 | if, else, return 등 모든 라인을 실행해 봤는지 확인 |
*결정(=분기,선택) 커버리지 (Decision, Branch Coverage) |
모든 조건 분기 실행 | if, switch 같은 조건 분기문의 모든 참/거짓 경로를 실행했는지 확인 | 갈림길에서 모든 방향으로 가봤는지 확인하는 것 | if문이 참일 때, 거짓일 때 모두 테스트 |
*조건 커버리지 (Condition Coverage) |
조건 안의 각 항목이 참/거짓 모두 실행 | 복합 조건(if A && B)의 **각 부분 조건(A, B)**이 참/거짓으로 실행되는지 | AND 조건 내 각각을 개별로 확인하는 시험 | A: 참/거짓, B: 참/거짓 → 각 케이스를 개별 확인 |
조건/결정 커버리지 (Condition/Decision Coverage) |
조건 & 결과 동시 확인 | 조건 항목들과 최종 결과가 모두 참/거짓 조합으로 실행되는지 확인 | 분기점과 각각의 이유를 동시에 체크하는 것 | A&&B 조건을 A, B 별로 확인하고 전체 판단 결과도 본다 |
(Multi Condition Coverage) |
모든 조건 조합 실행 | AND/OR 등 여러 조건들의 모든 가능한 조합을 테스트 | 신호등의 모든 색 조합을 다 눌러보는 것 | A, B, C가 있을 때 2ⁿ(8개)의 조합을 테스트 |
*기본 경로(=경로) 커버리지 (Base Path Coverage) |
모든 경로 테스트 | "" 맥케이브의 순환복잡도 계산 할 줄 알아야함."" | 간선 수 - 노드 수 + 2 조건 분기문 +1 |
|
제어 흐름 테스트 (Control Flow Testing) |
프로그램 제어구조를 그래프화하여 내부 조직 테스트 |
변 : 변경조건-결정 커버리지
데 : 데이터 흐름 테스트
루 : 루프테스트
📌 한눈에 보기
테스트 유형 | 검사 | 비유 |
구문(문장) 커버리지 | 코드 한 줄 한 줄 | 책을 다 읽었는지 |
결정(분기) 커버리지 | 조건문의 분기 방향 | 갈림길 양쪽 가봤는지 |
조건 커버리지 | 조건 안 각 항목 | 조건문 안의 A, B 따로 검사 |
조건/결정 커버리지 | 조건 + 결과 | 이유도, 결과도 다 체크 |
다중 조건 커버리지 | 조건 조합 모두 | A, B, C 모든 경우 조합 |
🧠 빠른 암기법
🔸 두음문자 암기: 👉 구결조 조변다 기제데루
(구문(문장) → 결정(분기) → 조건 → 조/결 → 변화조건/결정 → 다중 → 기본경로 → 제어흐름 → 데이터흐름 → 루프)
🎓 암기 퀴즈용 정리
문장 | 정답 |
프로그램의 모든 코드 줄이 최소 한 번은 실행되었는지 확인하는 테스트는? | 구문 커버리지 |
조건식 전체가 참/거짓이 되도록 분기만 확인하는 테스트는? | 결정 커버리지 |
조건식 안의 각 항목이 참/거짓이 되도록 검사하는 테스트는? | 조건 커버리지 |
조건의 개별 항목과 전체 결과를 동시에 검사하는 테스트는? | 조건/결정 커버리지 |
A, B, C 등 조건의 모든 조합을 테스트하는 방식은? | 다중 조건 커버리지 |
모든 루프와 논리 경로를 따라가며 테스트하는 방식은? | 기본 경로 커버리지 |
프로그램의 흐름도(분기, 반복 등)를 따라가며 확인하는 테스트는? | 제어 흐름 테스트 |