" async="async">
', {
cookie_domain: 'auto',
cookie_flags: 'max-age=0;domain=.tistory.com',
cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds
});
통합 테스트 (Integration Test) 란? — 제이크서 개발 블로그
통합 테스트 (Integration testing) 란?
- 애플리케이션의 여러 컴포넌트 혹은 모듈간의 상호작용과 조정을 검증하는데 중점을 둔 소프트웨어 테스팅 유형이다.
- 유닛 테스트에서 테스트된 유닛들이 결합되었을 때 올바르게 작동되는지를 확인한다.
- 데이터 통신, 데이터 공유, 컴포넌트간 전반적 제어 흐름에 관련된 문제를 식별하는데 도움이 된다.
- 분산 시스템, Micro Service Architecture (MSA), 타사 API 등에 의존하는 서비스 애플리케이션을 테스트할 때 중요하다.
- 개발 프로세스에서 보통 단위 테스트 후 시스템 테스트 전에 수행된다.
- 자동화 가능한 테스트 영역이다.
통합 테스트의 주요 관점
- 컴포넌트 상호작용: 예상대로 통신하고 데이터를 공유하는지 확인한다.
- API 및 서비스 유효성 검사: 외부 API 혹은 타사 컴포넌트가 애플리케이션 컨텍스트 내부에서 올바르게 상호작용하는지 확인한다.
- 데이터 일관성: 여러 컴포넌트, 외부 서비스가 시스템 전체에서 데이터를 일관적으로 처리하는지 확인한다.
- 기능 흐름: 전반적인 기능 흐름이 End-To-End 에서 의도한대로 작동하는지 확인한다.
통합 테스트 접근 방식
빅뱅 (Big bang)
- 모든 구성요소와 모듈을 한번에 통합하고 전체 시스템을 테스트한다.
- 시간이 많이 걸리고 어려울 수 있다는 단점이 있다.
점진적 (Incremental)
- 구성 요소를 하향식 혹은 상향식 혹은 이 두가지를 합쳐 (샌드위치) 점진적으로 테스트한다.
- 테스트 범위가 더 좁아져 테스트하기 수월해진다.
정리
- 통합 테스트는 다양한 컴포넌트 혹은 모듈이 결합되었을 때 올바르게 작동하는지 확인한다.
- 단위 테스트와 시스템 테스트를 보완하여 소프트웨어의 전반적인 품질과 안정성을 보장하는데 도움이 되는 포괄적 테스트 전략이다.