탐색적 테스트를 위한 학습 전략
1) 제품의 탐색
: "제품을 가지고 할 수 있는 일이 무엇인가?"
- 제품 탐색을 위한 소스
* 실 사용자
* 요구사항
* 명세서
* 테스터의 경험
* 제품 유저 인터페이스
* 문서
* 교육
* 경쟁 제품
* 패키징
* 특정 목록
* 빌드 변경 로그
2) 적절한 설계 기법 적용
: 발생가능한 모든 상황에 대한 테스트케이스 도출
: 사용 품질을 위한 use case반영
: 시스템의 내부 상태를 표현하여 테스트 케이스 설계
: 소스코드의 모든 실행 경로를 테스트케이스로 도출
참고) 탐색적 테스트는 랜덤 테스트의 일종이다? => NO, 탐색적 테스트는 목적을 갖고 행해지는 전략적인 테스트
탐색적 테스트를 위한 수행 전략
1) 테스트 용이성
: 테스트 용이성이란 가시성과 제어성을 의미한다.
- 테스트 가시성을 높이기 위한 방법
* 운영체제에서 제공하는 모니터링 도구를 최대한 활용
* 파일 시스템 사용을 모니터링 하기 위한 프로그램을 사용하거나 작업 스크립트를 작성
* 웹 기반 시스템이라면 HTTP요청과 서버로부터 받은 HTTP 응답을 상세하게 분석
2) 변수
: 변하는 것들을 담고 있는 변수를 찾아라.
- 변수의 예
* 파일 및 저장 공간
* 빈 파일이나 아주 크기가 큰 파일
* 교묘하게 숨어 있는 변수, 웹 브라우저의 주소의 파라미터 값.
탐색적 테스트 프로세스
1) 착수
2) 준비
3) 수행
4) 완료
5) 검토
6) 후속작업
참고) 탐색적 테스트는 진행상황을 보고하지 않아도 되는 자유로운 테스트이다
: NO, 개인의 역량과 자유를 존중하기 때문에 더욱 진행상황 보고가 필요한 테스트이다.
에러 추정 (Error Guessing) 테스트
- 소프트웨어의 잠재된 결함을 추측을 통해 발견하는 기법 (이 부분이 오류가 있을것 같아)
* 결함이 발생할 만한 취약한 지점을 추측하기 위해 개인의 스킬, 획득된 지식 및 과거 경험을 활용한다.
- 개인의 능력에 의존한 테스트로 능력과 경험이 있는 시험 인력이 테스트를 수행해야 한다.
- 공식적인 테스트를 수행한 후 에러 추정 테스트를 하는것이 좋다.
ex) 0으로 나누기,NULL 포인터
체크리스트 기반 테스트
- 경험이 많은 테스터가 체크리스트를 준비하여 계획된 테스트를 수행.
* 사전 준비된 체크리시트를 통해 일관적으로 테스트할 수 있도록 가이드
* 테스트 커버리지를 높이기 위한 도구로 사용될 수 있음.
- 체크리스트 작성 방법
1) 테스트가 필요한 소프트웨어를 대상으로 To-Do-List를 뽑는다.
2) 해당 목록을 기반으로 테스트 단계별 수행해야 하는 액션들을 나열
3) 테스트 수행 완료 후 체크리스트가 체크되어야 한다.
- 체크리스트가 일차적으로 만들어지면, 테스트 수행동안 요구사항에 따라 체크리스트가 변경
ex) 업로드 기능에 대한 체크리스트
* 이미지 업로드 기능을 확인한다.
* 동일한 이름으로 이미지 업로드가 가능한지 확인한다.
* 업로드 된 이미지의 품질 상태를 확인한다.
* 이미지 업로드 진행상황이 나타나는지 확인한다.
* 여러 개의 이미지 업로드가 가능한지 확인한다.
* 이미지 업로드 도중 취소 긴응이 동작하는지 확인한다.
- 체크리스트 기반 테스트의 장점
* 충분한 테스트 커버리지를 보증하는 훌륭한 가이드라인 역할 수행.
* 체크리스트를 기반으로 테스트케이스 재사용이 가능
* 중요한 테스트를 빠트려 발생할 수 있는 위험 감수
* 새로운 테스트 기법을 체크리스트에 누적할 수 있음
* 경험이 부족한 신규인력에 대한 부담 감소
- 체크리스트 기반 테스트의 단점
* 체크리스트에 대한 상이한 해석으로 다른 방법으로 테스트할 수 있음
* 소프트웨어 기술이 변화함에 따라서 체크리스트도 업그레이드 되어야 함
* 시험과정이 복잡하면 재현이 어려울 수 있음
* 개발 공정 전체에 거친 테스트에는 적용이 어려울 수 있음.
Ad-Hoc 테스트
: 특정목적을 가지고 하는 테스트
- 제품에 대한 공식적인 테스트가 완료된 후에 추가 테스트가 필요 할 때 효과적.
- 제품 파괴 목적으로 테스트를 수행. (메뉴얼대로 안함)
- 테스트를 수행하는 테스터는 제품에 대한 충분한 지식이 있어야함.
장점
- 테스터가 공식적인 테스트 프로세스에 비해 더 많은 결함을 찾아내는데 도움이 되는 새로운 방법 적용가능
- 언제나 수행할 수 있음
- 시간이 부족하고 심층적인 테스트가 필요한 경우 유용
단점
- 계획하지 않고 문서화하지 않으므로 결함의 재현이 어려울 수 있음
- 새로운 테스터가 들어왔을 경우, 이전 숙련된 테스터에게 매우 의존적.
- Ad-Hoc 테스트 효과를 높이기 위한 전략
* 제품에 대한 높은 이해가 바탕이 되어야 함.
* 테스트 우선순위를 정해야 함
* 개략적인 테스트 계획은 필요함
* 관찰 결과에 대한 문서화를 하면 좋음
'개발 > QA' 카테고리의 다른 글
디버깅과 테스팅의 차이 (0) | 2020.09.11 |
---|---|
15. 정적 테스팅 (Static Testing) (0) | 2020.07.11 |
13. 블랙박스 테스트2 (0) | 2020.07.10 |
12. 블랙박스 테스트 (0) | 2020.07.09 |
11. 화이트박스 테스트 (0) | 2020.07.08 |