Thief of Wealth
Published 2020. 7. 10. 00:00
13. 블랙박스 테스트2 개발/QA

경험 기반 테스트 정의

: 과거의 경험을 토대로 숙련된 테스터가 소프트웨어 제품의 품질을 검증하는 활동

: 과거 경험을 기반으로 적절한 전략과 계획을 수립하여 테스트한다.

 

경험기반 테스트 적용이 필요한 상황

* 요구사항 및 명세서가 부족한 경우

* 제품에 대한 정보가 부족한 경우

* 테스트 시간이 제한되는 경우

 

* 리스크가 낮은 소프트웨어 제품을 테스트할 경우에 경험기반 테스트로 가능하지만 리스크가 높은 제품의 경우 공식적인 테스트 방법과 병행이 필요하다.

 

경험기반 테스트 종류

- 탐색적 테스트

- 에러 추정 테스트

- 체크리스트 기반 테스트

- Ad Hoc 테스트

 

 

탐색적 테스트

: 체계적으로 테스트 설계와 실행은 동시에 하는것.

: 가치있는 테스트 결과를 가장 효과적으로 끊임 없이 얻기 위해 테스트 개개인의 자유의지와 책임감을 강조하는 소프트웨어 테스트의 한 방법.

: 직전의 테스트를 통해 얻은 통찰력을 다음 테스트에서 충분히 활용하면서 테스트 설계와 실행을 동시에 수행하는 활동.

: 비형식적 (체계적이지 않다는게 아님!)이고 창의적인 테스트로, 테스트 실행 결과를 기반으로 테스트 전략을 실시간으로 변경한다.

 

탐색적 테스트 주요개념

1) 테스트 차터

: 테스트 대상, 목적, 범위 등을 기록한 테스트 미션

: 무엇을 테스트해야 하는지, 어떻게 테스트해야 하는지, 어떤 문제를 찾아야 하는지 제시

 

2) 세션 노트

: 테스트 기록을 남기는 수단

: 테스트 수행기록 및 발견 특이사항, 수행시간 등을 기재

 

3) 타임 박싱

: 테스트의 집중력을 높이기 위해서 테스트 수행 시간을 지정

: 일반적으로 60~120분 정도로 세션을 진행

 

4) 회고

: 테스터의 경험과 지식을 공유

: 세션 종료 후 리뷰 진행

: 일반적으로 5분에서 10정도 진행

 

 

 

 

스크립트 테스트 vs 탐색적 테스트

 

스크립트 테스트 : 테스트 계획과 설계과정을 거친 후 테스트를 수행

탐색적 테스트 : 형식적인 테스트 계획이나 테스트 케이스 없이 테스트 결과에 다라 테스트 항목을 경험적으로 탐색하면서 테스트를 수행하는 방식.

 

탐색적 테스트 장점

- 경험 기반의 테스트를 체계적으로 적용

- 테스트 케이스 작성 시간을 줄여서 테스트 실행에 집중가능

- 적은 테스트 인력으로 많은 테스트 수행

- 명세가 거의 없고 시간이 부족한 경우 효과적/효율적으로 테스트 수행

- 테스터 또는 테스트 엔지니어의 역량 향상.

 

탐색적 테스트 단점

- 테스터의 성향에 따라서 서로 다른 결과를 도출

 

 

스크립트 테스트 vs 탐색적 테스트

 

구분 스크립트 테스트 탐색적 테스트
도메인 지식 테스트 설계과정을 통해 도메인 지식을 얻을 수 있다. 도메인지식이 충분하지 않은경우 테스트하기 어렵다.
도메인 지식이 부족할 경우 교육이 필요하므로 오버헤드가 필요하다.
시스템 복잡도 테스트 의존도를 고려해야 하는 복잡한 시스템의 경우 면밀하게 테스트 설계가 가능하다 테스트 의존도를 고려하지 않고 테스터의 능력에 의존한다.
문서화 정도 테스트에 관련된 문서가 요구된다 도메인 지식을 갖춘다는 가정하에 문서작성이 요구되지 않는다.
준비시간 많은 준비시간이 요구된다. 준비시간이 요구되지 않는다.
테스트 능력 테스트 설계를 위해 테스트 분석 능력이 요구된다. 탐색적 테스트를 할 수 있는 테스트 능력이 요구된다.
효율성 테스트 준비를 위한 투자가 필요하다 테스트 준비시간이 요구되지 않는다.
테스트에 더 많은 시간을 투입할 수 있다.
커버리지 완료된 테스트를 알 수 있어 테스트 커버리지 파악이 가능하다. 테스트로 커버리지를 알 수 없다.
재생산성 모든 과정을 쉽게 재생산할 수 있다 결함만 재생산할 수 있다.

 

- 세션기반 테스트

: 각 세션별 집중해야 할 미션을 수립하고 테스트

: 각 세션을 진행하면서 ,무엇을 탐험했고, 어떤 정보를 찾았는지 자세하게 메모

: 세션 마지막에는 다른 사람들에게 전달해야하는 정보를 정리. (발견한 버그와 질문, 다음 세션에서 탐험해야할 영역 등)

 

 

 

차터(Charter)

 

- 구성

(1) 목표 : 어느곳을 탐험해야 하는가? 

=> 어떤 기능이나 요구사항일 수도 있고 관련된 특정 모듈일 수도 있다.

(2) 자원 : 어떤 자원을 가지고 갈 것인가?

=> 도구, 데이터, 새로운 기술 등

(3) 정보 : 어떤 종류의 정보를 찾고 싶은가?

=> 보안, 성능, 신뢰성, 가용성, 사용성 등

 

- 차터 양식

✅ 내가 필요한 정보를 찾기 위해서

✅ 사용 가능한 자원을 가지고

✅ 목표가 되는 곳으로 탐험을 떠나자!

 

- 차터 예시

✅ 보안상 취약한 부분을 찾기 위해서

✅ java script와 SQL Injection 공격을 가지고

✅ 입력 필드로 탐험을 떠나자!

 

- 차터 작성 방법

=> 미션에 대한 문장

    * 목적에 부합해야 하고,

    * 작업에 집중하고,

    * 이행 여부를 확인하며

    * 테스트 범위를 기술해야 한다.

=> 작성 방법

    * 간결하고 요점에 맞게

    * 포함 사항과 제외 사항 기술

    * 제약사항을 기술

 

ex) 적절한 차터 예시 1

사용자가 접근 권한이 있는 콘텐츠에 접근 할 수 있는지를 찾기 위해

그럴싸하게 위장된 웹주소와 POST 요청 파라미터를 가지고

로그인을 필요로 하는 웹페이지로 탐험을 떠나자!

 

ex) 적절한 차터 예시 2

✅ 개인 정보 보호 규정을 위반하는 시나리오를 찾기 위해서

개인정보 보호 설정 기능을 가지고

메시지 기능으로 탐험을 떠나자.

 

ex) 적절하지 않은 차터 예시 1

❌ 프로파일 수정 기능이

❌ 작은 따옴표를 가지는 이름을 제대로 처리하는지를 찾기 위해서 O'Melly라는 이름을 가지고

❌ 이름수정으로 탐험을 떠나자

=> 세션은 1~2시간으로 주어지는데 이렇게 너무 구체적이면 TC 몇 개 분량밖에 안됨

ex) 적절하지 않은 차터 예시 2

❌ 보안이 취약한 모든 부분을 찾기 위해서

❌ 사용가능한 모든 해킹 프로그램을 가지고

❌ 시스템 보안으로 탐험을 떠나자

=> 세션이 1~2시간으로 주어지는데 너무 차터가 광범위해서 테스트하기 어렵다.

 

- 차터가 필요한 영역

1) 고장모드

: "어떻게 하면 시스템을 망가뜨릴 수 있을까?"

ex) 유효하지 않는 값, 환경(메모리, 대역폭 등), 스트레스 부하 등

 

2) 창의적인 아이디어

: "만약 이렇게 하면 어떻게 동작할까?"

ex) 고정관념 버리기, 매우큰 데이터 사용, 예상치 않은 상호작용 테스트

 

3) 환경

: "이 제품이 어떤 환경에서 사용할까?"

ex) HW, SW, 상호 의존적인 소프트웨어, OS, browser

 

4) 품질특성

: "이 제품은 어떤 품질특성을 지원해야 하나?"

ex) 성능, 처리율, 가용성, 사용성, 유지보수성, ...성

 

 

 

 

 

'개발 > QA' 카테고리의 다른 글

15. 정적 테스팅 (Static Testing)  (0) 2020.07.11
14. 블랙박스 테스트 3  (0) 2020.07.10
12. 블랙박스 테스트  (0) 2020.07.09
11. 화이트박스 테스트  (0) 2020.07.08
10. 테스트 실행  (0) 2020.07.08
profile on loading

Loading...