📘 정처기 공부
🔴 Tier 15 / 12

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)(아직 없는 상위 모듈 대체). 혼동 주의 — 짝을 정확히 외울 것.