일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 테스트케이스
- test
- 품질
- 유지보수성 테스트
- QA
- selenium
- 애자일
- 셀레니움
- 테스트 케이스
- 자동화
- SQA
- 테스트
- risk-based testing
- testing method
- regression test
- csts
- RBT
- 비기능테스트
- Testing
- 위험 기반 테스트
- Python
- testcase
- Test Case
- 파이썬
- maintainability test
- agile
- 테스트 설계 기법에 따른 분류
- seleium
- ISTQB
- Software life cycle model
Archives
- Today
- Total
Study_Note
integration test 본문
728x90
반응형
통합테스트(integration test)
통합 테스트(Integration Test)는 소프트웨어 테스트의 한 단계로, 개별적으로 테스트된 소프트웨어 모듈들을 통합하여 전체 시스템으로서의 상호작용을 검증하는 과정입니다. 이 테스트는 모듈 간의 인터페이스와 데이터 흐름을 확인하여, 시스템이 요구 사항을 충족하고 예상대로 작동하는지 확인하는 데 중점을 둡니다.
통합 테스트의 주요 목적은 다음과 같습니다:
- 모듈 간 인터페이스 검증
각 모듈이 서로 올바르게 상호작용하는지, 올바른 데이터가 전달되고 처리되는지 확인합니다. 이는 특히 서로 다른 개발자가 개발한 모듈들 간의 호환성을 확인하는 데 중요합니다. - 통신 오류 검출
모듈들이 서로 통신할 때 발생할 수 있는 오류를 조기에 발견합니다. 예를 들어, 데이터 형식 불일치, 프로토콜 불일치 또는 네트워크 문제 등을 식별할 수 있습니다. - 시스템 통합 확인
모든 모듈이 통합되어 하나의 시스템으로 올바르게 동작하는지 검증합니다. 이는 전체 시스템이 제대로 기능하고 사용자 요구 사항을 만족하는지 확인하는 중요한 단계입니다. - 경계 조건 및 예외 처리 검증
시스템 통합 시 발생할 수 있는 경계 조건 및 예외 상황을 테스트하여, 예상치 못한 문제가 발생하지 않도록 합니다.
통합 테스트의 종류
통합 테스트는 다양한 방식으로 수행될 수 있으며, 주요 방식은 다음과 같습니다:
- 빅뱅 통합(Big Bang Integration)
모든 모듈을 한꺼번에 통합하고 테스트하는 방식입니다. 이 방법은 빠르게 전체 시스템을 테스트할 수 있지만, 문제 발생 시 원인 분석이 어렵고, 모듈 간의 의존성 때문에 초기에 많은 버그가 발생할 수 있습니다.빅뱅 통합 - 점진적 통합(Incremental Integration)
모듈을 순차적으로 통합하며 테스트하는 방식으로, 상향식(Bottom-Up)과 하향식(Top-Down) 접근이 있습니다.
- 상향식(Bottom-Up)
최하위 모듈부터 상위 모듈로 점진적으로 통합합니다. - 하향식(Top-Down)
최상위 모듈부터 하위 모듈로 점진적으로 통합합니다.
- 상향식(Bottom-Up)
- 혼합형 통합(Sandwich Integration)
상향식과 하향식의 장점을 결합한 방식으로, 중간 계층에서부터 상위 및 하위로 점진적으로 통합해 나갑니다. - T-shaped 통합
주요 경로(핵심 기능)를 중심으로 통합하면서 그 외의 부분을 나중에 통합하는 방식입니다.
통합 테스트는 소프트웨어의 신뢰성을 높이고, 각 모듈 간의 상호작용에서 발생할 수 있는 문제를 조기에 발견하여 해결하는 데 중요한 역할을 합니다.
통합 테스트의 개념을 더 잘 이해하기 위해, 실제 사례와 예시를 통해 설명해보겠습니다.
사례 1: 온라인 쇼핑몰 시스템
상황을 가정해보면, 온라인 쇼핑몰 시스템에는 여러 개의 주요 모듈이 있습니다. 예를 들어:
- 사용자 인증 모듈 : 로그인, 회원가입 등 사용자 인증 관련 기능을 담당.
- 상품 카탈로그 모듈 : 상품 목록 조회, 상품 상세 정보 제공 등 기능을 담당.
- 장바구니 모듈 : 사용자가 선택한 상품을 장바구니에 담고 관리하는 기능을 담당.
- 결제 모듈 : 사용자가 상품을 결제할 수 있는 기능을 담당.
통합 테스트 예시
통합 테스트에서는 각 모듈이 독립적으로 잘 동작하는지 확인한 후, 서로 결합하여 올바르게 상호작용하는지를 확인합니다. 예를 들어:
- 사용자 인증과 장바구니 모듈의 통합
인증된 사용자가 로그인한 후, 장바구니에 상품을 추가하고 삭제할 수 있는지 테스트합니다. 여기서는 사용자가 로그인 상태일 때만 장바구니 기능이 활성화되는지 확인합니다. - 장바구니와 결제 모듈의 통합
장바구니에 담긴 상품들이 결제 모듈로 올바르게 전달되고, 결제 프로세스가 정상적으로 완료되는지 테스트합니다. 예를 들어, 장바구니의 상품 목록과 결제된 상품 목록이 일치하는지, 결제가 성공적으로 처리되는지 등을 확인합니다. - 상품 카탈로그와 장바구니 모듈의 통합
상품 카탈로그에서 선택된 상품이 장바구니에 올바르게 추가되는지 테스트합니다. 여기서는 상품의 ID, 가격, 수량 등이 정확하게 전달되는지 확인합니다.
사례 2: 은행 애플리케이션
은행 애플리케이션의 주요 모듈을 생각해 봅시다:
- 계좌 관리 모듈 : 계좌 생성, 조회, 해지 등 계좌 관련 기능 담당.
- 이체 모듈 : 계좌 간의 자금 이체 기능 담당.
- 거래 기록 모듈 : 모든 거래 내역을 기록하고 조회하는 기능 담당.
통합 테스트 예시
- 계좌 관리와 이체 모듈의 통합
계좌 관리 모듈에서 생성한 계좌로 이체를 수행할 때, 정확한 계좌 정보가 사용되는지, 이체 후 잔액이 올바르게 반영되는지 확인합니다. - 이체와 거래 기록 모듈의 통합
이체가 성공적으로 이루어진 후, 해당 거래가 거래 기록 모듈에 정확히 기록되고 조회되는지 테스트합니다. - 계좌 해지와 이체 모듈의 통합
이미 해지된 계좌로 자금 이체를 시도할 때, 적절한 오류 메시지가 반환되고 이체가 수행되지 않는지 확인합니다.
이러한 통합 테스트를 통해, 각 모듈이 개별적으로는 정상 작동할지라도, 실제로는 다른 모듈과의 상호작용에서 문제가 발생할 수 있다는 점을 확인할 수 있습니다. 이를 통해 시스템의 신뢰성과 안정성을 확보할 수 있습니다.
'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 |