[QA] 테스트 프로세스
테스트 프로세스는 테스팅과 관련된 다양한 활동이 체계적으로 진행되어 의도된 테스트 목적과 목표를 달성할 수 있도록 테스팅의 모든 구성 요소를 엮어주는 역할을 한다.
기본적인 테스트 프로세스는
1. 계획과 제어
2. 분석과 설계
3. 구현과 실행
4. 완료 조건의 평가와 리포팅
5. 테스트 마감 활동
으로 구성되어 있다.
1. 테스트 계획과 제어
테스트 계획은
테스트 목표를 달성하기 위해 이를 확인하고 필요한 활동을 정의하는 것이다.
즉 테스트 목적을 달성하기 위한 필요한 접근법을 정의하는 활동이다.
- 테스트 일정 수립 (적합한 테스트 기법과 작업을 명시, 정해진 출시 일정 전에 완료하기 위한 일정)
- 리스크 결정 (테스트 범위와 테스트를 위한)
- 테스팅의 목적에 대한 식별
- 완료 조건 결정 및 테스트에 필요한 리소스의 결정 (조직, 인원, 테스트 환경)
테스트 제어는
계획 대비 실제 진행 상황을 비교하는 지속적인 활동이다.
시간이 지나면서 업데이트될 수 있는 테스트 계획의 목적 달성을 위해 필요한 활동을 수행하는 것이다.
- 테스트 결과에 대한 측정과 분석
- 테스트 진척 상황, 테스트 커버리지와 완료 조건의 모니터링과 문서화
- 테스트 계획과의 차이를 교정
- 테스팅의 진행과 변경에 대한 의사 결정 활동
- 테스트 결과와 로그를 기반으로 컴포넌트나 시스템의 품질 수준 평가
- 추가 테스트 필요 여부 결정
2. 테스트 분석과 설계
일반적이고 추상적인 테스팅 목적을 실제적이고 구체적인 테스트 컨디션과 테스트 케이스로 변환하는 활동
테스트 분석은
테스트가 가능한 기능과 연관된 테스트 컨디션을 식별하기 위해 테스트 베이시스를 분석하는 활동
"무엇을 테스트할지"
- 테스트 베이시스 리뷰 ( 요구사항 명세서, 개발 설계 문서, 인터페이스)
- 테스트 환경 구축에 대한 디자인과 기반 시설 및 도구 식별
테스트 설계는
테스트 컨디션을 기반으로 상위 수준 테스트 케이스, 기타 테스트웨어를 생성하는 활동
"어떻게 테스트할 것인가?"
- 테스트 대상의 분석을 통해 테스트 상황 식별 및 우선순위 선정
- 테스트 컨디션과 테스트 케이스에 필요한 테스트 데이터 식별
- 테스트 환경 설계와 필요한 인프라 및 도구 식별
3. 테스트 구현과 실행
효과 및 효율적인 테스트를 실행하기 위하여 테스트 케이스를 조합하고 테스트 실행에 필요한 테스트 프로시저 또는 테스트 스크립트를 명세화하는 활동
테스트 구현은
테스트 실행에 필요한 테스트웨어를 완성하고 테스트 케이스를 배치해서 테스트 프로시저를 만드는 것
"어떻게 테스트할 것인가?"의 답변
"테스트를 실행하니 위해 필요한 모든 것이 갖춰져 있는가?"에 대한 답변
- 테스트 프로시저의 개발과 우선순위 선정
- 테스트 스위트 생성
- 테스트 데이터 준비 및 환경 확인
- 테스트 베이시스, 테스트 컨디션, 테스트 케이스, 테스트 프로시저, 테스트 스위트 간의 추적성 검증 및 업데이트
테스트 실행은
테스트 스위트를 테스트 실행 일정에 따라 실행
- 테스트 항목, 테스트 대상, 테스트 도구 등 고유번호와 버전 기록
- 테스트 실행 및 결과 기록
- 기대 결과와 실제 결과 비교
- 이상 현상 분석 및 원인 파악
4. 테스트 평가과 리포팅
초기에 정의된 테스트 목표에 비해 어느 정도 실제 테스트가 수행되었는지 평가하는 활동
- 테스트 실행 결과가 테스트 계획에 명시된 완료 조건을 만족하는지 확인
- 추가적인 테스트가 필요한지 완료 조건을 변경해야 하는지 대한 평가 수행
- 테스트 요약 보고서 작성
- 차후 재사용을 위해 테스트 환경, 테스트 인프라, 기타 테스트웨어의 마무리 및 보관
5. 테스트 마감
완료한 테스트 활동에서 데이터를 수집하여 테스트에서 발견된 사실 및 수치적 데이터와 함께 테스팅 경험과 테스트웨어를 종합하고 축적하는 활동
- 모든 결함 보고 처리를 완료했는지 확인
- 테스트 결과 마감
- 테스트웨어를 유지보수 조직에 이관
- 테스트 프로세스 성숙도 개선을 위해 수집된 정보 활용
- 차후 재사용을 위해 테스트 환경, 테스트 인프라, 기타 테스트웨어의 마무리 및 보관