가) 목적
테스트의 목표는 제품의 품질에 대해 평가하고 보고하는 것이다. 테스트 웍플로우는 다음과 같은 액티비티를 포함한다.
- 객체와 컴포넌트간의 상호작용을 검증
- 소프트웨어를 구성하는 모든 컴포넌트가 올바르게 통합되었는가 검증
- 모든 요구사항이 올바르게 구현되었는가 검증
- 소프트웨어가 배포되기 전에 결함을 인식하여 해결
나) 작업자와 산출물
테스트 웍플로우의 주요 작업자는 다음과 같다.
- 테스트 설계자(Test Designer) : 테스트를 계획하고, 설계하고, 구현하고, 테스트의 결과를 평가하는 일을 담당한다. 테스트 설계자는 테스트 계획과 테스트 모델을 생성하고, 테스트 절차를 구현하며, 테스트의 효율성, 결과 등을 평가한다.
- 시스템 테스트 담당자(System Tester) : 시스템 테스트를 담당한다. 시스템 테스트 담당자는 테스트를 위한 준비와 테스트 수행, 테스트 수행의 평가, 오류 처리, 테스트 결과의 평가, 발견한 결함의 보고와 같은 일을 수행한다.
이외에 다음과 같은 작업자가 존재한다.
- 성능 테스트 담당자(Performance Tester) : 성능 테스트를 담당한다.
- 통합 테스트 담당자(Integration Tester) : 통합 테스트를 담당한다.
- 구현 담당자(Implementer) : 테스트를 위해 driver나 stub같은 특별한 코드가 필요할 때 이를 구현한다.
- 설계자(Designer) : 테스트를 위해 driver나 stub같은 특별한 코드가 필요할 때 이를 설계한다.
테스트 웍플로우의 작업자와 산출물의 관계
테스트 웍플로우의 주요 산출물에는 다음과 같은 것이 있다.
- 테스트 계획(Test Plan) : 테스트의 목적에 대한 정보를 수록. 테스트 계획에는 사용할 전략과 테스트를 구현하고 수행하는 데 필요한 자원에 대한 정보를 기술한다.
- 테스트 모델(Test Model) : 테스트 항목(Test Case)과 테스트 절차(Test Procedure), 테스트 스크립트(Test Script)로 구성된다.
- 워크로드 모델(Workload Model) : 워크로드 모델은 성능평가를 위해 사용된다. 워크로드 모델에는 시스템의 실제 특성과 최종 사용자가 사용할 기능, 실제 작업부하 등을 시뮬레이션하는 성능 테스트에서 사용할 변수와 변수의 값에 대한 정보가 정의되어 있다.
- 결함(Defects) : 실패한 테스트로부터 생성되고 하나의 변경요구로 등록된다.
이외에도 다음과 같은 산출물들이 존재한다.
- 테스트를 위한 패키지와 클래스
- 테스트를 위한 서브시스템(Subsystem)과 컴포넌트(Component)
다) 웍플로우
앞의 그림은 일반적인 테스트 웍플로우이다. 이는 다음과 같은 액티비티를 포함한다.
- 테스트 계획(Plan Test) : 테스트 설계자는 테스트 요구사항, 필요자원 그리고 테스트 전략 등에 대한 상세한 요구 사항을 식별하여 이를 테스트 계획으로 문서화한다.
- 테스트 설계(Design Test) : 테스트 설계자는 테스트 대상을 분석하여 테스트 모델과 성능 테스트를 위한 워크로드 모델을 개발한다.
- 테스트 구현(Implement Test) : 테스트 설계자는 테스트 모델에서 정의된 테스트 절차를 자동화 도구를 사용하여 테스트 스크립트로 레코딩하거나 수작업으로 프로그램화한다. 만약 테스트 수행을 위해 드라이버나 스텁(stub)과 특별한 코드가 필요한 경우 테스트 설계자는 설계자나 구현 담당자와의 공동 작업을 통해 이를 구현한다.
- 테스트 수행(Execute Test) : 테스트 담당자는 테스트 대상에 대하여 테스트를 수행한다. 테스트의 수행에는 테스트 절차(수동 수행시)나 테스트 스크립트(자동 수행시)를 이용한다. 테스트가 완료되면 테스트담당자는 결과를 검토한다. 검토 과정을 통하여 테스트가 적절하게 실행되었는지를 파악한 후 결과를 문서화하고 결함이 발견되면 이를 등록한다.
- 테스트 평가(Evaluate Test) : 테스트 설계자는 테스트 결과를 평가하여 정량화할 수 있는 측정값을 제공한다. 이를 통해 테스트 설계자는 테스트 대상의 품질과 테스트 프로세스의 효율성을 결정할 수 있다.
라) 도구 지원
테스트는 개발주기동안 반복적으로 여러 번 수행된다. 테스트의 효과를 극대화하기 위해서는 테스트 자동화를 위한 도구를 사용하는 것이 반드시 필요하다. 특히 테스트에 수천대의 기계가 필요하고 또한 이들 장비의 동기화가 필요한 부하 테스트의 경우에는 테스트 자동화를 위한 도구가 절대적으로 필요하다.
Rational사는 다음과 같이 테스트 자동화를 위한 다양한 도구를 제공한다.
- RequisitePro : 테스트 요구사항을 추적하고 관리한다.
- Purify : 신뢰성 테스트 도구로 런타임 에러를 찾아 준다.
- Quantify : 소프트웨어 실행시의 타이밍 정보를 측정하고 이를 통해 병목지점을 찾아 준다.
- PureCoverage : 테스트 수행시의 코드 커버리지 정보를 제공한다. 커버리지 정보는 테스트의 완전성(Completeness)을 평가할 때 유용하게 사용된다.
- TeamTest : 소프트웨어의 기능 테스트를 위해 필요한 도구들을 제공한다.
- PerformanceStudio : 시스템의 부하 테스트를 위해 필요한 도구들을 제공한다.
- ClearQuest : 결함을 추적, 관리하기위해 사용한다. 또한 ClearQuest는 프로젝트 진척상황에 대한 다양한 보고서를 제공한다.
이외에도 Rational Unified Process는 이러한 도구를 효과적으로 사용하는 방법에 대한 정보를 제공한다.
마) 요약
- 제품의 품질은 제품을 구성하는 모든 요소의 품질과 생산된 최종 제품의 품질을 말한다.
- 프로세스의 품질은 프로세스 자체의 구현과 프로세스, 표준, 지침에 대한 준수여부에 대한 측정으로 표현될 수 있다.
- 품질은 모든 사람의 책임이다.
- 테스트 웍플로우는 컴포넌트간의 상호작용, 통합, 기능, 성능의 관점에서 제품의 품질을 평가하는 데 주 목적이 있다.
본 글의 모든 저작권은 Rational에 있습니다.
'아키텍처와 공학' 카테고리의 다른 글
RUP Core workflows[8] 환경 웍플로우 (0) | 2009.10.26 |
---|---|
RUP Core workflows[7] 형상 및 변경 관리 웍플로우 (0) | 2009.10.26 |
RUP Core workflows[5] 구현 웍플로우 (0) | 2009.10.26 |
RUP Core workflows[4] 분석 & 설계 웍플로우 (0) | 2009.10.26 |
RUP Core workflows[3] 요구사항 웍플로우 (0) | 2009.10.26 |