3.3 통합 테스트
- 개요
- 점진적 통합
3.3.1 개요
통합 테스트는 컴포넌트 간의 상호 연동이 제대로 수행되는지 검사
컴포넌트 테스트에서 문제가 없더라도 통합한 후에 결함이 발생할 수도 있음
통합 테스트를 수행할 때는 각 테스트 별로 통합 대상이 되는 컴포넌트를 먼저 결정

상호작용 관점
컴포넌트 간 연결의 정확성에만 초점을 두는 관점
컴포넌트 간의 데이터 전송과 수신에만 초점을 둠
입력 로그와 출력 로그의 값을 비교하는 방식으로 적합성 확인 가능
로그 생성이 어려울 경우에는 핑거 프린트를 사용해 데이터의 변경 여부만을 판단하기도 함
컴포넌트 간의 연결 자체에서 오작동이 발생할 가능성이 클 경우 먼저 수행

기능적인 측면 관점
컴포넌트 1과 컴포넌트 2 전체가 테스트 대상이라고 볼 수 있음
컴포넌트 간의 통신에 문제가 있을 가능성이 작을 경우에 수행하는 것이 효과적
3.3.2 점진적 통합
빅뱅 방식
컴포넌트를 한 번에 통합하는 방법
많은 수의 컴포넌트가 통합되기 때문에 오작동이 발생했을 때 어디서 발생했는지 찾기 어려움
점진적 통합 방식
적은 수의 컴포넌트를 차례로 통합하는 방법
오작동의 원인이 되는 컴포넌트를 찾기 쉽지만 테스트 드라이버 및 스텁을 여러 번 개발해야 함
상향식, 하향식, 샌드위치 통합 방식이 있음
상향식 통합

호출 관계의 하위에 있는 컴포넌트들을 시작으로 상위에 있는 컴포넌트들로 통합하는 방법
하위 컴포넌트(모듈)를 식별하여 그룹화•클러스터링한 후 테스트 드라이버를 작성하여 테스트를 수행
여러 모듈의 묶음을 클러스터 또는 빌드라 함
클러스터를 테스트한 후에 테스트 드라이버를 제거하고 실제 모듈과 결합
장점
일반적으로 하위 컴포넌트는 서비스에 필요한 공통적인 기능을 제공하는 역할이기 때문에 상위 컴포넌트에서 빈번하게 사용
따라서 통합이 진행될 수록 하위 컴포넌트들은 빈번하게 호출되어 충분하게 테스트할 수 있음
하향식 통합에서 필요한 테스트 스텁을 제공하는 비용이 들지 않음
하향식 통합

하위 컴포넌트를 테스트 스텁으로 대치한 후 상위 컴포넌트 테스트 수행
깊이 우선 방식 혹은 너비 우선 방식을 사용하여 테스트 스텁을 한 번에 하나씩 실제 컴포넌트로 대치
테스트 스텁이 실제 모듈로 대치되어 시스템에 변경이 발생했기 때문에 리그레이션 테스트 수행
상위 컴포넌트는 시스템의 기능을 결정하고 여기서 결함이 발생했을 경우 시스템 설계의 문제가 생긴 것으로 해석 가능
많은 수의 테스트 스텁이 필요해 테스트 스텁 구현 비용이 많이 들 수 있음
샌드위치 통합

상향식 통합 + 하향식 통합
M1은 M2, 3, 4에 해당하는 테스트 스텁을 사용하여 테스트 - 하향식
M5, 6, 7은 클러스터링하여 드라이버 D1을 사용하여 테스트하고 테스트 후 M2로 통합 - 상향식
'도서 및 강의 > 소프트웨어 테스트 전문가(CSTS) 가이드' 카테고리의 다른 글
| 3장 소프트웨어 개발 단계와 테스트 - 3.5 리그레션 테스트 (0) | 2025.11.25 |
|---|---|
| 3장 소프트웨어 개발 단계와 테스트 - 3.4 시스템 테스트 및 인수 테스트 (0) | 2025.11.25 |
| 3장 소프트웨어 개발 단계와 테스트 - 3.2 컴포넌트 테스트 (0) | 2025.11.25 |
| 3장 소프트웨어 개발 단계와 테스트 - 3.1 개요 (0) | 2025.11.25 |
| 2장 테스트 분류와 테스팅 방법 - 2.3 테스팅 방법 (0) | 2025.11.25 |