1.1테스팅의 일반적인 원리
① 테스팅은 결함이 존재함을 밝히는 활동이다. : 테스팅은 소프트웨어에 잔존하는 결함을 간과할 가능성을 줄일 수 있지만, 결함이 전혀 발견하지 않는 경우라도 결함이 없이 완전하다는 것을 증명하지 못한다.
② 완벽한 테스팅(Exhaustive)은 불가능하다. : 모든 가능성을 테스팅하는 것은 지극히 간단한 소프트웨어를 제외하고는 가능하지 않다. 따라서 리스트 분석과 결정된 우선 순위에 따라 테스팅 활동 노력을 집중시켜야 한다.(Risk-based testing)
③ 테스팅을 개발 초기에 시작한다. : 테스팅 활동은 소프트웨어나 시스템 개발 수명주기에서 가능한 초기에 시작되어야 하며, 설정한 테스팅 목표에 집중해야 한다.
④ 결함 집중(Defect clustering) : 출시 전의 테스팅 기간 동안 적은 수의 모듈에서 대다수의 결함이 발견되거나, 대다수의 운영상의 장애를 초래한다.
⑤ 살충제 패러독스(Pesticide paradox) : 동일한 테스트케이스로 동일한 테스트를 반복적으로 수행한다면, 더 이상 새로운 버그를 찾아내지 못할 것이다. 잠재된 보다 많은 결함을 발견하기 위해서는 테스트 케이스를 정기적으로 리뷰하고 개선할 필요가 있고, 소프트웨어 또는 시스템의 다른 부분을 새롭고 다른 시각으로 테스트하는 것이 필요하다.
⑥ 테스팅은 정황(Context)에 의존적이다. : 테스트는 정황에 따라 다르게 진행한다. 이때 모든 테스팅에서 변하지 않는 사항도 존재한다.
ü 테스트 수명 주기에 따른 테스트 프로젝트 계획(Life cycle, planning)
ü 표준적인 기법 적용(Techniques)
ü 독립적인 테스트 환경(Environment)
ü 효율적/효과적 테스트 팀 조직(Organization)
ü 공식 리포팅(Formal reporting) 등
⑦ 오류 부재의 궤변(Absence-of-errors fallacy) : 개발자 시스템이 사용자의 필요와 기대에 부응하지 못하고 쓸모 없다면 결함을 찾고 수정하는 과정은 아무 소용 없다.
'QA > Theory' 카테고리의 다른 글
애자일 테스팅(Agile Testing) (1) | 2014.10.21 |
---|---|
Scrum(스크럼) (0) | 2014.08.20 |
소프트웨어 테스팅의 기초-4 (0) | 2010.04.07 |
소프트웨어 테스팅의 기초-2 (0) | 2010.04.07 |
소프트웨어 테스팅의 기초-1 (0) | 2010.04.07 |
댓글