11장 테스트 프로세스 개요
테스트 프로세스 필요성
- 소프트웨어 품질 목표 달성에 프로세스가 중요한 역할을 함
- 효율적이고 효과적인 테스트 수행을 위한 관리의 중요성이 부각 됨
- 주어진 시간과 비용이라는 제약하에서 기대하는 테스트의 효과를 달성하려면 테스트를 체계적인 방식으로 수행할 필요가 있음
- 평가를 통한 테스트 활동 개선을 통해 테스트의 효과와 효율을 높여야 함
테스트 프로세스 개요
- 조직 테스트 프로세스 : 조직 전체에 공통적으로 적용되는 조직 테스트 명세서를 개발하고 관리하는 것이 목적
- 테스트 관리 프로세스 : 조직 테스트 프로세스를 기반으로 테스트 프로젝트의 수행을 관리하기 위한 프로세스
- 동적 테스트 프로세스 : 테스트 계획서에 따라서 동적 테스트를 수행하기 위한 활동
11.2 조직 테스트 프로세스
조직 전체에 공통적으로 적용되는 조직 테스트 명세서를 개발하고 관리하는 것이 목적
1️⃣ 개발된 조직 테스트 명세서는 테스트 관리 프로세스에 적용됨
즉, 조직 테스트 정책 명세서 및 조직 테스트 전략 명세서는 테스트 관리 프로세스의 테스트 계획 활동에서 활용됨
2️⃣ 조직 테스트 명세서는 실제 수행된 테스트 프로젝트의 수행 성과를 바탕으로 갱신됨
조직 테스트 명세 개발
- 조직 테스트 정책 명세서 : 최상위 수준의 명세로서 조직 차원의 테스트 목적과 원칙을 정의하며 테스트를 수행하는 구체적인 방법은 언급하지 않음
- 조직 테스트 전략 명세서 : 조직에서 수행할 테스트 프로젝트에 대한 기본적인 지침을 정의함
- 프로젝트 수준의 전략
- 개별 테스트 수준의 전략
조직 테스트 정책
- 조직 차원의 테스트 목적과 원칙을 정의
- 조직 테스트 정책은 최상위 수준에서 테스트 명세를 정의하는 것
- 테스트를 수행하는 구체적인 방법은 조직 테스트 전략에서 정의됨
조직 테스트 정책 항목
- 테스트 목적
- 테스트 프로세스
- 테스트 조직 및 역할
- 테스트 표준
- 테스트 자산 관리
- 테스트 프로세스 개선
프로젝트 수준의 조직 테스트 전략
- 다양한 개별 테스트에 공통적으로 적용될 수 있는 전략
프로젝트 수준의 조직 테스트 전략 항목
- 위험 관리
- 위험 분석
- 위험 조치 수행 : 무시할 수 없는 위험 요소 중 조치 작업이 필요하다고 평가된 각 위험 요소에 대해서는 적절한 조치 작업이 계획되고 수행되어야 함
- 위험 회피 : 위험 요소를 원천적으로 제거
- 위험 완화 : 위험 발생 가능성을 낮추거나 발생에 따른 영향도를 축소시키는 방안 마련
- 위험 전가 : 위험에 해당되는 기능 및 비기능 피처에 대한 테스팅을 아웃소싱
- 위험 수용 : 상황에 따라서는 위험에 대한 특별한 조치 없이 모니터링만 할 수도 있음
- 비상 계획 : 위험 회피, 완화, 전가 조치가 불가능하거나 실패하여 위험 요소가 발생하였을 경우에 취할 조치
- 위험 모니터링
- 테스트 선택 및 우선순위
- 테스트 문서화
- 형상 관리
- 결함 관리
- 자동화 도구
- 수행 개별 테스트
개별 테스트 수준의 조직 테스트 전략
- 프로젝트 수준의 조직 테스트 전략에 명시된 개별 테스트 별로 수립될 전략을 의미
개별 테스트 수준의 조직 테스트 전략 항목
- 테스트 독립성
- 테스트 문서화
- 테스트 시작 및 종료 조건
- 테스트 설계 기법
- 테스트 환경 및 테스트 데이터
- 재테스팅 및 리그레션 테스팅
- 테스트 메트릭
- 테스트 완료 기준
11.3 테스트 관리 프로세스
테스트 관리 프로세스
- 프로젝트 테스트 및 프로젝트 테스트를 구성하는 레벨 테스트와 유형 테스트의 수행을 관리하는 것이 목적
- 테스트 계획 : 테스트 대상과 범위를 식별하고 조직 테스트 프로세스를 참고하여 테스트 전략을 수립
- 테스트 모니터링 및 제어 : 동적 테스트 프로세스의 수행을 모니터링하여 테스트 상황을 파악하고 필요시 테스트 활동을 제어
- 테스트 종료 : 테스트가 종료되면 생성된 산출물을 관리하고 테스트 환경을 정리하고 테스트 종료 보고
11.4 동적 테스트 프로세스
동적 테스트 프로세스
- 테스트 계획에서 정의된 테스트 대상, 테스트 범위 그리고 테스트 전략을 바탕으로 동적 테스트 프로세스가 수행
- 테스트 설계 및 구현 : 테스트 계획에서 식별된 테스트 범위와 테스트 전략에 따라 테스트 케이스, 테스트 절차 등을 개발
- 테스트 환경 구축 및 관리 : 테스트 실행을 위한 테스트 환경과 테스트 데이터를 준비
- 테스트 실행 : 테스트 절차를 실행하고 테스트 실행 결과를 기록
- 결함 보고 : 테스트 실행 결과에 대한 분석을 바탕으로 결함을 식별하고 기록
12장 테스트 계획
테스트 계획
- 테스트 관리 프로세스의 시작 활동, 동적 테스트를 효과적이고 효율적으로 수행하기 위한 계획 수립이 목적
- 테스트 목적을 달성하기 위한 테스트 컨텍스트를 설정, 다양한 측면에서 적절한 테스트 전략을 수립하고 테스트 수행을 위한 계획 수립
- 조직 테스트 프로세스의 결과물을 바탕으로 수립되며 동적 테스트 프로세스 수행을 위한 제반사항을 포함
테스트 계획 구성 항목
- 테스트 컨텍스트 명세 : 테스트 대상, 테스트 범위 등 테스트 수행의 배경이 되는 다양한 요소를 식별하고 명세
- 위험 분석 : 테스트 프로젝트의 목적 달성에 방해가 될 수 있는 제품 및 프로젝트 유형의 위험 요소를 식별하고, 분석하여 조치 계획을 수립
- 테스트 전략 수립 : 테스트 산출물, 테스트 설계 기법, 테스트 환경 요건 및 테스트 데이터 요건 등 테스트를 효과적이고 효율적으로 수행하기 위한 다양한 전략을 결정
- 테스트 수행 계획 수립 : 테스트 조직/인력과 역할, 테스트 활동 및 일정 등의 수행 계획을 수립
12.2 테스트 컨텍스트 명세
테스트 컨텍스트 항목
- 테스트 계획 유형
- 테스트 대상
- 테스트 범위
- 가정 및 제약 사항
- 이해관계자
12.3 위험 분석
위험 조치 작업
- 위험 회피 : 위험 요소를 원천적으로 제거
- 위험 완화 : 위험 발생 가능성을 낮추거나 발생에 따른 영향도를 축소시키는 방안 마련
- 위험 전가 : 위험에 해당되는 기능 및 비기능 피처에 대한 테스팅을 아웃소싱
- 위험 수용 : 상황에 따라서는 위험에 대한 특별한 조치 없이 모니터링만 할 수도 있음
- 비상 계획 : 위험 회피, 완화, 전가 조치가 불가능하거나 실패하여 위험 요소가 발생하였을 경우에 취할 조치
프로젝트 위험 : 테스트 수행과 관련된 위험으로 조직, 인력, 예산, 일정 등과 관련
제품 위험 : 기능 및 비기능 측면에서 제품이 목표로 하는 수준의 품질을 제공하지 못할 위험
12.4 테스트 전략 수립
테스트 전략 항목
- 개별 테스트 : 프로젝트 테스트 계획에는 프로젝트 테스트를 구성하는 개별 테스트를 명시
- 테스트 산출물 : 테스트 활동을 통해서 작성할 산출물을 명시
- 테스트 설계 기법 : 동적 테스트, 정적 테스트 등 적용할 테스트 설계 기법을 명시
- 테스트 환경 요건 : 테스트 실행을 위한 테스트 환경 요소를 명시
- 테스트 데이터 요건 : 테스트 실행 시 필요한 테스트 데이터를 명시
- 재테스팅 및 리그레션 테스팅 : 재테스팅 및 리그레션 테스팅 방법 명시
- 테스팅 중단 및 재시작 조건 : 테스트 활동을 중단하거나 다시 시작하는 조건 명시
- 테스트 메트릭 : 테스트를 수행하면서 측정할 메트릭을 명시
- 테스트 계획 활동 메트릭 : 테스트 대상 수, 피처 수
- 테스트 설계 및 구현 활동 메트릭
- 피처 집합 수, 테스트 케이스 수, 테스트 절차 수, 테스트 환경 항목 수, 테스트 데이터 수
- 커버리지
- 설계 커버리지(아래 참고)
- 테스트 환경 구축 및 관리 활동 메트릭
- 테스트 환경 구축률, 테스트 데이터 준비율
- 테스트 실행 활동 메트릭
- 실행된/통과된/실패 테스트 케이스 수
- 커버리지
- 결함 보고 활동 메트릭
- 검출 결함 수, 검출 결함 밀도, 상태별 결함 수
- 결함 나이 : 결함이 보고되고 종료될 때까지 걸린 시간
- 테스트 완료 기준 : 테스트의 완료 여부를 판단할 수 있는 기준을 명시
- 조직 테스트 전략과의 차이점 : 조직 테스트 전력과의 차이점과 근거를 기술
* 설계 단위 커버리지
12.5 테스트 수행 계획 수립
테스트 수행 계획 항목
- 테스트 조직/인력 및 역할
- 테스트 활동 및 일정
- 의사소통
테스트팀 역할과 담당자 예
- 테스트 관리자
- 테스트 계획 관리
- 테스트 통제
- 테스트 종료 관리
- 테스트 리더
- 테스트 계획 수립
- 테스트 모니터링
- 테스트 현황 보고
- 테스트 종료
- 테스트 분석가
- 위험 분석
- 테스트 전략 수립
- 테스트 설계자
- 테스트 설계
- 테스트 케이스 개발
- 테스트 절차 개발
- 테스트 환경 요건 명세
- 테스트 데이터 요건 명세
- 테스트 환경 전문가
- 테스트 환경 구축
- 테스트 데이터 준비
- 테스트 수행자
- 테스트 실행
- 결함 보고
테스트 리소스 할당 및 일정 수립
- 테스터 역량을 고려해 테스트 업무를 배정
- 테스트 업무량 도출 후 테스트 가용 인원을 배치
- 테스트 자동화 도구 사용 시 전문 지식과 경험이 필요하므로 이를 고려해 테스터 배정
- 조직 내에 특정 테스트 업무를 수행할 테스터가 없다면, 외부에서 전문가를 찾음
13장 테스트 설계/구현 및 테스트 환경 구축/관리
테스트 설계 및 구현
- 테스트 계획서를 바탕으로 테스트 범위와 테스트 전략을 구체화
- 이를 바탕으로 테스트 케이스 및 테스트 절차를 개발
- 테스트 절차를 실행 할 수 있는 테스트 환경 및 테스트 데이터에 대한 요건 정의
테스트 환경 구축 및 관리
- 테스트 설계 및 구현 활동에서 정의된 테스트 환경 요건과 테스트 데이터 요건에 따라서 테스트 환경과 테스트 데이터 준비함으로써 테스트 실행 활동이 시작될 수 있도록 함
13.2 테스트 설계 및 구현
테스트 설계
- 피처 집합 식별
- 피처 구체화
- 세부 피처의 내용으로 무엇을 테스트할지 기술
- 세부 피처의 우선순위 기술
- 세부 피처의 내용에 대한 테스트 베이시스와 해당 항목에 대한 참조 나열
- 테스트 전략 구체화
- 테스트 설계 명세서
- 목적 : 해당 피처 집합을 통해서 확인하고자 하는 테스트 대상에 대한 목표 및 범위를 간략하게 기술
- 우선순위 : 해당 피처 집합에 대한 우선순위를 기술
- 추적성 : 해당 피처 집합에 포함된 피처의 테스트 베이시스에 대한 참조 사항 나열
- 구체적 테스트 전략 : 해당 피처 집합에 대하여 적용하고자 하는 테스트 설계 기법, 테스트 환경 요건, 테스트 데이터 요건, 테스트 완료 기준 등 구체화된 테스트 전략을 기술
- 피처 목록 : 해당 피처 집합에 포함된 피처들을 나열, 각 피처에 대해서는 세부 피처들을 기술
테스트 케이스 개발
- 테스트 케이스 항목
- 목적 : 세부 피처를 바탕으로 테스트하고자 하는 구체적인 상황을 기술
- 추적성 : 테스트 베이시스의 해당 항목에 대한 참조를 나열
- 우선순위 : 우선순위를 기술. 우선순위가 높은 테스트 케이스를 우선적으로 실행
- 선행 조건 : 테스트 케이스가 실행되기 위한 사전 조건을 기술
- 입력 : 입력값과 입력값을 제공하는 행위를 기술
- 예상 결과 : 입력에 대한 예상 출력과 동작 그리고 실제 결과와의 비교 방법을 기술
테스트 절차 개발
테스트 환경 요건 명세
- 테스트 환경 요건
- 테스트 대상 요소가 실행될 수 있는 하드웨어 및 시스템 소프트웨어 환경이 정의되어야 함
- 구체적인 규격이 정의되어야 함
- 시스템 테스트 수준에서는 가능하다면 운영 환경에 근접한 환경을 구성하는 것이 권장됨
- 컴포넌트 테스트 수준에서는 개발자 환경에서 테스트를 수행하는 것이 일반적
- 외부 연동 시스템
- 공존 소프트웨어
- 테스트 도구
- 테스트 환경 요건 명세서
- 테스트 환경 항목명
- 설명 : 해당 테스트 환경 항목이 어떤 목적으로 활용되는지를 기술
- 요구사항 : 해당 테스트 환경 요건에 대한 구체적인 요건을 기술
- 필요 시기 : 해당 테스트 환경 항목이 필요한 시점과 사용되는 기간 기술
- 담당자 : 책임지는 담당자 기술
테스트 데이터 요건 명세
- 테스트 데이터 요건
- 테스트 대상에 대한 입력 데이터
- 테스트 대상의 상태 데이터
- 테스트 환경 항목의 상태 데이터
- 테스트 데이터 요건 명세서
- 테스트 데이터명
- 설명 : 테스트 데이터가 어떤 목적으로 활용되는지 기술
- 요구사항 : 해당 테스트 데이터에 관한 요건을 기술
- 초기화 필요 여부 : 테스트를 수행하는 도중에 테스트 데이터를 초기화할 필요가 있는지 기술
- 보관 필요 여부 : 테스트가 종료된 후에 테스트 데이터 보관 및 폐기 여부를 기술하고 그 방법도 기술
- 담당자 : 책임지는 담당자 기술
13.3 테스트 환경 구축 및 관리
테스트 환경 구축 : 테스트 환경 요건 명세서에 명시된 각 테스트 환경 항목을 구축
테스트 데이터 준비 : 테스트 데이터 요건 명세서에 명시된 테스트 데이터를 준비
14장 테스트 실행 및 결함 보고
테스트 실행
- 주어진 테스트 절차 중에서 실행하고자 하는 테스트 절차를 선정
- 선택된 테스트 절차를 실행하고 테스트 결과를 비교하며 그 결과를 테스트 실행 로그로 기록
결함 보고
- 테스트 실행 로그를 바탕으로 테스트 결과를 분석하여 결함을 식별
- 식별된 결함을 결함보고서로 기록
- 식별된 결함이 해결되고 종료될 때까지의 과정을 결함 추적 보고서에 기록
14.2 테스트 실행
테스트 절차 선정 : 수많은 테스트 케이스들 중에서 어떤 것을 먼저 실행할지 결정이 필요
- 우선순위 전략 : 효율적인 테스트를 수행하기 위해 우선순위를 활용
- 피처 집합 우선순위
- 테스트 케이스 우선순위
- 테스트 절차 우선순위
- 테스트 완료 기준 전략 : 테스트 완료 기준 달성에 가장 큰 기여를 할 수 있는 테스트 절차를 먼저 실행하는 것이 바람직
테스트 절차 실행
- 테스트 절차를 선택한 후, 구축된 테스트 환경에서 선택된 테스트 절차를 실행
- 테스트를 실행하는 주체는 테스트 레벨에 따라서 달라질 수 있음
테스트 실행 주체
테스트 레벨 | 개발자 | 테스터 | 사용자 |
컴포넌트 테스트 | O | O | |
통합 테스트 | O | O | |
시스템 테스트 | O | O | O |
인수 테스트 | O | O |
테스트 결과 비교
테스트 실행 기록
14.3 결함 보고
인시던트 : 예기치 못한 사건, 사고, 문제, 또는 이슈를 나타내는 용어로 예기치 못한 서비스 또는 기능이 오작동 하거나 매출 손실을 발생시키는 것
테스트 결과 분석
- 결함의 구체화 : 발견된 결함을 재연 가능할 정도로 결함 관련 테스트 데이터, 테스트 절차, 테스트 환경이 명확히 파악되어야 함
- 결함의 고립화 : 결함 발생의 구체적인 상황을 파악하기 위해 결함의 발생에 영향이 미치는 것으로 추정되는 중요 요소를 바꿔가며 테스트 수행
- 결함의 일반화 : 결함의 발생에 영향을 주는 요소를 최대한 일반적으로 기술
결함의 기록
- 결함 컨텍스트 : 어떤 상황에서 해당 결함이 식별되었는지 기술
- 개별 테스트
- 테스트 대상
- 테스트 환경
- 테스트 절차 및 테스트 케이스
- 결함 설명 : 목격된 결함이 재연되고 해결될 수 있도록 상세하게 기술
- 심각도 : 발견자의 관점에서 볼 때 기술적인 측면과 비지니스적인 측면을 모두 고려하여 검출된 결함이 미칠 수 있는 영향의 범위와 크기를 바탕으로 심각도를 기술
- 우선순위 : 검출된 결함 해결의 긴급성을 기술
- 위험 분석 : 검출된 결함과 관련된 새로운 위험에 대한 분석 결과를 기술
- 결함 상태 : 검출된 결함에 대한 조치 상태를 기록
결함 추적
- 결함 생명 주기
15장 테스트 모니터링/제어 및 테스트 종료
테스트 모니터링 및 제어
- 각 동적 테스트 프로세스의 수행 상황을 테스트 메트릭을 이용하여 파악
- 필요하다면 적절한 조치를 결정하고 모니터링 및 제어 현황을 테스트 현황 보고서에 기록
- 테스트 계획서에서 정의된 테스트 종료 기준이 충족되는 경우에는 테스트 종료 활동을 시작
테스트 종료
- 테스트가 종료되면 테스트 수행 중 생성된 산출물을 관리
- 테스트 환경을 약속된 상태로 정리하고 수행한 테스트 작업들과 그 결과를 테스트 종료 보고서에 기록
15.2 테스트 모니터링 및 제어
테스트 모니터링 및 제어
- 계획된 일정에 따라 테스트가 진행되고 있는지 조사
- 테스트 종료 기준을 만족하면 테스트 활동을 종료하도록 승인
- 계획 대비 차이가 있다면 계획된 테스트 활동을 조정
- 측정되고 수집된 테스트 지표를 통해 테스트 계획 대비 진척도를 모니터링
- 정기적 또는 비정기적으로 회의를 통해 테스트 진행 상태를 확인
테스트 모니터링
- 테스트 활동에 대한 모니터링을 수행하면서 위험 관리 작업도 수행
- 테스트 계획과 활동에 차이가 있다면 테스트 진척도를 지연시키는 원인을 분석
- 모니터링을 통해서 테스트 활동의 실제 진척도가 수립된 계획과 차이가 있는지 파악
- 테스트 계획에서 결정된 메트릭을 이용하여 테스트 상황에 대한 정량적인 모니터링을 수행
테스트 활동 제어
- 동적 테스트 활동의 시작을 결정
- 동적 테스트 활동의 종료를 결정
- 테스트 계획과의 차이를 보완하기 위한 작업을 결정
- 위험 관리 : 새로운 위험이 식별되거나 기존 위험에 변동이 발생하면 테스트 활동을 적절히 제어할 필요가 있음
테스트 현황 보고
- 보고 대상 기간
- 계획 대비 진척도
- 테스트 메트릭
- 신규 및 변경 위험
- 이후 테스트 계획
15.3 테스트 종료
테스트 종료
- 테스트 프로젝트에서 생성된 결과물을 이후 테스트 프로젝트에서도 재사용될 수 있도록 테스트 자산으로 관리
- 테스트 프로젝트에서 사용되었던 다양한 환경 요소들을 약속된 상태로 정리
- 수행된 테스팅 작업과 그 결과를 종료 보고서에 기록
- 미해소된 위험에 대하여 해소되지 않은 이유와 품질에 미치는 영향을 분석
테스트 종료 조건
- 테스트 수행 결과
- 잔여 결함 수준
- 고객의 승인 여부
테스트 종료 보고 항목
- 테스트 요약
- 종료 보고서 작성 대상이 되는 테스트 대상 나열
- 테스트 대상별로 관련된 테스트 계획서, 테스트 설계 명세서, 테스트 케이스 명세서 등을 명시
- 테스트를 실행한 테스트 환경을 간략히 기술
- 수행된 테스트의 전반적인 결과를 간략히 기술
- 계획 대비 차이점
- 테스트 방해 요인
- 테스트 메트릭
- 결함 목록
- 잔존 위험
- 테스트 완료 평가
- 테스트 산출물
- 재사용 가능한 테스트 자산
- 교훈
16장 테스트 평가 및 개선
테스트 평가 및 개선
- 테스트 종료 후 테스트 활동의 효과성과 효율성에 대해 평가
- 향후 수정되어야 할 테스트 프로세스 활동에 대한 검토 및 분석 의견을 제시
- 새롭게 적용된 활동 및 도구/기법에 대한 평가를 수행
- 발견된 오류 유형을 통해 각 단계별 테스트 기법을 평가
16.2 테스트 활동 평가
테스트 케이스 기반 메트릭
- 테스트 케이스 실패율
- 테스트 케이스 효율성
결함 기반 메트릭
- 검출된 결함의 수
- 검출 결함 밀도
- 결함 검출 비율
- 결함 구속 효율성
16.3 테스트 활동 개선
16.4 테스트 프로세스 평가 모델
프로세스 역량 레벨
- 레벨 0 - 미완료 수준 : 프로세스가 이행되지 않거나 프로세스 목적을 달성하지 못함
- 레벨 1 - 수행 수준 : 프로세스의 목적을 달성하는 정도
- 레벨 2 - 관리 수준 : 수행된 프로세스가 관리되는 정도, 작업 산출물이 적절하게 관리되는 정도
- 레벨 3 - 확립 수준 : 프로세스 성과를 달성할 수 있는 정의된 프로세스를 사용하여 이행되는 정도
- 레벨 4 - 예측 수준 : 프로세스 성과를 달성하기 위해 정의된 제한 내에서 운용되는 정도
- 레벨 5 - 혁신 수준 : 예측 가능한 프로세스가 조직의 변경에 대응하기 위해 지속해서 혁신 목적을 달성하는 정도
📚 참고 문헌 : 소프트웨어 테스트 전문가(CSTS) 가이드
'SW 테스팅 > CSTS' 카테고리의 다른 글
[CSTS] PART 02. 테스트 설계기법 (2) | 2024.10.07 |
---|---|
[CSTS] PART 01. 테스트 개요 (0) | 2024.10.06 |