2장 뷰티풀테스팅은 이해관계자를 만족시킨다.
한 줄 요약
만족스러운 제품을 위해 테스트 하는 것이 아니라,
이해관계자를 만족시키기 위해 테스트 하는 것이다.
내용 정리
좋은 테스트?
- 단순 테스트 → 버그를 찾아낸다
- 아름다운 테스트 → 조직 믿음 부여 or 영감을 준다.
테스트 이해관계자
테스트 관련된 관계자 분류 (내부&외부, 중립&반이해)
- 테스트 이해관계자? 테스트와 관련된 관계자
- 테스트 이해관계자 분류
- 내부 & 외부
- 내부 이해관계자 : 테스트 업무 수행, 관리하는 사람들
- 외부 이해관계자 : 그 외(개발자, 관리자, PM, ...)
=> 내&외부 이해관계자는 테스트에 관심이 있다.
- 목적성
- 중립 이해관계자 : 규칙 준수 중시
- 반이해관계자 : 프로젝트 진행에 적대 성향 (문제 없는 시스템 교체시, 기존 사용자)
- 아름다운 테스팅 첫 번째 단계는 테스트 이해관계자를 파악하는 것
좋은 테스트 3가지 특성
좋은 테스트의 3가지 특성 (효과성, 효율성, 기품)
- 효과성 : 중요한 버그 발견 & 일반적 시나리오 속 버그 발견
- 효율성 : 초기 단계 버그 발견
- 기품 : 데이터 기반 명확한 결과 보고
- 주의사항
- 효과성 ≠ 심각한 버그 발견 횟수
- 효율성 ≠ 시간 대비 버그 발견 횟수
- 기품 ≠ 눈에 띄지 않는 발견 버그 보고
- 아름다운 테스팅 두 번째 단계는 이해관계자가 생각하는 목적&기대치 파악
좋은 테스트 - 외부
테스팅에 대한 발견율 지표 & 비용 분석 방법
결함 발견
결함발견율(DDP)=발견된버그+릴리즈이후발견버그발견된버그
- 프로젝트 별 평균 결함 발견율은 85% 이다. (내부용 프로젝트는 95%)
- DDP(심각 버그) > DDP(모든 버그) 가 되도록 하라
- 릴리즈 이후 버그는 상세 분석하고, 개선사항을 기록하라
테스트 비용
ACTB=테스트발견버그수검출비용+내부장애비용
ACPB=릴리즈후발견버그수외부장애비용
테스트ROI=검출비용(ACPB−ACTB)×테스트발견버그수
- 테스팅 비용은 3가지로 분류 된다
- 검출 비용 : 버그 발견하지 상관 없이 발생하는 테스팅 비용 (품질 리스크 분석, 테스트 환경 구축, ...)
- 내부 장애 비용 : 순수하게 버그를 발견 관련 비용 (버그 보고, 버그 수정, 확인 테스팅)
- 외부 장애 비용 : 출시 이후 관리 관련 비용 (CS 지원팀, 유지보수팀 비용)
- 테스트 ROI 프로젝트별 상이 (25% ~ 3500% 이상)
- 아름다운 테스팅 세 번째 단계는 효과성 & 효율성 메트립 수립하고 해당 목표 설정
좋은 테스트 - 내부
리그레션 테스팅 자동화 운영에 대한 분석 방법
RTA=수동반복테스트+자동화반복테스트자동화반복테스트
RRC=파악된리그레션리스크커버된리그레션리스크
ART=수동리그레션테스트시간수동리그레션테스트시간−자동리그레션테스트시간
- 수동 리그레션 테스팅 특징 (장기적 활동 시 부정적)
- 단기간 내 결함 발견율 ↑
- But 단순하고, 비용 ↑, 테스트로 인한 오류 발생률 ↑ , 테스트 의욕 ↓
- 리그레션 테스트 자동화 운영 조건
- 기존대비 위험도가 유지되거나 낮춰져야 한다.
- 테스트 수행속도가 빨라져야 한다.
- 리그레션 테스트 자동화는 결코 100%가 될 수없지만 평균 90% 달성한다
- 애자일 방법론이 리그레션 가속화는 필수적 (테스트 수행 ↑ → 개발 생산성 ↑ 직결)
- 아름다운 테스팅 네 번째 단계는 내부 관점에서 테스팅 목적과 기대치 설정
++ 아름다운 테스팅에는 테스팅의 기품(성취도)도 고려해야 한다.
아름다운 테스팅 정리
1. 테스트 이해관계자 파악하기
2. 이해관계자가 생각하는 목적&기대치 파악
3. 효과성 & 효율성 메트립 수립하고 해당 목표 설정
4. 내부 관점에서 테스팅 목적과 기대치 설정
정리
기억에 남는 문장
- 효과적인 테스트는 많은 버그를 찾는게 아니라 중요한 영역 속 버그를 찾는 것.
- 효율적인 테스트는 빠른 시간 내 버그를 찾는 게 아니라, 프로젝트 초기에 버그를 찾는 것
- 기품적인 테스트는 눈에 띄지 않는 버그 탐색 보고 하는 게 아니라, 리스크 기반 명확한 결과 보고하는 것
배운 것
- 테스트는 단순히 수행 달성을 위하는 것이 아니라, 이해관계자를 만족시켜야 한다.
- 테스팅에 있어서 짧은 시간 내에 버그를 많이 찾는게 중요한게 아니다.
중요한 버그를 찾는 것, 프로젝트 초기에 버그를 찾는 것, 명확한 보고를 하는게 중요하다.
참고도서
Adam Goucher, ⌜뷰티풀 테스팅⌟, 지앤선, 2011