★ 018 애플리케이션 테스트 관리[통합테스트]
1. 통합 테스트(Intergration Test)
- 단위 테스트가 완료 된 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트
비점진적 통합 방식
- 단계적으로 통합하는 절차 없이 모든 모듈이 미리 결합되어 있는 프로그램 전체를 테스트
- 규모가 작은 SW에 유리하고, 단시간 내에 테스트가 가능
- 전체 프로그램을 대상으로 하기 때문에 오류 발견 및 장애 위치 파악과 수정이 어려움
1) 빅뱅 통합 테스트
- 모듈간의 상호 인터페이스를 고려하지 않고, 단위 테스트가 끝난 모듈을 한 번에 결합시켜 테스트
- 소규모 프로그램 또는 프로그램 일부만 테스트 할 때 사용
점진적 통합방식
- 모듈 단위로 단계적으로 통합하면서 테스트 진행
- 오류 수정이 용이하고 인터페이스와 연관된 오류를 완전히 테스팅 할 가능성이 높음
1) 하향식(Top-Down)통합 테스트
- 프로그램 상위 모듈에서 하위 모듈 방향으로 통합을 진행하면서 테스트
- 아래로 이동(DFS, BFS 사용) 하면서 주요 제어 모듈을 기준으로 통합 진행
- 테스트 초기부터 사용자에게 시스템 구조를 보여줄 수 있다는 특징
- 상위 모듈에서는 테스트 케이스를 사용하기 어려움
- 절차
a) 주요 제어 모듈은 작성된 프로그램을 사용, 종속 모듈은 스텁으로 대체
※ 테스트 스텁(Test Stub): 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구, 일시적으로 필요한 조건만 가지는 시험용 모듈
b) DFS/BFS 등의 통합 방식에 따라 하위 모듈인 스텁들이 하나씩 실제 모듈로 교체
c) 모듈들이 통합 될 때마다 테스트 실시
d) 회귀 테스트를 실시해 새로운 오류가 발생하지 않음을 보증
※ 회귀 테스트: 이미 테스트 된 프로그램의 테스팅을 반복하는 것. 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트
2) 상향식(Down-Top) 통합 테스트
- 프로그램 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법
- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)가 필요
- 절차
a) 하위 모듈들을 클러스터로 결합
b) 상위 모듈에서 데이터의 입출력 확인을 위해 드라이버 작성
※ 테스트 드라이버(Test Driver): 더미 모듈, 테스트 드라이버는 테스트 대상의 하위 모듈을 호출하고, 파라미터를 전달하고, 모듈 테스트 수행 후 결과를 도출하는 도구
c) 통합된 클러스터 단위로 테스트 진행
d) 테스트 완료 후 클러스터는 프로그램 구조의 상위로 이동하여 결합하고 드라이버를 실제 모듈로 대체
2. 혼합식 통합 테스트
- 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합을 사용하여 최적의 테스트를 지원하는 방식으로, 샌드위치식 통합 테스트 방식이라고도함.
3. 회귀 테스팅(Regression Testing)
- 이미 테스트 된 프로그램의 테스팅을 반복하는 것
- 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트
- 수정한 모듈/컴포넌트가 다른 부분에 영향을 주는지, 오류가 발생했는지 테스트하여 새로운 문제가 발생하지 않음을 보증하기 위한 반복 테스트
- 시간과 비용이 많이 들기 때문에 기존 테스트 케이스 중 변경된 부분을 테스트 할 수 있는 테스트 케이스만 선정하여 수행
회귀 테스트의 테스트 케이스 선정 방법
- 모든 애플리케이션 기능을 수행 할 수 있는 대표 테이스 케이스 선정
- 애플리케이션 기능 변경에 의한 파급 효과가 높은 부분이 포함된 테스트 케이스 선정
- 실제 수정이 발생한 모듈/컴포넌트에서 시행하는 테스트 케이스 선정