개발 단계에 따른 애플리케이션 테스트
애플리케이션 테스트는 소프트웨어의 개발 과정 중 지속적으로 진행되어야 한다.
개발 단계에 따라 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트로 분류되며, 이러한 분류를 테스트 레벨이라고 한다.
애플리케이션 테스트와 소프트웨어 개발 단계를 연결하여 표현한 것을 V-모델이라고 한다.
1. 단위 테스트(Unit Test)
단위 테스트는 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것이다.
인터페이스, 외부 I/O, 자료 구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등을 검사한다.
사용자 요구사항을 기반으로 한 기능성 테스트를 최 우선으로 한다.
구조 기반 테스트와 명세 기반 테스트로 나뉘지만 주로 구조 기반 테스트를 시행한다.
2. 통합 테스트(Integration Test)
통합 테스트는 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트를 의미한다.
즉, 모듈을 통합하는 과정에서 발생하는 오류나 결함을 찾는 테스트 기법이다.
크게는 비점진적 통합 방식과 점진적 통합 방식으로 나뉜다.
- 비점진적 통합 방식
- 모든 모듈이 미리 결합되어 있는 프로그램 전체를 테스트하는 방법
- 빅뱅 통합 테스트 방식이 있다 - 점진적 통합 방식
- 모듈 단위로 단계적으로 통합하면서 테스트하는 방법
- 하향식 통합 테스트, 상향식 통합 테스트, 혼합식 통합 테스트로 나뉜다.
- 하향식 통합 테스트(Top Down Integration Test)
- 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
- 깊이 우선 통합법 또는 넓이 우선 통합법을 사용한다.
- 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈은 스텁(Stub)으로 대체한다.
- 하위 모듈인 스텁들이 하나씩 실제 모듈로 교체된다.
- 모듈이 통합될 때마다 테스트를 실시한다.
- 새로윤 오류가 발생하지 않음을 보증하기 위해 회귀 테스트를 실시한다.
- 상향식 통합 테스트(Bottom Up Integration Test)
- 하위 모듈에서 상위 모듈 방향으로 통합하여 테스트하는 기법
- 하위 모듈들을 클러스터(Cluster)로 결합한다.
- 상위 모듈에서 데이터 입/출력을 확인하기 위해 더미 모듈인 테스트 드라이버(Test Driver)를 작성한다.
- 통합된 클러스터 단위로 테스트 한다.
- 테스트 완료 시 클러스터는 프로그램 구조의 상위로 이동하여 결합하고 드라이버는 실제 모듈로 대체된다.
- 혼합식 통합 테스트
- 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합을 사용하여 최적의 테스트를 지원하는 방식
- 샌드위치식 통합 테스트 방법이라고도 한다
스텁은 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 일시적으로 필요한 조건만 갖고있는 시험용 모듈이다.
클러스터는 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹을 의미한다.
테스트 드라이버는 테스트 대상의 하위 모듈을 호출하고, 파라미터를 전달하고 모듈 테스트 수행 후의 결과를 도출하는 도구이다.
3. 시스템 테스트(System Test)
시스템 테스트는 개발된 소프트웨어가 완벽하게 수행되는 가를 점검하는 테스트이다.
기능적 요구사항과 비기능적 요구사항으로 구분하여 각각을 만족하는지 테스트한다.
4. 인수 테스트(Accpetance Test)
인수 테스트는 개발한 소프트웨어가 사용자의 요구사항을 충족하는 지에 중점을 두고 테스트하는 방법이다.
인수 테스트는 개발한 소프트웨어를 사용자가 직접 테스트하며, 총 6가지로 분류할 수 있다.
- 사용자 인수 테스트
- 사용자가 시스템 사용의 적절성 여부를 확인 - 운영상의 인수 테스트
- 시스템 관리자가 시스템 인수 시 수행하는 테스트 기법
- 백업/복원 시스템, 재난 복구, 사용자 관리 등을 확인 - 계약 인수 테스트
- 계약상의 인수/검수 조건을 준수하는 지 확인 - 규정 인수 테스트
- 정부 치짐, 법규, 규정등에 맞게 개발되었는 지 확인 - 알파 테스트
- 개발자의 장소에서 사용자가 개발자 앞에서 행해지는 기법
- 오류와 사용상의 문제를 사용자과 개발자가 함께 확인하면서 검사하는 기법 - 베타 테스트
- 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법
- 실업무를 가지고 사용자가 직접 테스트
정리하자면 애플리케이션 테스트는 모듈을 개발하면 모듈에 대한 단위 테스트를 진행하고,
여러 개의 모듈을 결합하여 시스템으로 완성시키는 과정에서 통합 테스트를 진행하며,
설계된 소프트웨어가 시스템에서 정상적으로 수행되는 지 시스템 테스트를 수행한다.
최종적으로 소프트웨어가 완성되면 사용자에게 인수하기 전에 인수 테스트를 수행한다.
'정보처리기사' 카테고리의 다른 글
디자인 패턴 (0) | 2023.10.03 |
---|---|
EAI, ESB, Web Service (0) | 2023.10.02 |
애플리케이션 테스트 (0) | 2023.10.02 |
데이터 모델 (0) | 2023.09.27 |
데이터베이스 (0) | 2023.09.27 |