[CSTS 요약정리] 3. 테스트 프로세스
테스트 프로세스 개요 3문제
테스트 프로세스
테스트 관리 프로세스
- 조직 테스트 프로세스를 기반으로 테스트 프로젝트의 수행을 관리하기 위한 프로세스
- 테스트 수행 계획을 수립하고 계획에 따른 테스트 수행을 모니터링하고 제어, 테스트 종료 활동 수행
- 계획서 작성, 현황 보고서 작성, 종료 보고서 작성
동적 테스트 프로세스
- 테스트 계획서에 따라 동적 테스트를 수행하기 위한 활동으로 구성
- 설계 및 구현 활동 수행, 테스트 환경 구축, 테스트 실행, 검출된 결함 등록, 관리
- 테스트 설계 명세서, 테스트 케이스 명세서, 테스트 절차 명세서, 환경 요건 명세서, 데이터 요건 명세서 작성,
테스트 환경 관리 보고서, 테스트 데이터 준비 보고서, 테스트 실행 로그 및 결함 보고서, 결함 추적 보고서 작성
조직 테스트 프로세스
- 조직 테스트 명세 개발 : 조직의 테스트 목표를 바탕으로 조직 테스트 정책 명세서 및 조직 테스트 전략 명세서 개발
- 조직 테스트 명세 활용 모니터링 및 제어 :
조직 테스트 명세서가 조직 내에서 효과적으로 활용되는지 모니터링하고 필요하면 테스트 관리 활동 제어 - 조직 테스트 명세 갱신 : 조직 테스트 명세서의 활용에 대한 피드백을 바탕으로 조직 테스트 명세서 개선
- 위험 관리, 테스트 선택 및 우선순위, 테스트 문서화, 형상관리, 결함관리, 자동화도구, 수행개별 테스트
테스트 산출물 간의 관계
산출물 요약
- 조직 테스트 프로세스에서는 조직 테스트 정책 명세서와 조직 테스트 전략 명세서 작성
- 테스트 관리 프로세스에서는 테스트 계획서 테스트 현황 보고서, 테스트 종료 보고서 작성
- 동적 테스트 프로세스에서는 테스트 설계 명세서, 테스트 케이스 명세서, 테스트 절차 명세서, 테스트 환경 요건 명세서, 테스트 테이터 요건 명세서, 테스트 환경 준비 보고서, 테스트 데이터 준비 보고서, 테스트 실행 로그, 결함 보고서, 결함 추적 보고서
산출물 간의 관계
- 조직 수준의 테스트에 대한 최상위 문서로 조직 테스트 정책 명세서가 개발됨
- 조직 테스트 전략 명세서를 바탕으로 동적 테스트 프로세스 수행을 위한 테스트 계획서를 개발
- 테스트 계획서는 테스트 프로젝트 수준과 실제 수행될 개별 테스트 수준에서 개발
- 개별 테스트 계획은 컴포넌트, 통합 테스트 등의 레벨 테스트 계획과 성능, 신뢰성 테스트 등의 유형테스트 계획
- 개별 테스트별로 동적 테스트 프로세스의 산출물이 작성됨
- 테스트 실행 활동에서는 테스트 절차를 실행하며 그 결과를 테스트 실행 로그에 기록
- 동적 테스트 프로세스의 수행에 대한 상황을 모니터링하여 테스트 현황 보고서를 작성
테스트 계획 7문제
테스트 컨텍스트 명세
- 테스트 계획 유형 : 테스트 계획서가 목표하는 테스트 계획의 유형을 명시
- 테스트 대상 : 테스트하고자 하는 대상을 식별하고 명확하게 기술
- 테스트 범위 : 기능 및 비기능 등 테스트하고자 하는 피처 나열
- 가정 및 제약 사항 : 표준, 정책, 전략, 일정, 비용, 인력 등 테스트를 수행할 때 반드시 고려/준수해야 할 사항 파악
- 이해관계자 : 개발팀, 마케팅팀 등 테스트 프로젝트 결과에 영향을 받는 이해관계자를 파악하고 의사소통 방법 결정
테스트 계획 유형
- 프로젝트 테스트 계획 : 테스트 대상에 대한 전체 개별 테스트를 포함하는 종합적인 계획
- 개별 테스트 계획 - 레벨 테스트 계획 :
컴포넌트/통합/시스템/인수 등 레벨 테스트의 수행에 대한 계획 - 개별 테스트 계획 - 유형 테스트 계획 :
기능 및 품질(성능, 신뢰성, 보안 등) 등 유형 테스트의 수행에 대한 계획
테스트 대상
- 컴포넌트 테스트 : 시스템을 구성하는 서브 시스템, 컴포넌트, 클래스, 함수 등의 개별적인 요소
- 통합 테스트 : 시스템을 구성하는 각 요소 간의 연결 (서브 시스템 간, 컴포넌트 간, 클래스 간, 함수 간의 연결 등)
- 시스템 테스트 : 시스템 전체
- 인수 테스트 : 시스템 전체
테스트 전략 수립
항목 | 설명 |
개별 테스트 | 프로젝트 테스트 계획에는 프로젝트 테스트를 구성하는 개별 테스트를 명시 - 개별 테스트 계획이 아닌 프로젝트 테스트 계획의 하위 요소 - 테스트 컨텍스트에서 파악한 테스트 범위를 바탕으로 결정 |
테스트 산출물 | 테스트 활동을 통해 작성할 산출물을 명시 - 테스트 관리 프로세스 산출물 테스트 계획서/ 테스트 현황 보고서/ 테스트 종료 보고서 - 동적 테스트 프로세스 산출물 테스트 설계 명세서, 테스트 케이스 명세서, 테스트 절차 명세서, 테스트 환경 요건 명세서 , 테스트 데이터 요건 명세서/ 테스트 환경 준비 보고서, 테스트 데이터 준비 보고서/ 테스트 실행 로그/ 결함 보고서, 결함 추적 보고서 |
테스트 설계 기법 | 동적 테스트, 정적 테스트 등 적용할 테스트 설계 기법 명시 |
테스트 환경 요건 | 테스트 실행을 위한 테스트 환경 요소 명시 |
테스트 데이터 요건 | 테스트 실행 시 필요한 테스트 데이터 명시 - 입력 : 규모가 크거나 복잡하면 파일이나 디비에 정의되어 참조됨 - 테스트 대상 상태 유형 : 선행 조건 명시된 상태로 설정하기 위한 테스트 데이터 필요 - 환경 항목 유형 : 환경 항목도 선행 조건에서 요구하는 상태로 설정하기 위한 데이터 필요 |
재테스팅 및 리그레션 테스팅 | 재테스팅 및 리그레션 테스팅 방법 명시 |
테스팅 중단 및 재시작 요건 | 테스트 활동을 중단하거나 다시 시작하는 조건, 재수행할 테스트 명시 |
테스트 메트릭 | 테스트 수행하면서 측정할 메트릭을 명시 |
테스트 완료 기준 | 테스트의 완료 여부를 판단할 수 있는 기준 명시 |
조직 테스트 전략과의 차이점 | 조직 테스트 전략과의 차이점과 근거 기술 |
테스트 계획 산출물
- 테스트 컨텍스트 : 테스트 계획 유형, 테스트 대상, 테스트 범위, 가정 및 제약 사항, 이해관계자
- 위험 분석 : 프로젝트 위험, 제품 위험
- 테스트 전략 : 개별 테스트, 테스트 산출물, 설계 기법, 환경 요건, 데이터 요건, 재테스팅 및 리그레션 테스팅, 테스팅 중단 및 재시작 기준, 테스트 메트릭, 완료 기준, 조직 테스트 전략과의 차이점
- 테스트 수행 계획 : 테스트 조직/인력 및 역할, 테스트 활동 및 일정, 의사소통
테스트 설계 구현 3문제
테스트 설계
피처 집합 식별
- 피처 집합은 테스트 대상에 대해 식별된 피처들의 논리적 묶음
- 피처 집합은 이후의 테스트 활동 수행 시 독립적으로 간주
피처 구체화
- 세부 피처는 각 피처에 해당되는 요구사항 명세서 등의 테스트 베이시스를 바탕으로 식별
- 이름과 더불어 테스트할 사항을 구체적으로 설명(자연어, 표, 다이어그램 등의 적합한 표현법 사용)
- 세부 피처에 대한 우선순위도 위험 분석 결과를 바탕으로 결정
테스트 전략 구체화
- 테스트 계획에서 정의된 테스트 전략을 바탕으로 각 피처 집합별로 테스트 전략을 구체화
- 피처 집합에 포함된 피처의 특성을 고려하여 테스트 전략 구체화
- 테스트 계획서의 테스트 설계 기법 구체화
- 동등 분할 : OnetoOne 동등 분할, 최소화 동등 분할, 조합 테스트 방법
- 분류 트리 기법 : 최소화 전략, 최대화 전략
- 경곗값 분석 : 2-value 경곗값 분석, 3-value 경곗값 분석
- 신택스 테스트 : OnetoOne 동등 분할, 최소화 동등 분할, 조합 테스트 방법
- 조합 테스트 : each choice 테스트, 페어와이즈 테스트, all combination 테스트, base choice 테스트
- 상태 전이 테스트 : 상태 테스트, 단일 전이 테스트, all transition 테스트, 다중 전이 테스트
- 시나리오 테스트 : 기본 시나리오 테스트, 기본/대안 시나리오 테스트
테스트 케이스 개발
- 목적 : 세부 피처를 바탕으로 테스트하고자 하는 구체적인 상황을 기술
테스트 케이스는 확인하고자 하는 매우 구체적인 상황 의미, 구체화한 세부 피처를 바탕으로 테스트 케이스 개발 - 추적성 : 테스트 베이시스의 해당 항목에 대한 참조를 나열
- 우선순위 : 우선순위가 높은 테스트 케이스를 우선적으로 실행
- 선행 조건 : 테스트 케이스가 실행되기 위한 사전 조건을 기술
- 입력 : 입력값과 입력값을 제공하는 행위를 기술
해당 입력값을 테스트 대상에 입력하는 행위도 정의할 필요 없음 - 예상 결과 : 입력에 대한 예상 출력과 동작 그리고 실제 결과와의 비교 방법을 기술
테스트 절차 개발
- 목적 : 해당 테스트 절차를 통해 테스트하고자 하는 구체적인 상황 기술
- 우선순위 : 우선순위가 높은 테스트 절차 우선 실행
- 시작 작업 : 포함된 테스트 케이스를 실행하기 위하여 준비할 작업 기술
- 테스트 케이스 목록 : 테스트 절차에 포함된 테스트 케이스를 실행 순선대로 기술
- 종료 및 정리 작업 : 테스트 실행을 종료하는 방법과 종료 후에 수행할 작업을 기술
- 다른 테스트 절차와의 관계 : 다른 테스트 절차와의 실행 순서 측면에서 관계 기술
테스트 환경 요건 명세
- 하드웨어 및 시스템 소프트웨어 환경
- 외부 연동 시스템
- 공존 소프트웨어
- 테스트 도구
- 테스트 환경 요건 명세서
테스트 데이터 요건 명세
- 테스트 대상에 대한 입력 데이터 : 테스트 케이스를 실행하는 과정에서 테스트 대상에 입력되는 데이터
- 테스트 대상의 상태 데이터 :
테스트 케이스에 명시된 선행 조건을 충족할 수 있는 특정 상태로 테스트 대상을 설정하는데 필요한 데이터
컴포넌트/통합 테스트에서도 테스트 대상인 컴포넌트를 특정 상태로 설정하기 위한 테스트 데이터를 결정할 필요 - 테스트 환경 항목의 상태 데이터 :
각 테스트 환경 항목을 테스트 케이스에서 요구하는 상태로 설정하는데 필요한 데이터
성능/신뢰성 테스트를 수행하기 위하여 사용되는 테스트 도구를 원하는 상태로 결정하기 위한 데이터도 해당
테스트 구현
테스트 데이터 준비
- 테스트 데이터 요건 명세서에 명시된 요구사항을 충족할 데이터를 확보하여 테스트 케이스가 실행되도록 지원
- 준비된 테스트 데이터가 주어진 요구사항을 충족하는지 검토
테스트 환경 구축
- 테스트 환경 요건 명세서에 명시된 테스트 환경 항목을 구축하여 테스트 대상의 실행 환경을 지원
- 테스트 환경 요건 명세서에 명시한 규격의 하드웨어를 준비
- 주어진 버전의 제품명을 가진 시스템 소프트웨어 및 공존 소프트웨어 등을 확보해서 설치
- 테스트 도구에는 테스트 도구를 올바르게 사용하기 위한 설정을 함
- 준비된 테스트 환경이 테스트 환경 요건 명세서에 명시한 요구사항을 충족하는지 확인
테스트 설계 및 구현 산출물
테스트 케이스 명세서
테스트 케이스 식별자, 목적, 추적성, 우선순위, 선행 조건, 입력, 예상 결과
테스트 절차 명세서
목적, 우선순위, 시작 작업, 테스트 케이스 목록, 종료 및 정리 작업, 다른 테스트 절차와의 관계 기술
테스트 환경 요건 명세서
이름, 설명, 요구사항, 필요시기, 담당자 기술
테스트 데이터 요건 명세서
이름, 설명, 요구사항, 초기화 필요 여부, 보관 필요 여부, 담당자 기술
테스트 환경 준비 보고서
테스트 환경 준비에 대한 전체적인 요약 기술
각 테스트 환경 항목에는 개별적으로 준비 상태 기술
테스트 데이터 준비 보고서
테스트 데이터 준비에 대한 전체적인 요약 기술
테스트 데이터에는 개별적으로 준비 상태 기술
테스트 실행 4문제
테스트 환경 구축
테스트 실행
테스트 절차 선정
- 우선순위 전략 : 피처 집합 우선순위, 테스트 케이스 우선순위, 테스트 절차 우선순위
- 테스트 완료 기준 전략
테스트 절차 실행
테스트 레벨 | 개발자 | 테스터 | 사용자 |
컴포넌트 테스트 | v | v | |
통합 테스트 | v | v | |
시스템 테스트 | v | v | v |
인수 테스트 | v | v |
테스트 결과 비교
- 테스트 절차를 구성하는 각 테스트 케이스에 대해 예상 결과와 테스트 대상의 실행 결과 비교
- 테스트 케이스에 따라 비교될 결과는 화면, 소리, 진동, 파일, 데이터 베이스 테이블, 네트워크 등
테스트 실행 기록
- 시간대별로 테스트가 수행한 세부작업을 기록
- 예상과 다른 결과가 관찰되거나 전혀 예상치 않은 이벤트가 발생하면 해당 이벤트를 구체적으로 기술
- 이 이벤트를 바탕으로 결함을 식별하고 결함 보고서를 작성하였다면 작성된 결함 보고서의 식별자를 기록
결함 보고
테스트 결과 분석
- 결함 구체화 : 재연 가능할 정도로 결함 관련 테스트 데이터, 절차, 환경 명확히 파악
- 결함 고립화 : 결함의 발생에 직접적인 영향을 미치는 구체적인 테스트 데이터, 절차, 환경 구체적이고 자세히 분석
- 결함 일반화 : 결함의 발생에 영향을 주는 요소를 최대한 일반적으로 기술
결함 기록
- 결함 컨텍스트 : 개별 테스트, 테스트 대상, 테스트 환경, 테스트 절차 및 테스트 케이스
- 결함 설명 : 실제 결과, 이상 상황
- 심각도 : 검출된 결함이 미칠 수 있는 영향의 범위와 크기를 바탕으로 심각도 기술
- 우선순위 : 검출된 결함 해결의 긴급성 기술, 대부분 조직은 3~5단계 정도로 우선순위 부여
- 위험 분석 : 결함 관련 새로운 위험 분석 결과, 기존 위험의 갱신 상태(발생 가능성, 영향도)에 따른 위험도의 변경
- 결함 상태 : 검출된 결함에 대한 조치 상태를 기록(결함 추적)
결함 추적
결함 생명 주기
- open : 테스터가 테스트 절차를 실행하여 발견한 결함을 분석 후 구체화, 고립화, 일반화로 보고한 상황
- review : open 된 결함의 처리 방안을 검토하는 상태
- deferred : open 된 결함을 곧바로 수정하지 않고 다음 릴리스에서 해결하기로 연기된 상태
- assigned : 결함을 해결하기로 결정된 상태에서 수정할 개발자가 결정되고 그 개발자에게 해결이 요구된 상태
- resolved : 개발자가 자신에게 할당된 수정 해결을 처리한 상태
fixed, duplicate, won't fix, invalid
개발자가 요청된 결함을 수정(fixed)한 경우, 요청된 결함이 기존의 다른 결함과 중복되는 경우가 있음(duplicate)
긴급한 것이 아니라 수정하지 않는 경우(won't fix), 결함 보고(테스트 케이스, 절차)에 문제가 있는 경우(invalid) - verified : 개발자의 결함 처리가 합당한지 정확한지 검증이 된 상태
- reopen : 결함이 정확하게 수정되지 않은 경우
테스트 모니터링/제어 및 종료 4문제
테스트 모니터링 및 제어
각 동적 테스트 프로세스의 수행 상황을 테스트 메트릭을 이용하여 파악
테스트 모니터링
- 모니터링을 통해 테스트 활동의 실제 진척도가 수립된 테스트 계획과 차이가 있는지 파악
- 테스트 활동 모니터링을 수행하면서 위험 관리 작업 수행
- 테스트 계획에서 결정된 메트릭을 이용하여 테스트 상황에 대한 정량적인 모니터링을 할 수 있음
- 테스트 산출물 중 결함 보고서와 결함 추적 보고서가 테스트 모니터링 측면에서 중요한 역할을 함
테스트 활동 제어
- 동적 테스트 활동의 시작 : 테스트 계획서에는 동적 테스트 프로세스 또는 동적 테스트 활동에 대한 시작 조건 정의
- 동적 테스트 활동의 종료 : 동적 테스트 프로세스 또는 활동의 종료 조건이 만족되면 해당 테스트 활동 종료
- 테스트 계획과의 차이 : 실제 테스트 진행 상황이 테스트 계획서의 일정과 상이하면 해결하기 위한 작업 수행
- 위험 관리 : 새로운 위험이 식별되거나 기존 위험에 변동이 발생하면 테스트 활동을 적절히 제어
- 테스트 컨텍스트 관점의 테스트 활동 제어, 테스트 전략 관점의 테스트 활동 제어, 테스트 수행 계획 관점의 테스트 활동 제어
테스트 현황 보고
- 보고 대상 기간 : 보고의 대상이 되는 테스트 활동의 기간 기술
- 계획 대비 진척도 : 테스트 계획서에 정의된 계획을 기준으로 한 진척도 기술
계획 대비 지체되는 작업이 있으면 그 원인을 분석하고 테스트 프로젝트에 미칠 수 있는 영향 기술 - 테스트 메트릭 : 보고 대상 기간 동안의 테스트 활동에 대한 메트릭 측정값 기술
- 신규 및 변경 위험 : 금번 보고 대상 기간 동안에 새롭게 식별된 위험에 대한 분석 결과 기술
기존 위험 변경(위험의 해소, 발생 가능성 변경) 등을 기술 - 이후 테스트 계획 : 다음 보고 시점까지 수행할 테스트 활동에 대한 계획 기술
수행을 지체시킨 요인에 대한 조치, 새롭게 발견된 위험에 대한 회피, 완화, 전가, 수용 등의 조치 계획 포함
테스트 종료
테스트가 종료되면 테스트 수행 중 생성된 산출물 관리
테스트 종료 보고서
테스팅 요약, 계획 대비 차이점, 테스트 방해 요인, 테스트 메트릭, 결함 목록, 잔존 위험, 테스트 완료 평가, 테스트 산출물, 재사용 가능한 테스트 자산, 교훈