I. 소프트웨어 테스트 원리
테스트 원리 | 원리 설명 | 테스트 방안 |
---|---|---|
결함존재 증명 | – 테스팅은 결함 증명 – SW완전성 증명 불가 | – 결함 발견에 초점 – 결함목록 현행화 |
완벽 테스팅 불가 | – 모든 경우 테스팅 불가 – 효율적 테스팅 필요 | – 동등분할, 경계값 분석 등 – 효율적 테스트 수행 |
개발 초기 테스팅 효율적 | – 조기 결함 발견 / 수정 시 수정 대상 대폭 감소 | – 결함 확산 사전 방지 – 조기 결함 제거 |
결함 집중 | – 파레토 법칙(80:20) – 다수 결함, 소수 원인 | – 소수 원인 분석 – 연관 결함제거 확인 |
살충제 패러독스 | – 동일 테스트 반복 시 신규 결함발견 불가 | – 지속적 TC 개발 – 주기적 테스트 실시 |
정황에 의존 | – 시스템/제품 특성 차이 – 테스터 경험, 지식 차이 | – 특성 별 테스트 차별화 – Back/Front-End, Client |
오류 부재의 궤변 | – 결함이 없어도 품질이 낮으면 테스트는 무의미 | – 테스트 전 품질 확보 – 코드체커, 보안 체크리스트 |
- SW 테스트 원칙은 de-facto 표준인 ISTQB에서 제시, 실제 적용 시 다수 원칙이 복합된 상황이 대다수 발생
II. 살충제 패러독스와 오류부재의 궤변의 개념
살충제 패러독스 (Pesticide Paradox) | 오류-부재의 궤변 (Absence-errors fallacy) |
---|---|
동일한 테스트 케이스로 테스트를 반복적으로 수행하면 나중에는 더 이상 새로운 결함을 찾아내지 못함 | 사용자 요구와 기대에 부응하지 못해 사용성이 현저히 낮다면 결함을 찾는 과정은 아무 소용이 없음 |
III. 살충제 패러독스와 오류 부재의 테스트 원리, 비교
가. 살충제 패러독스와 오류-부재의 궤변의 테스트 원리
구분 | 테스트 원리 | 내용 |
---|---|---|
살충제 패러독스 | 테스트 케이스 개선 | 많은 결함을 발견하기 위해 테스트 기법을 다른 모듈, 시각에서 재적용하고 정기적 리뷰, 개선 |
경험기반 접근 | 탐색적 테스팅, JIT(Just-in-Time) 테스팅 등의 경험 기반 접근법을 통해 테스트케이스 추가 | |
오류부재의 궤변 | 검증 및 확인 | V&V(Validation & Verification)을 통해 요구사항에 따라 개발되었는지 확인 |
제품 및 품질개선 | 고객의 적극적 참여를 통한 품질 확인 CMMI, SPICE 등과 같은 개발프로세스 진단, 측정 |
나. 살충제 패러독스와 오류-부재의 궤변을 통한 관점 비교
구분 | 살충제 패러독스 | 부재오류의 궤변 |
---|---|---|
전제 | 오래된 테스트케이스로는 잠재 결함에 노출 | 결함이 없다고 SW 품질이 높은것 아님 |
관점 | 잠재 시스템 결함 제거 | 시스템 사용성, 고품질 개발 |
관련표준 | ISO29119 | ISO9126,ISO14598,ISO25000등 |
테스트기법 | 구조기반/명세기반 테스트 | V&V, Inspection |
테스트유형 | 기능적 테스팅 | 비기능적 테스팅 |
적용시점 | 구현 및 시험 단계 | SDLC 전 과정 |