경험기반 테스트
태그 :
- 개념
- - 이전에 테스터가 다루었던 유사 어플리케이션이나 기술에서의 경험, 직관, 테스터의 기술 능력으로부터 테스트 케이스를 추출하는 기법
I. 직감적인 테스트, 경험기반 테스트의 개념
가. 경험 기반 테스트의 정의
- 이전에 테스터가 다루었던 유사 어플리케이션이나 기술에서의 경험, 직관, 테스터의 기술 능력으로부터 테스트 케이스를 추출하는 기법
나. 경험 기반 테스트의 특징
- 공식적인 기법으로 다루기 어려운 특별한 케이스를 찾아서 실행하는데 유용
- 테스터의 경험에 따라 효율성 및 효과성의 정도가 달라질 수 있음
- 테스트 대상 소프트웨어에 대해 지식을 필요로 함
II. 경험 기반 테스트 기법의 종류
기 법 |
설 명 |
비 고 |
탐색적 테스팅 (Exploratory Testing) |
- 테스트 차터(Test charter)를 기반으로 정해진 시간 내에 테스트 설계, 수행, 계획, 기록 및 학습을 동시에 진행하는 휴리스틱(Heuristic, 발견적인) 테스팅 접근법 - 테스트 케이스 작성의 시간을 최소화하고 테스터의 발견적인(Heuristic) 지적능력을 최대한 활용하여 테스트를 실행하는것에 집중 |
-초기에는 탐색적 테스팅으로 시작하여 공식적인 테스트 케이스 기반으로 확장 적용 |
오류추정 (Error guessing) |
- 가능한 결함을 나열하고, 이런 유형의 결함 또는 오류를 공격할 수 있도록 테스트 설계(결점공격, Fault attack) - 결함이나 장애 리스트는 경험, 형식에 맞지 않거나 결함을 발생시키는 데이터, 소프트웨어 실패에 대한 일반적인 지식 등을 근거로 도출 가능
|
-테스터가 시스템을 완전히 이해한다는 전제로 적용 - 취약점 식별 작업 기반으로 테스트 프로세스 마지막 단계에서 사용 |
체크리스트 기반 테스팅 |
- 테스트하고 평가해야 할 내용과 경험을 분류하여 나열해 놓은 체크리스트를 기반으로 테스트를 실행 -체크리스트는 테스트 경험과 노하우의 반영물이므로, 체계적인 기법으로 도출되는 테스트 케이스와는 달리 효과성을 보장해 주지는 못함 |
-테스트 베이시스(개발 산출물) 결함 발견에 주로 사용 |
소프트웨어 특성에 따른 테스팅 (Characteristics testing) |
- 국제표준인 ISO/IEC 9126-2의 품질 특성을 기준으로 경험적으로 테스트 케이스를 도출하는 기법 -각 품질 특성을 평가항목으로 보고, 테스트 대상 제품에 대해 평가항목의 비율(가중치)을 선정한 후, 각 품질 특성별로 경험과 제품의 특성을 고려하여 테스트 케이스 도출 |
-비기능 테스팅(신뢰성, 사용성, 효율성, 유지보수성, 이식성)을 가이드 하는데 유용 |
III. 경험 기반 테스트의 장, 단점 및 실행 가이드
가. 경험 기반 테스트의 장, 단점
구 분 |
설 명 |
장점 |
- 테스트 케이스 작성 시간을 줄이고, 테스터 역량을 충분히 발휘하여 적은 테스트 인력으로 높은 효율성 - 명세가 불충분하고 시간에 제약을 받는 상황인 경우 효과적 |
단점 |
- 테스트의 경험에 따라 효과가 다르기 때문에 일관성이 떨어지면 관리가 어려울 수 있음 - 테스트의 유연성을 위해 테스트의 반복도가 감소할 수 있음. (잠재적인 버그 존재) |
나. 경험 기반 테스트의 실행 가이드
- 경험기반 테스팅과 공식적 테스팅은 적용가능 부분과 발견 결함 종류가 다르므로 서로을 보완하는 측면에서 병행하여 적용
- 테스터간의 능력차이를 십분 활용하여 리스크가 높은 곳에 경험 많고 능력 있는 테스트 엔지니어를 배치하는 적절한 인력배치가 중요
- 테스트 절차와 지침에 따라 테스팅을 할 때 최대의 효과를 볼 수 있음. (즉흥성과 원칙/절차성의 균형 유지필요)
- 테스터는 소프트웨어에서 자주 발생하는 결함이나 결함의 분포와 관련이 있는 지식을 필요로 함
- 새로운 테스터가 이전 테스터의 경험, 방법을 활용할 수 있는 문서화가 필요