통합 테스트 (Integration testing) 란?
- 애플리케이션의 여러 컴포넌트 혹은 모듈간의 상호작용과 조정을 검증하는데 중점을 둔 소프트웨어 테스팅 유형이다.
- 유닛 테스트에서 테스트된 유닛들이 결합되었을 때 올바르게 작동되는지를 확인한다.
- 데이터 통신, 데이터 공유, 컴포넌트간 전반적 제어 흐름에 관련된 문제를 식별하는데 도움이 된다.
- 분산 시스템, Micro Service Architecture (MSA), 타사 API 등에 의존하는 서비스 애플리케이션을 테스트할 때 중요하다.
- 개발 프로세스에서 보통 단위 테스트 후 시스템 테스트 전에 수행된다.
- 자동화 가능한 테스트 영역이다.
통합 테스트의 주요 관점
- 컴포넌트 상호작용: 예상대로 통신하고 데이터를 공유하는지 확인한다.
- API 및 서비스 유효성 검사: 외부 API 혹은 타사 컴포넌트가 애플리케이션 컨텍스트 내부에서 올바르게 상호작용하는지 확인한다.
- 데이터 일관성: 여러 컴포넌트, 외부 서비스가 시스템 전체에서 데이터를 일관적으로 처리하는지 확인한다.
- 기능 흐름: 전반적인 기능 흐름이 End-To-End 에서 의도한대로 작동하는지 확인한다.
통합 테스트 접근 방식
빅뱅 (Big bang)
- 모든 구성요소와 모듈을 한번에 통합하고 전체 시스템을 테스트한다.
- 시간이 많이 걸리고 어려울 수 있다는 단점이 있다.
점진적 (Incremental)
- 구성 요소를 하향식 혹은 상향식 혹은 이 두가지를 합쳐 (샌드위치) 점진적으로 테스트한다.
- 테스트 범위가 더 좁아져 테스트하기 수월해진다.
정리
- 통합 테스트는 다양한 컴포넌트 혹은 모듈이 결합되었을 때 올바르게 작동하는지 확인한다.
- 단위 테스트와 시스템 테스트를 보완하여 소프트웨어의 전반적인 품질과 안정성을 보장하는데 도움이 되는 포괄적 테스트 전략이다.
반응형
'소프트웨어 공학 > 테스팅' 카테고리의 다른 글
8가지 탐색적 테스트 프레임워크란? (0) | 2023.07.10 |
---|---|
시스템 테스트 (System Test) 란? (0) | 2023.07.08 |
유닛 테스트 혹은 단위 테스트 (Unit test) 란? (0) | 2023.07.08 |
인수 테스트 혹은 수락 테스트 (Acceptance Test) 란? (0) | 2023.07.08 |
테스팅에서 사용되는 기본 용어 5가지: 기능, 사용자 흐름, 테스트 케이스, 엣지 케이스 (0) | 2023.07.01 |