소프트웨어 테스팅 생명주기와 산출물
출처: SOFTWARE TESTING REVEALED TRAINING BOOK, SECOND EDITION BY INTERNATIONAL SOFTWARE TEST INSTITUTE, 64~70 페이지
소프트웨어 테스팅 팀의 일반적인 작업 프로세스와 산출물에 대해 기술
소프트웨어 테스팅 라이프사이클
소프트웨어 테스트 생명주기에 아래 단계들이 있다.
- 요구사항 연구(Requirement study): 클라이언트의 요구사항을 이해하고 기능 문서화를 수행한다.
- 테스트 계획(Test plan): 프로젝트의 요구사항을 고려하여 테스트 활동(testing activities)을 계획하고 테스트 계획 문서를 작성한다.
- 테스트 케이스 설계(Test Case Design): 테스트 시나리오를 식별하고 이에 따라 테스트 케이스를 설계한다.
- 요구사항과 테스트 케이스를 매핑하고 요구사항 추적 매트릭스(requirement traceability matrix)를 작성한다.
- 테스트 케이스 실행(Execution of test cases): 테스트를 실행하고 버그를 보고한다.
- 결함이 수정되면 재테스트(retesting) 및 회귀 테스트(regression testing)를 수행한다.
- 테스트 보고서(Test reports)를 작성한다.
- 테스트 활동을 완료한다.
요구사항 연구(Requirements Study)
이 프로세스에서는 아래를 수행한다.
- 요구사항 추적 매트릭스(Requirement traceability matrix) 준비
- 모듈 별 우선순위 및 접근 방식을 설정
- 자동화 테스트가 필요한 영역과 수동 테스트가 필요한 영역을 식별
테스트 케이스 설계 및 개발
이 프로세스에는 다음이 포함된다.
- 테스트 케이스 및 테스트 스크립트(자동 테스트가 포함된 경우) 작성
- 테스트를 위한 데이터 준비
테스트 실행(Test Execution)
테스트 실행은 다음으로 구성된다.
- 테스트 케이스의 실행
- 버그 추적 도구(bug tracking tool)를 사용하여 버그 기록
- 테스트 결과(test results) 문서화
- 요구사항 추적 매트릭스를 사용하여 결함을 요구사항에 매핑
- 버그의 상태를 추적
테스트 종료(Test Closure)
테스트 종료는 다음으로 구성된다.
- 테스트 커버리지, 비용, 시간, 품질 등을 고려하여 테스트 메트릭 준비
- 테스트 종료 보고서(test closure report) 작성
- 타입 별, 심각도 별 결함 분포(Defect distribution) 계산
- 원인 분석 및 해결(Casual analysis and resolution) 수행
소프트웨어 테스트 팀의 산출물(Deliverables of Software Testing Team)
테스트 산출물(test deliverables)은 소프트웨어가 개발될 때 이해관계자에게 제공하는 문서이다.
- 소프트웨어 테스팅 전략(Software Testing Strategy)
- 소프트웨어 테스트 계획서(Software Testing Plan)
- 소프트웨어 테스트 시나리오 및 테스트 케이스(Software Test Scenarios and Test Cases)
- 소프트웨어 테스트 메트릭(Software Test Metrics)
- 제품 메트릭(Product Metrics)
- 프로세스 메트릭(Process Metrics)
- 소프트웨어 테스트 문서(Software Test Documentations)
- 일일 테스트 현황 보고서(Daily Test Status Reports)
- 사건 보고서(Incident Reports)
- 최종(테스트 프로젝트 종료) 테스트 현황 보고서
소프트웨어 테스팅 전략
소프트웨어 테스트 전략은 프로젝트의 테스팅 활동(testing activities)을 위한 로드맵이다. 테스팅을 잘 정의된 더 작은 프로세스로 분류하지 않으면 그것을 수행하기가 매우 어려울 수 있다. 테스트 전략은 테스트 프로세스를 정의하고 테스트 팀이 전체 프로세스에 필요한 시간, 노력, 리소스를 평가하 데 도움이 된다.
소프트웨어 테스트 계획서
테스트 계획서는 소프트웨어를 테스트하기 위한 전반적인 전략을 정의한다. 필요한 테스트 환경과 수행할 테스트 수준을 설명하며, 테스트 결과를 분석하는 방법과 이를 위해 어떤 메트릭을 사용할지 설명한다. 각 단계의 종료 기준(Exit criteria)을 정의하고 테스트 노력 및 비용에 대한 추정치를 기술한다.
소프트웨어 테스트 시나리오 및 테스트 케이스
테스트 시나리오(Test Scenario)는 테스터가 잘 정의된 방식으로 소프트웨어를 테스트할 수 있도록 만든 가상의 사례(어떤 상황에서의 스토리)이다. 반면에 테스트 케이스(Test cases)는 수행해야 할 작업을 매우 간단하고 직관적으로 설명한 것으로 테스터가 무엇을 해야 하는지 어떻게 소프트웨어를 테스트해야 하는지에 대해 말한다.
소프트웨어 테스트 메트릭
소프트웨어 메트릭은 소프트웨어를 평가하기 위해 정의된 측정 표준이다. 소프트웨어의 속성을 측정하는 데 사용되는 모든 단위를 메트릭이라고 한다. 소프트웨어 테스트 메트릭은 소프트웨어 품질을 측정하는 데 사용된다. 이러한 메트릭은 아직 개발 중인 시스템의 준비(완성) 정도에 대한 공정한 지표를 제공한다.
소프트웨어 테스트 메트릭을 두 가지 타입으로 분류할 수 있다.
- 직접 측정 메트릭(기본 매트릭): 이 데이터는 원시 데이터이며 테스트 분석가에 의해 수집된다. 기본 메트릭은 생성된 테스트 케이스 수, 실행된 테스트 케이스 수 등과 같이 프로젝트 상태에 대한 정보를 제공한다.
- 간접 측정 메트릭(계산된 메트릭): 기본 메트릭에서 수집된 원시 데이터가 프로젝트 완료율(%), 테스트 커버리지(%) 등과 같이 프로젝트에 대한 정확한 정보를 제공하는 보다 유용한 정보로 변환될 때 계산된 메트릭이라고 한다.
제품 메트릭
제품 메트릭은 제품 품질 개선의 능동적 발의를 하는 데 매우 중요한 역할을 한다. 제품에 대한 지속적인 평가는 팀이 제품의 어떤 특성에 어떤 유형의 수정이 필요한지 여부를 제때 결정하는 데 도움이 된다. 제품 메트릭은 제품의 아래와 같은 특성을 측정한다.
- 크기
- 복잡성
- 디자인 측면
- 성능
- 품질
프로세스 메트릭
프로세스 메트릭은 프로세스를 측정하여 수행할 수 있는 개선 범위가 있는지 확인한다. 프로세스 메트릭은 소프트웨어 테스트 활동을 추적하는 데 매우 중요한 역할을 한다. 소프트웨어 테스팅은 소프트웨어 개발의 매우 중요한 측면이며 테스트 활동을 모니터링함으로써 프로젝트의 효율성과 효과를 크게 향상시킬 수 있다.
소프트웨어 테스트 문서
모든 테스트 활동을 추적하기 위해 테스트 도중 또는 테스트 전에 준비한 소프트웨어 테스트 문서를 지칭한다. 중요한 소프트웨어 테스트 문서로 다음과 같은 것이 있다.
- 테스트 계획서(Test Plan)
- 테스트 시나리오(Test Scenario)
- 테스트 케이스(Test Case)
- 추적 매트릭스(Traceability Matrix)
일일 테스트 현황 보고서
일일 테스트 현황 보고서는 테스트 팀 내에서 그리고 프로젝트 및 프로그램 이해관계자와의 투명성을 유지하는 데 도움이 된다. 프로젝트 관리자는 매일 얼마나 많은 결함이 보고되는지, 얼마나 많은 테스트케이스가 실행되는지, 각 테스터가 얼마나 많은 작업을 수행했는지 등을 언제든지 확인할 수 있다. 일일 현황 보고서에는 다음에 관한 정보가 있다.
- 하루에 몇 개의 테스트 케이스가 계획되었는가?
- 그 중 몇 개가 실행되었는가?
- 테스트 팀이 얼마나 많은 결함을 보고했는가?
- 그 중 치명적인 결함은 몇 개인가?
- 보다 자세한 테스트 보고서를 어디서 볼 수 있는가(결함 시트 및 테스트 실행 시트)?
사건 보고서
실제 실패(failure)에 대한 사건 보고를 작성한다. 사건 보고서는 테스트 활동과 개발 활동을 조정하는 데 도움이 된다. 사건 관리(Incident management)는 실제 결과와 예상 결과 비교, 테스트가 실패한 경우 그 원인이 무엇인지(예를 들어 테스트 자동화가 잘못되었는지, 테스트 케이스가 부실한지, 아니면 실제 소프트웨어의 오류인지) 등을 다룬다.
최종(테스트 프로젝트 종료) 테스트 현황 보고서
테스트 프로젝트 종료 보고서는 프로젝트의 종료 기준에 도달하거나 전체 테스트 활동이 완료되면 생성된다. 이 보고서는 테스트 리더가 작성하고, 나중에 모든 이해관계자와 클라이언트가 이를 검토한다. 이 보고서에는 성공적으로 실행된 테스트 케이스의 모든 세부 정보가 포함되어 있으며, 팀에서 프로젝트 배포 후 해결하려는 미해결 결함이 있는 경우 이를 언급한다.