5.3.1 테스트 경과 모니터링
▶테스트 모니터링 목적
- 테스트 활동에 대한 피드백과 가시성을 제공하여 테스트 계획, 또는 조직 차원의 테스트 정책이나 전략을 준수하는지 관찰.
- 테스트 케이스 작성률 : 계획 대비 완료된 테스트 케이스의 비율
- 테스트 환경 구축률 : 완료된 테스트 환경 구축 작업 비율
- 테스트 케이스 실행 관련 메트릭 : 실행된 테스트 케이스의 비율
- 통과되거나 실패된 테스트 케이스 수 : 결함 밀도, 발견된 결함과 수정된 결함, 장애율, 재 테스트 결과
- 요구사항, 리스트, 코드의 테스트 커버리지
- 제품에 대한 테스터의 주관적 자신감
- 테스트 마일스톤
- 테스팅 비용 관련 메트릭 : 비용 들여 추가 진행에 대한 이득 비
5.3.2 테스트 리포팅
▶ 테스트 리포팅
- 테스팅 동안의 노력 및 활동에 대한 정보 및 제품의 결함 정보를 요약하여, 이해관계자의 의사결정을 지원할 목적으로 보고서를 작성하고 보고하는 활동
- 진행 보고서 : 주요 시점에 현재 상황을 보고
>> 주간, 월간 보고서(제품 품질, 테스트 생산성, 리스크, 프로세스 품질 등)
- 종료 보고서 : 특정 테스트 유형 및 레벨이 종료되는 시점 보고
>> 테스팅 기간 동안 처리했던 주요 업무
>> 향후 업무에 대한 의사결정을 위해 의미 있게 분석된 정보와 메트릭
- 테스트 계획 단계에서 미리 계획하고 설계 --> 완성도 올라감.
▶ 결함 관련 메트릭 (메트릭 : 수치로 표현할 수 있는 측정)
- 평균 결함 건수
- 심각도별 결함 건수
- 결함유형별 분포 비율
- 결함 조치율
- 발견 단계별 분포 비율
▶ 결함 발생 이유
- 표준 미준수, 테스트 부족, 마무리 부족, 팀 간 의사소통 부족, 코딩 실수 등.
▶ 결함 유형
- 시스템 오작동
- 시스템이 멈추거나 다운됨
- 예상치 못한 시스템의 동작이나 반응
- 시스템이 가지고 있어야 할 기능, 성능 특성의 누락이나 불완전한 경우
- 문서화 결함
- 사용용이성 저하
- 선능 저하
- 데이터 훼손 및 데이터 무결성 깨짐
- 데이터 손실
- 수집된 메트릭의 활용
>> 해당 테스트 레벨에 대한 테스트 목적의 적절성 평가
>> 사용된 테스트 접근법의 적절성 평가
>> 목적 대비 테스팅의 효과성 평가
▶테스트 진행 보고서
- 테스트 진행 중 합의사항과 근시일 내에 진행할 테스트 활동에 대한 내용을 포함.
>> 소프트웨어 품질, 테스트 생산성, 소프트웨어 제품 리스크, 테스트 프로세서 품질, 테스트 문제점 등.
▶ 테스트 종료 보고서
- 레벨별 종료 보고서와 프로젝트 종료 보고서로 나뉨
- 테스트 계획 대비 차이
- 오픈되어 있는 제품 리스크와 예상되는 영향
- 해결되지 않은 결함과 그로 인해 예상되는 영향
- 시스템 파트의 현 상태와 커버된 리스크
- 테스트 프로세서 품질
- 테스트 프로젝트 수행 경험
- 다음번 테스트에 대한 조언
▶ 테스트 보고서 활용
- 어플리케이션 출시 여부
- 결함의 심각도 및 유형 파악
- 요구사항에 대한 테스트 커버리지 확인
- 어플리케이션 품질 결정
- 다음 단계의 테스트를 위한 테스트 주요 요소 파악
▶좋은 리포팅 요건
좋은 리포팅 요건 | 내용 |
테스트 목적 및 요구사항과 일치 | 개발 프로젝트(의사결정)를 지원 |
테스트 전체와의 연계성 | 테스팅 계획(전략) 및 수행과의 연계성을 확보 |
단순한 결함 이상의 것들을 측정 | 리스크, 커버리지, 환경 등도 함께 측정 |
경향(Trend)을 리포팅 | 순간 포착식의 측정치는 지양 |
리포트 분량의 제한 | 리포트의 영향력(impact)를 높이기 위해 분량을 제한 |
리포팅의 일관성 유지 | 리포팅 내용, 스타일, 표현 방식 등에 일관성을 유지 |
측정의 의미 설명 | 당연한 것으로 가정하지 말고 독자를 위해 설명 |
5.3.3. 테스트 제어
▶ 테스트 제어
- 테스트 진행 보고서나 수집된 메트릭을 근거로 테스트가 계획대로 수행되도록 가이드 하거나 정정하는 활동
- 테스트 제어 활동의 예
>> 테스트 모니터링으로부터 얻은 정보를 기반으로 의사 결정
>> 프로젝트 리스크가 실제 발생 하였을 때 테스트의 우선순위를 조정
>> 테스트 환경의 가용성 이슈가 있을 경우 테스트 일정 변경
>> 테스트 시작 조건 조정
>> 수정사항 빌드에 반영하기 전에, 해당 수정사항을 개발자가 재 테스트하도록 요구
5.3.4 테스트 완료
▶ 테스트 완료
- 특정 레벨 또는 유형의 테스팅에서 테스트 계획서에서 계획했던 모든 항목들이 완료되면 시작하는 활동
- 목적 : 테스트 자산 및 환경을 보존, 테스트 활동에서의 교훈을 찾아내어 이해관계자와 공유
- 테스트 완료 보고서에는 테스트 계획대비 실적, 결함 상태, 리스크 등과 함께 테스트 자산의 보존 상황 및 교훈을 기록하고 이를 이해 관계자에게 보고함.
5.4 형상 관리
▶ 형상 관리의 목적
- 프로젝트나 제품의 전체 수명 주기에 걸쳐 시스템이나 소프트웨어(컴포넌트, 데이터, 문서)의 상태를 그대로 보존, 보호하고 유지하기 위함
>> 테스트웨어 식별, 버전 관리, 변경 추적, 상호 연관성, 개발 아이템(테스트 대상)과의 연계 관리 등을 통해 테스트 프로세스 전반에 걸친 추적성 확보.
>> 테스트 문서에서 참조하고 있는 모든 관련 문서 또는 소프트웨어 아이템을 모호하지 않게 관리.
- 테스터는 형상 관리를 통해 테스트된 품목, 테스트 문서, 케이스와 테스트 하네스(테스트환경셋팅) 등을 혼선 없이 관리하고 효율적 재사용.
- 형상 관리 절차는 테스트 계획 단계에서 결정하고 문서화
5.5 리스크와 테스팅
▶ 리스크
- 이벤트, 위험 요소, 위협 혹은 상황의 발생 가능성과 발생했을 경우의 바람직하지 못한 결과 즉, 잠재적 문제
리스크(==장애로 인해 주어진 기간에 발생한 비용) = 장애 가능성 x 손실 | |
프로젝트 리스크 | 프로덕트(품잘) 리스크 |
- 프로젝트 목적 달성에 영향을 주는 프로젝트 역량 전반에 관계되는 리스크 - 조직적 요소, 기술적 이슈, 공급자 이슈 |
- 제품 품질과 관련된 리스크 - 리스크 높은 부분 : 새로 기능이 추가된 부분, 기존에 결함이 많거나 리스크가 높았던 부분, 비즈니스 리스크가 존재하는 부분 |
* 참고 : 장애 가능성 = 사용빈도 x 결함 가능성 |
효과적 (효과 -> 결과의 뛰어난 정도) | 효율적(효율 -> 과정의 뛰어난 정도) |
- 계획하였거나 원했던 테스트 결과를 도출함 - 효과적인 테스터는 테스팅 노력으로부터 어떤 결과를 도출 할 것인지 결정함. |
- 원했던 테스트 결과를 생산적(효율적)으로 도출함 - 효율적인 테스터는 가용한 리소스(시간, 자금, 인력)를 적절하고 현명하게 배치함 |
테스팅의 최선책 = 리스크 기반 테스팅 리스크 높은 부분에 집중 |
5.5.1 프로젝트 리스크
조직적 이슈 | 기술적 이슈 | 공급자 이슈 |
- 테스팅 전문 스킬과 인력의 부족 - 개인적 이슈 - 교육 훈련 관련 이슈 - 정치적 이슈 >> 테스터가 자신의 요구와 테스트 결과를 커뮤니케이션 하는데 있어서의 문제. >> 테스팅과 리뷰에서 발견 사항에 대한 추적 실패(e.g. 개발과 테스팅 업무가 개선되지 않음) >> 테스트에 대한 그릇된 태도와 기대(결함 발견의 가치 저평가등) |
- 완성도 높은 요구사항을 정의하는데 있어서의 문제 - 기술적 제약을 고려하지 않은 요구사항 - 품질 낮은 설계, 코드, 형상 데이터, 테스트 데이터와 테스트 - 필요한 테스트 환경 구축 일정 지연 - 개발 또는 테스트 데이터 변환 및 마이그레이션 지연 |
- 공급자인 협력업체가 역할 수행에 실패 - 계약상의 이슈 |
5.5.2 제품 리스크
▶제품 리스크
- 소프트웨어나 시스템에서 의도하지 않은 향후 이벤트나 위험 요소가 존재하는 잠재적인 장애 영역.
>> 개발 팀에서 전달받은 장애 가능성이 높은 소프트웨어
>> SW 및 HW가 개인이나 회사에 손실을 끼칠 가능성
>> 취약한 소프트웨어 특성(기능성, 신뢰성, 사용성, 성능)
>> 의도된 기능을 수행하지 못하는 SW
- 제품 품질에 대한 리스크
- 리스크 vs. 테스트
>> 리스크 : 테스트를 시작하는 시점을 결정하고 더 강력하고 깊이 있게 테스트할 부분을 결정하기 위해 사용.
>> 테스트 : 의도하지 않은 결과를 야기시키는 리스크를 줄이거나, 의도하지 않은 결과로 야기되는 영향과 손실을 줄이기 위해 사용.
리스크 관리 : 리스크 식별 --> 리스크 분석 --> 리스크 계획 --> 리스크 추적
- 리스크 식별 : 무엇이 리스크이고 어디에 리스크가 있는지 확인
- 리스크 분석 : 중요하고, 복잡하고, 잠재적으로 결함이 많은 부분을 분석(리스크 우선 순위 결정.)
*리스크 = 장애 발생 빈도 x 장애로 인한 영향
- 리스크 계획 : 리스크 정보를 근거로 대처 방안 수립 (리스크 줄이는 "테스트" 생성)
- 리스크 추적 : 리스크 및 리스크에 대한 대응을 모니터링
▶ 리스크 식별
>> 기능적/ 기술적 아이템 모두 도출
>> 요구사항에 따른 상위 레벨 테스트 관련 항목
>> 아키텍처에 따른 하위 레벨 테스트 관련 항목
>> 브레인스토밍을 통해 도출 가능
>> 한 번에 분석해야 할 리스크 아이템 수를 적당히 제어할 필요 있음.
▶ 리스크 분석
리스크 = 장애 발생 가능성 x 장애로 인한 영향 |
- 결함 패턴 등 기존 프로젝트를 참고해 리스크 요소 결정 - 리스크를 기술적 리스크와 사업적 리스크로 분리 >> 기술적 리스크는 단위/ 통합 테스팅과 관련됨 - 장애 발생 가능성 관리 >> 사업적 리스크는 인수 테스팅과 관련됨 - 발생한 장애로 인한 영향 관리 |
▶ 경험적 리스크 요소
장애 발생 가능성 | 장애로 인한 영향 |
- 복잡성 - 새로운 개발의 정도(기존 개발 산출물 재사용 수준) - 상호관계 (인터페이스 개수) - 소스의 크기 - 사용된 기술의 난이도/ 최신성 - 개발팀의 경험 미흡 |
- 사용자에 의한 취급 중요도(잘 팔리는 아이템) - 경제적, 안전적, 회사 이미지적 피해 - 사용 강도 - 외부적 가시성 |
- 프로젝트 상황에 맞게 변형시킬 수 있으며, 가중치 적용 가능
▶리스크 계획 활동
- 리스크 분석 결과를 근거로 대처 방안 수립
- 리스크를 줄이는 테스트를 생성
- 리스크 메트릭스 작성
>> 리스크 분석 단계에서 합의/ 결정된 리스크 아이템별로 리스크 요소의 점수 이용하여 작성
>> 장애 발생 가능성 리스크 요소 총점과 장애로 인한 영향 리스크 요소 총점을 구분하여 좌표에 표시
- 테스트 레벨 별로 차별화된 리스크 기반 테스팅 전략 준비
▶리스크 추적
- 리스크 상황을 모니터링 해 잔존 리스크를 줄여나가는 활동
- 리스크를 효과적으로 추적하기 위해 다양한 지표 개발 필요
5.6 인시던트 관리 ( == 결함관리)
▶ 인시던트 관리 목적
- 테스트에서 발견한 이슈에 대해 추가적으로 수행해야 할 일에 대해 보고하고 이를 추적하기 위함
- 인시던트 보고서 : 실제 결과와 기대 결과 사이의 불일치를 작성
- 기 발생된 결함에 대한 재 테스트인 경우 인시던트 보고서 상태 변경
- 인시던트 혹은 결함은 프로그램 개발, 리뷰, 테스팅 혹은 소프트웨어 제품 사용 중에 발견되거나 발생.
▶ 인시던트 혹은 결함 보고서
목적 :
>> 개발자와 다른 프로젝트 이해관계자가 문제점을 식별하고, 격리하고, 필요하면 정정하도록 피드백 제공.
>> 테스트 대상 시스템의 품질과 테스팅 진척도를 추적하는 수단을 테스트 리더에게 제공.
>> 테스트 프로세스 개선에 대한 아이디어 제공.
- 인시던트 및 결함은 발견 및 분류에서 수정 및 확인까지 추적
- 인시던트와 결함을 처리할 수 있는 적절한 조치에 대한 정의
- 모든 인시던트 완료까지 관리하기 위해 조직은 인시던트 관리 프로세스 및 분류 규칙을 설정 --> 결함 생명 주기
5.7 테스트 프로세스 평가
▶ 테스트 프로세스
- 조직을 셋업하고 운영하는 관점에서의 조직 테스트 프로세스
>> 테스트 정책과 테스트 전략을 수립하고 적용하며 개선하는 프로세스
- 프로젝트 전체 또는 특정 레벨 및 유형의 테스트를 위한 테스트 매니지먼트 프로세스
>> 총괄적으로 수행할 테스팅을 레벨 또는 유형 별로 수행되도록 관리, 통제.
- 테스트 수행 관점에서 동적 테스팅과 정적 테스팅을 구분하여 각각의 프로세스
▶ 테스트 프로세스 개선 활동(점진적, 효과적, 지속적)
- 기대효과
>> 정렬되고 조직화되며 반복적
>> 전문적이고 공학적인 활동으로 인식
>> 개발 활동과는 독립적으로 수행
>> 결함 발견 활동에서 결함 예방 활동으로 변화
>> 정량적으로 측정되고, 관련 데이터가 축적되며, 테스트 프로세스의 문제점을 파악
>> 지속적으로 개선되고 향상
>> 테스트 비용을 절감시키고 조직 구성원의 만족감을 고취시킴
'ISTQB > ISTQB_SW테스팅' 카테고리의 다른 글
ISTQB/ SW 테스팅 ) 6장. 테스트 지원 도구에 대해 알아보자 (2). (0) | 2024.04.01 |
---|---|
ISTQB/ SW 테스팅 ) 6장. 테스트 지원 도구에 대해 알아보자 (1). (0) | 2024.03.28 |
ISTQB/ SW 테스팅 ) 5장. 테스트 조직과 독립성에 대해 알아보자. (1) | 2024.03.25 |
ISTQB/ SW 테스팅 ) 4장. 소프트웨어 품질 특성에 대해 알아보자. (0) | 2024.03.25 |
ISTQB/ SW 테스팅 ) 4장. 구조 기반 기법과 경험 기반 기법 - 오류 추정, 체크 리스트에 대해 알아보자. (0) | 2024.03.22 |