Study_Note

integration test 본문

CSTS

integration test

12월7일생 2024. 7. 30. 13:29
728x90

반응형

통합테스트(integration test)

 

통합 테스트(Integration Test)는 소프트웨어 테스트의 한 단계로, 개별적으로 테스트된 소프트웨어 모듈들을 통합하여 전체 시스템으로서의 상호작용을 검증하는 과정입니다. 이 테스트는 모듈 간의 인터페이스와 데이터 흐름을 확인하여, 시스템이 요구 사항을 충족하고 예상대로 작동하는지 확인하는 데 중점을 둡니다.

 

통합 테스트의 주요 목적은 다음과 같습니다:

  1. 모듈 간 인터페이스 검증
    각 모듈이 서로 올바르게 상호작용하는지, 올바른 데이터가 전달되고 처리되는지 확인합니다. 이는 특히 서로 다른 개발자가 개발한 모듈들 간의 호환성을 확인하는 데 중요합니다.
  2. 통신 오류 검출
    모듈들이 서로 통신할 때 발생할 수 있는 오류를 조기에 발견합니다. 예를 들어, 데이터 형식 불일치, 프로토콜 불일치 또는 네트워크 문제 등을 식별할 수 있습니다.
  3. 시스템 통합 확인
    모든 모듈이 통합되어 하나의 시스템으로 올바르게 동작하는지 검증합니다. 이는 전체 시스템이 제대로 기능하고 사용자 요구 사항을 만족하는지 확인하는 중요한 단계입니다.
  4. 경계 조건 및 예외 처리 검증
    시스템 통합 시 발생할 수 있는 경계 조건 및 예외 상황을 테스트하여, 예상치 못한 문제가 발생하지 않도록 합니다.

통합 테스트의 종류

통합 테스트는 다양한 방식으로 수행될 수 있으며, 주요 방식은 다음과 같습니다:

 

  • 빅뱅 통합(Big Bang Integration)
    모든 모듈을 한꺼번에 통합하고 테스트하는 방식입니다. 이 방법은 빠르게 전체 시스템을 테스트할 수 있지만, 문제 발생 시 원인 분석이 어렵고, 모듈 간의 의존성 때문에 초기에 많은 버그가 발생할 수 있습니다.
    빅뱅 통합
  • 점진적 통합(Incremental Integration)
    모듈을 순차적으로 통합하며 테스트하는 방식으로, 상향식(Bottom-Up)과 하향식(Top-Down) 접근이 있습니다.

    • 상향식(Bottom-Up)
      최하위 모듈부터 상위 모듈로 점진적으로 통합합니다.
    • 하향식(Top-Down)
      최상위 모듈부터 하위 모듈로 점진적으로 통합합니다.
  • 혼합형 통합(Sandwich Integration)
    상향식과 하향식의 장점을 결합한 방식으로, 중간 계층에서부터 상위 및 하위로 점진적으로 통합해 나갑니다.
  • T-shaped 통합
    주요 경로(핵심 기능)를 중심으로 통합하면서 그 외의 부분을 나중에 통합하는 방식입니다.

통합 테스트는 소프트웨어의 신뢰성을 높이고, 각 모듈 간의 상호작용에서 발생할 수 있는 문제를 조기에 발견하여 해결하는 데 중요한 역할을 합니다.


통합 테스트의 개념을 더 잘 이해하기 위해, 실제 사례와 예시를 통해 설명해보겠습니다.


사례 1: 온라인 쇼핑몰 시스템

상황을 가정해보면, 온라인 쇼핑몰 시스템에는 여러 개의 주요 모듈이 있습니다. 예를 들어:

  1. 사용자 인증 모듈 : 로그인, 회원가입 등 사용자 인증 관련 기능을 담당.
  2. 상품 카탈로그 모듈 : 상품 목록 조회, 상품 상세 정보 제공 등 기능을 담당.
  3. 장바구니 모듈 : 사용자가 선택한 상품을 장바구니에 담고 관리하는 기능을 담당.
  4. 결제 모듈 : 사용자가 상품을 결제할 수 있는 기능을 담당.

통합 테스트 예시

통합 테스트에서는 각 모듈이 독립적으로 잘 동작하는지 확인한 후, 서로 결합하여 올바르게 상호작용하는지를 확인합니다. 예를 들어:

 

  • 사용자 인증과 장바구니 모듈의 통합
    인증된 사용자가 로그인한 후, 장바구니에 상품을 추가하고 삭제할 수 있는지 테스트합니다. 여기서는 사용자가 로그인 상태일 때만 장바구니 기능이 활성화되는지 확인합니다.
  • 장바구니와 결제 모듈의 통합
    장바구니에 담긴 상품들이 결제 모듈로 올바르게 전달되고, 결제 프로세스가 정상적으로 완료되는지 테스트합니다. 예를 들어, 장바구니의 상품 목록과 결제된 상품 목록이 일치하는지, 결제가 성공적으로 처리되는지 등을 확인합니다.
  • 상품 카탈로그와 장바구니 모듈의 통합
    상품 카탈로그에서 선택된 상품이 장바구니에 올바르게 추가되는지 테스트합니다. 여기서는 상품의 ID, 가격, 수량 등이 정확하게 전달되는지 확인합니다.

사례 2: 은행 애플리케이션

은행 애플리케이션의 주요 모듈을 생각해 봅시다:

  1. 계좌 관리 모듈 : 계좌 생성, 조회, 해지 등 계좌 관련 기능 담당.
  2. 이체 모듈 : 계좌 간의 자금 이체 기능 담당.
  3. 거래 기록 모듈 : 모든 거래 내역을 기록하고 조회하는 기능 담당.

통합 테스트 예시

  • 계좌 관리와 이체 모듈의 통합
    계좌 관리 모듈에서 생성한 계좌로 이체를 수행할 때, 정확한 계좌 정보가 사용되는지, 이체 후 잔액이 올바르게 반영되는지 확인합니다.
  • 이체와 거래 기록 모듈의 통합
    이체가 성공적으로 이루어진 후, 해당 거래가 거래 기록 모듈에 정확히 기록되고 조회되는지 테스트합니다.
  • 계좌 해지와 이체 모듈의 통합
    이미 해지된 계좌로 자금 이체를 시도할 때, 적절한 오류 메시지가 반환되고 이체가 수행되지 않는지 확인합니다.

이러한 통합 테스트를 통해, 각 모듈이 개별적으로는 정상 작동할지라도, 실제로는 다른 모듈과의 상호작용에서 문제가 발생할 수 있다는 점을 확인할 수 있습니다. 이를 통해 시스템의 신뢰성과 안정성을 확보할 수 있습니다.

'CSTS' 카테고리의 다른 글

regression test  (0) 2024.08.01
system test & acceptance test  (0) 2024.07.31
component test (unit test)  (0) 2024.07.29
software development stages and testing  (0) 2024.07.22
testing method - model based testing  (0) 2024.05.16