통합테스트(Integration Test)

    통합테스트는 모듈을 통합(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/


    연관자료


    댓글

    Designed by JB FACTORY