통합테스트(Integration Test)
- 정보처리기술사/소프트웨어공학
- 2019. 12. 30.
통합테스트는 모듈을 통합(Integrate)하는 단계에서 수행하는 테스트이다. 단위 테스트를 우선 수행하여 모듈들이 각각 정상적으로 작동이 되는 것을 확인했다면 이제 이 모듈들을 연동하여 테스트를 수행하게 되는데 이것이 통합 테스트이다.
단위 테스트에서 찾지 못하는 연동시 발생하는 버그 등을 찾을 수 있으며, 다른 모듈들과 동시 다발적으로 테스트를 수행해야 하기 때문에 단위 테스트와 다르게 일반적으로 테스트를 교육 받은 전문적인 테스터와 함께 수행하게 된다.
테스트 시 컴포넌트간의 I/F(인터페이스)를 테스트 하는 것은 물론이고, 운영체제, 파일 시스템, 하드웨어, 시스템간 인터페이스와 같은 시스템의 각기 다른 부부과 상호 연동하는 동작을 테스트하게 된다.
소프트웨어 상호작용 테스트, 통합 테스트
통합 테스트(Integration Test)의 개념
- 단위테스트 이후, 각 모듈들의 상호 작용이 제대로 이루어지는지 검증하는 테스트 활동
- 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생할 수 있는 오류를 찾는 테스트
통합테스트의 개념도
통합 테스트의 유형
하향식(Top-Down)
- 가장 상부의 모듈부터 통합하며 테스트를 순차적으로 진행하는 방식
- 하향식 테스트를 위해 테스트 스텁(Test Stub)으로 I/F 테스트 진행
- 결함 격리가 쉬우며, 설계상의 결함을 빨리 발결할 수 있음
- 수정이 어려운 중요한 결함을 하부 구조에서 발견 될 수 있음
상향식(Bottom-Up)
- 최하위 모듈을 통합 후, 상부의 모듈을 순차적으로 추가 테스트
- 상향식 테스트를 위해 테스트 드라이버(Test Driver)로 I/F 테스트 진행
- 결함 격리가 쉬우며, 하위 모듈을 충분히 테스트 수행
- 수정이 어려운 중요한 결함(설계상 결함)을 상부 구조에서 발견 될 수 있음
샌드위치 테스트(Sandwich Test)
- 상향식과 하향식의 장점을 이용하는 방식(하향식 + 상향식)
- 하위 프로젝트가 있는 대규모 프로젝트에 사용하는 방식
- 병렬 테스트가 가능하고 시간 절약이 가능
- 스텁(Stub)과 드라이버(Driver)의 필요성이 매우 높은 방식이며, 비용이 많이 들어감
빅뱅(BigBang)
- 시스템을 구성하는 모듈을 각각 따로 구현하고 전체시스템을 한번에 시험
- 테스트를 위한 Driver와 Stub없이 실제 모듈들로 테스트 진행
- 단시간 테스트를 수행하나 결함의 격리가 어려운 방식
통합테스트 계획서
- 목적/전략 : 통합 테스트 이유 및 전체 일정 요약 및 보고 주기
- 범위 : 통합 테스트 대상 시스템, 시스템 내의 테스트 대상 모듈 범위
- 측정기준 및 방법 : 통합 테스트 결과에 대한 측정 기준 및 방법 정의 (ex: 결합률)
- 일정 : 테스트 시나리오 / 테스트 케이스 작성, 수행 결과 보고, 회귀 테스트 일정 제시
- 테스트 환경 : 테스트를 위한 HW 요구사항, SW 요구사항, 데이터 적재
- 테스트 조직 : PM, QA, Tester, PL과 같은 테스트 조직 및 역할 정의
- 성공/실패 요소 : 통합테스트 성공기준 및 실패기준을 정의
통합테스트 수행 시 고려사항
최적화된 범위 필요 : 통합하는 범위가 클수록 장애나 결함의 위치를 찾아 격리하기가 쉽지 않음
순차적 방식 지향 : 상향식, 하향식과 같은 순차적인 통합이 빅뱅 방식보다 리스크를 줄이는데 효과적
참고자료
(도서) 개발자도 알아야할 소프트웨어 테스팅 실무
https://www.geeksforgeeks.org/sandwich-testing-software-testing/
연관자료
'정보처리기술사 > 소프트웨어공학' 카테고리의 다른 글
고객이 확인하는, 인수 테스트(Acceptance Test) (1) | 2020.01.01 |
---|---|
요구사항의 통합적인 테스트, 시스템 테스트(System Test) (0) | 2019.12.31 |
단위 테스트(Unit Test, Component Test) (0) | 2019.12.30 |
SW 테스트(Test) (0) | 2019.12.26 |
OOP를 더욱 빛나게 해주는, AOP (0) | 2019.01.10 |