5 소프트웨어 테스트
화이트박스(구조 기반) vs 블랙박스(명세 기반), 통합 테스트 방식.
화이트박스 테스트 (White-box) — 구조 기반
| 기법 | 설명 |
|---|---|
| 문장 커버리지 | 모든 실행문(구문)을 최소 1번 수행. |
| 분기/결정 커버리지 | 모든 분기의 참·거짓 결정을 최소 1번씩 수행. |
| 조건 커버리지 | 각 개별 조건의 참·거짓을 최소 1번씩. |
| 분기/조건 커버리지 | 결정 + 조건을 모두 만족. |
| 변형 조건/결정(MC/DC) | 각 조건이 독립적으로 결정에 영향을 주는 경우를 검증. |
| 다중 조건 커버리지 | 조건들의 모든 조합을 검증. |
기초 경로 검사 McCabe 순환 복잡도:
V(G) = E − N + 2 (E=간선 수, N=노드 수). 독립 경로의 개수를 구하는 대표 공식.블랙박스 테스트 (Black-box) — 명세 기반
| 기법 | 설명 |
|---|---|
| 동등 분할(동치 분할) | 입력을 유효·무효 그룹으로 나눠 대표값 테스트. |
| 경계값 분석 | 구간의 경계(최소·최대·경계±1)에서 오류가 잦음을 이용. |
| 원인-효과 그래프 | 입력(원인)과 출력(효과)의 논리 관계를 그래프로 분석. |
| 오류 예측 | 경험·직관으로 오류가 있을 만한 부분을 추정해 테스트. |
| 비교 검사 | 동일 입력을 여러 버전에 넣어 결과 비교. |
| 결정 표(Decision Table) | 조건·행동의 조합을 표로 정리해 검증. |
테스트 레벨 (V-모델)
암기팁 단위 → 통합 → 시스템 → 인수 순으로 상향 진행. (단위=모듈, 인수=사용자 관점 최종 확인.)
통합 테스트 방식
| 방식 | 설명 | 보조 모듈 |
|---|---|---|
| 하향식(Top-down) | 상위 모듈부터 하위로 통합. | 스텁(Stub) — 하위 모듈 대체 |
| 상향식(Bottom-up) | 하위 모듈부터 상위로 통합. | 드라이버(Driver) — 상위 모듈 대체 |
| 빅뱅(Big-bang) | 모든 모듈을 한꺼번에 통합 후 테스트. | — |
| 샌드위치(Sandwich) | 하향식 + 상향식을 혼합. | 스텁 + 드라이버 |
함정주의 스텁 vs 드라이버 혼동 주의! 하향식 = 스텁(Stub), 상향식 = 드라이버(Driver). 방향과 짝을 정확히 외울 것.
테스트 오라클 (Test Oracle)
| 종류 | 설명 |
|---|---|
| 참(True) 오라클 | 모든 입력에 대해 기대 결과를 제공. |
| 샘플링(Sampling) 오라클 | 일부 대표 입력에 대해서만 기대 결과 제공. |
| 휴리스틱(Heuristic) 오라클 | 일부는 참값, 나머지는 추정(경험)값으로 처리. |
| 일관성 검사(Consistent) 오라클 | 변경 전후 실행 결과가 동일한지 확인. |
✅ 자가점검
Q1. 하향식·상향식 통합 테스트에서 각각 사용하는 보조 모듈은?
하향식(Top-down) = 스텁(Stub)(아직 없는 하위 모듈 대체), 상향식(Bottom-up) = 드라이버(Driver)(아직 없는 상위 모듈 대체). 혼동 주의 — 짝을 정확히 외울 것.