📘 통합 테스트 (Integration Test)
📌 개요
통합 테스트는 개별 컴포넌트(모듈)들이 함께 동작하는지 검증하는 테스트이다.
단위 테스트가 개별 모듈에 초점을 맞췄다면,
통합 테스트는 모듈 간 상호작용과 데이터 흐름을 확인하는 단계이다.
📌 통합 테스트의 호출 방식
- 직접 호출 (Direct Call)
- 인터페이스/API 호출
📌 통합 테스트 목적
- 모듈 간 데이터 전달과 제어 흐름 검증
- 인터페이스와 상호작용의 올바른 동작 확인
- 결합 시 발생하는 결함 조기 발견
📌 상호작용에 초점을 둔 통합 테스트
- 모듈 간 메시지/데이터 전달 검증
- 주로 인터페이스와 통신에 대한 테스트
📌 기능에 초점을 둔 통합 테스트
- 요구 기능을 중심으로 모듈 통합 후 전체 동작 검증
- 시스템 관점의 테스트에 가까움
📌 점진적 통합 (Incremental Integration)
- 모든 모듈을 한 번에 통합하지 않고, 단계별로 통합
- 장점: 결함 위치 파악 용이, 문제 발생 시 영향 범위 제한
📌 점진적 통합 순서
- 상향식 통합 (Bottom-up)
- 하향식 통합 (Top-down)
✔ 상향식 통합 테스트 (Bottom-up)
- 단위 모듈 → 상위 모듈 순서로 통합
- 하위 모듈부터 검증 후 상위 모듈과 통합
- 장점: 하위 기능 안정화 후 상위 통합 가능
- 단점: 상위 모듈 테스트 시 스텁 필요
✔ 하향식 통합 테스트 (Top-down)
- 상위 모듈 → 하위 모듈 순서로 통합
- 상위 모듈부터 검증 후 하위 모듈과 통합
- 장점: 주요 기능 먼저 검증 가능
- 단점: 하위 모듈 구현 미완 시 드라이버 필요
✔ 샌드위치 통합 테스트 (Sandwich / Hybrid)
- 상향식 + 하향식 통합을 결합한 전략
- 상위와 하위 모듈 동시에 통합
- 장점: 장점만 결합, 결함 발견 속도 향상
🧠 핵심 정리
- 통합 테스트 = 모듈 간 상호작용/데이터 흐름 검증
- 점진적 통합 = 단계별 통합으로 결함 위치 파악 용이
- 상향식 / 하향식 / 샌드위치 = 통합 순서 전략
통합 테스트는 단위 테스트로 발견하지 못한
모듈 간 결합 문제를 조기에 검증하는 중요한 단계이다.