박종훈 기술블로그

테스팅의 7 가지 원리 (seven testing principles)

ISTQB CTFL 실라버스
출처 : http://www.kstqb.org/board_skin/board_view.asp?idx=426&page=1&bbs_code=4&key=0&word=&etc=ISTQB

프리온보딩 - QA Engineer 사전 미션 에서 나와서 실라버스에 있는 부분을 가져와 보았다.


1. 테스팅은 결함이 존재함을 밝히는 활동이지, 결함이 없음을 밝히는 활동이 아니다 (Testing shows the presence of defects, not their absence)

테스팅은 결함이 존재한다는 것을 보여줄 수 있지만, 결함이 없다는 것을 증명할 수 없다. 테스팅은 소프트웨어에 발견되지 않은 결함의 존재 가능성을 줄일 수는 있지만, 결함이 전혀 발견되지 않았다 하더라도 해당 소프트웨어가 완벽하다는 뜻은 아니다.

2. 완벽한(exhaustive) 테스팅은 불가능하다 (Exhaustive testing is impossible)

모든 것(입력과 사전 조건의 모든 조합)을 테스팅 한다는 것은 매우 간단한 소프트웨어를 제외하고는 불가능하다. 따라서, 완벽하게 테스트하고자 하기보다는 리스크 분석과 우선순위를 토대로한 테스트에 노력을 집중하는 것이 좋다.

3. 조기 테스팅(early testing)으로 시간과 비용을 절약할 수 있다 (Early testing saves time and money)

초기에 결함을 찾기 위해서는 정적 및 동적 테스트 활동 모두 소프트웨어 개발 수명주기 중 가능한 이른 시점에 시작해야 한다. 초기부터 시작하는 테스팅을 시프트 레프트(shift left)라고도 부른다. 소프트웨어 수명주기 초기부터 테스팅을 함으로써 나중에 큰 비용이 동반되는 수정을 줄이거나 없앨 수 있다.

4. 결함은 집중된다 (Defects cluster together)

출시 전 테스팅에서 발견하는 대부분의 결함은 소수의 모듈에 집중되어 발생하는 경향을 보이며, 운영상 장애의 대부분 역시 소수의 모듈에서 발생한다. 예상 결함 집중 영역과 테스트와 운영 중 실제로 관측한 결함 집중 영역은 리스크 분석의 주요 입력값으로 사용된다. 리스크 분석은 테스트 노력을 집중시키는 데 필요하다

5. 살충제 패러독스(pesticide paradox)에 유의하라 (Beware of the pesticide paradox)

만일 같은 테스트를 계속해서 반복 실행한다면, 결국 해당 테스트로는 결함을 더 이상 발견할 수 없게 된다. 새로운 결함을 발견하기 위해서는 기존 테스트와 테스트 데이터를 바꾸고 새로운 테스트를 작성할 필요가 있다. (살충제를 계속 사용하다 보면 결국 해충을 잡지 못하듯, 테스트도 반복하다 보면 결국 결함을 더 이상 찾지 못하게 된다.) 하지만 살충제 패러독스가 좋은 것을 의미하는 경우도 있다. 자동 리그레션 테스팅의 경우 리그레션 결함이 적다는 것을 의미할 수도 있다.

6. 테스팅은 정황(context)에 의존적이다 (Testing is context dependent)

테스팅은 정황에 따라 다르게 진행된다. 예를 들어, 안전 최우선 산업에서 사용하는 제어 소프트웨어는 이커머스 모바일 애플리케이션과는 다르게 테스트한다. 또, 애자일 프로젝트에서의 테스팅은 순차적 소프트웨어 개발 수명주기 프로젝트에서의 테스팅과는 다르게 진행된다

7. 오류 부재는 궤변이다 (Absence-of-errors is a fallacy)

조직에 따라서는 테스터가 모든 가능한 테스트를 실행하고 존재하는 모든 결함을 발견하기를 기대하는 경우도 있지만, 원리 1 과 2 가 말해주듯 이것은 불가능하다. 뿐만 아니라, 단순히 많은 결함을 발견하고 고쳤다고 해서 시스템의 성공이 보장된다고 생각하는 것은 궤변(즉, 잘못된 믿음)이다. 예를 들어, 정의된 모든 요구사항을 충분히 테스트하고 발견된 모든 결함을 수정하더라도 여전히 사용하기 어렵거나, 사용자의 요구와 기대를 충족시키지 못하거나, 경쟁 시스템에 비해 부족한 시스템을 만들어낼 수 있다.


위에 나열된 원리와 기타 테스팅 원리에 대한 예제를 위해서는 Myers 2011, Kaner 2002, Weinberg 2008, Beizer 1990 을 참조하라.

categories: 스터디-테스트

tags: 테스트 , 결함 , 조기 테스팅 , 절약 , 집중 , 정황 , context