**용어 설명**
리그레션 테스팅: 반복 테스팅
테스트웨어: 테스트 산출물
테스트 차터: 테스트 세션의 목적 또는 목표를 설명하는 문서
테스트 환경: 테스트 수행에 필요한 하드웨어, 계측, 시뮬레이터, 소프트웨어 도구 그리고 기타 자원 요소를 포함하고 있는 환경
테스트 하네스: 테스트 스위트를 실행하는데 필요한 스텁 및 드라이버 모음
테스트 대상이 실행되는 환경을 시뮬레이션함으로써 컴포넌트나 시스템 일부에 대한 테스팅을 가능하게 한다.
테스트 스위트: 특정 테스트 실행에서 실행될 일련의 테스트 스크립트 또는 테스트 절차
테스팅은 정황에 의존적이지만, 그에 관계없이 테스트 목적을 달성하기 위해 필요한 보편적인 테스트 활동들이 있다. 이런 테스트 활동이 테스트 프로세스를 구성하게 된다.
테스트 프로세스는 여러 요인을 기반으로 주어진 상황에 맞게 조정될 수 있다.
테스트 프로세스에 포함될 테스트 활동과 그러한 활동의 구체적인 수행 방법과 시기는 보통 해당 상황에 필요한 테스트 계획을 짤 때 결정한다.
순차적으로 수행되는 것 처럼 보일 수 있으나 실제로는 반복적 또는 병렬로 구현되는 경우가 많다.
테스팅 활동은 일반적으로 시스템과 프로젝트에 맞게 조정한다.
테스트 계획(Test planning)
테스트 모니터링과 제어(Test monitoring and control)
테스트 분석(Test analysis)
테스트 설계(Test design)
테스트 구현(Test implementation)
테스트 실행(Test execution)
테스트 완료(Test completion)
테스팅은 단독으로 수행되지 않는다.
테스팅 비용은 이해관계자가 부담하게 되며, 테스팅의 최종 목표는 이해관계자의 비즈니스 목표 달성을 지원하는 것이다.
따라서 수행 방식은 다음과 같은 여러 정황 요소에 따라 달라진다.
이런 요소는 테스트 전략, 적용된 테스트 기법, 테스트 자동화 수준, 필요 커버리지 수준, 테스트 문서 상세화 수준, 보고 등 많은 테스트 관련 문제에 영향을 미친다.
테스트웨어는 테스트 활동의 결과물로 만들어진다. 조직마다 테스트웨어를 생성/구체화/명명/구성/관리하는 방식에 상당한 차이가 있다.
적절한 형상관리는 작업 산출물의 일관성과 무결성을 보장한다.
- 테스트 계획 작업 산출물
테스트 계획, 테스트 일정, 리스크 관리 대장, 시작 및 완료 조건을 포함한다.
리스크 관리 대장은 리스크 발생 가능성, 리스크 영향도, 리스크 완화 정보가 들어있는 리스크 목록이다.
테스트 일정, 리스크 관리 대장, 시작 및 완료 조건은 종종 테스트 계획서에 들어간다.
- 테스트 모니터링과 제어 작업 산출물
테스트 진행 상황 보고서, 제어 지침 문서, 리스크 정보를 포함한다.
- 테스트 분석 작업 산출물
우선순위가 지정된 테스트 컨디션, (바로 수정하지 않았다면) 테스트 베이시스의 결함에 관한 결함 보고서
- 테스트 설계 작업 산출물
우선순위가 지정된 테스트 케이스, 테스트 차터, 커버리지 항목, 테스트 데이터 요구사항, 테스트 환경 요구사항을 포함한다.
- 테스트 구현 작업 산출물
테스트 절차, 자동 테스트 스크립트, 테스트 스위트, 테스트 데이터, 테스트 실행 일정, 테스트 환경 요소를 포함한다.
테스트 환경 요소의 예로는 스텁(stubs), 드라이버, 시뮬레이터, 서비스 가상화 등이 있다.
- 테스트 실행 작업 산출물
테스트 로그, 결함 보고서를 포함한다.
- 테스트 완료 작업 산출물
테스트 완료 보고서, 향후 프로젝트 또는 반복 주기 때 개선할 실천 항목, 문서로 기록한 교훈, 변경 요청서가 포함된다.
효과적인 테스트 모니터링과 제어를 구현하려면 테스트 프로세스 전반에 걸쳐 테스트 베이시스의 개별 요소, 개별 요소와 관련된 테스트웨어, 테스트 결과, 식별한 결함 간의 추적성을 구축하고 유지하는 것이 중요하다.
정확한 추적성은 커버리지 평가를 지원하며, 측정 가능한 커버리지 조건이 테스트 베이시스에 정의되어 있다면 매우 유용할 수 있다. 커버리지 조건은 테스트 목적을 어느정도 달성했는지 나타내는 활동들을 촉진하는 핵심 성과 지표로 사용될 수 있다.
좋은 추적성 5가지
추적성은 비즈니스 목표 대비 제품 품질, 프로세스 역량, 프로젝트 진행 상황 등을 평가할 수 있는 정보를 제공한다.
실러버스에서는 테스트 관리 역할과 테스팅 역할을 다룬다.
두 역할에 할당되는 활동과 업무는 프로젝트 및 제품의 정황, 역할 담당자의 기술 수준, 조직 상황 등의 요소에 따라 달라진다.
테스트 프로세스, 테스트 팀 그리고 테스트 활동 리더십에 대한 전반적인 책임을 진다.
테스팅의 공학(기술)적인 측면에 대한 전반적인 책임을 진다.

