본문 바로가기
QA/Theory

탐험적 테스팅(EXPLORE IT)

by 화뉘 2016. 2. 3.

탐험적 테스팅 :  배우고 통찰하며 개선하는 소프트웨어 테스트, 엘리자베스 핸드릭슨 지음. 오광신 옮김. 인사이트

1장. 테스팅과 탐험에 대해서

  • 테스트케이스에는 두 가지 핵심 질문에 대답할 수 있는 테스트 전략이 필요하다.
    • 소프트웨어가 주어진 환경과 조건에서, 의도한 대로 동작하는가?
    • 다른 위험 요소들이 있는가?
  • 탐험적 테스팅은 그물망이 아무리 촘촘하게 만들어도 잡아내지 못하는 부분들을 조사하는 것을 포함하고 있다. 실제 소프트웨어를 직접 사용해보면서, 테스트를 위한 작은 실험들을 설계해서 실행해보고, 그 결과를 반영해서 다음 실험을 설계하고 실행하는 연속적인 작업을 신속하게, 그리고 계속 진행해야 한다.
  • 그저 반복만 하는 것은 절대 도움이 안되지만, 변화를 주면서 반복하게 되면 무엇인가 놀랄만한 새로운 것들을 얻을 수 있다.
  • 테스트 완료 =  확인하기 (모든 기능의 동작 확인하기) + 탐험하기 (모든 위험 요소 탐험하고 돌아오기)
  • 탐험적 테스팅은 학습, 테스트 설계, 테스트 실행, 이 세가지가 동시에 일어나는 테스팅 방법이다 - 제임스 바크(Exploratory Testing Explained, 2003)
  • 탐험적 소프트웨어 테스팅은, (1) 테스트를 통해 얻게 되는 학습, (2) 테스트 설계, (3) 테스트 수행, (4) 테스트 결과 해결, 이 네가지 모두를 상호간에 도움을 주면서 동시에 실행 될 수 있는 활동들로 간주하고, 가치 있는 테스트 결과를 가장 효과적으로 끊임없이 얻기 위해 테스터 개개인의 자유 의지와 책임감을 강조하는 소프트웨어 테스팅의 한 방법이다. - 켐가너
  • 저자 : 시스템을 완벽하기 테스트하기 위해 테스트 도중에 지난 테스트로부터 배운 것들을 다음 테스트를 위해 사용하면서 테스트 설계와 테스트 수행을 동시에 진행하는 테스트 방법이다.
  • 탐험적 테스팅을 다른 테스팅 방법과 쉽게 구분할 수 있도록 해주는 것이 탐험적 테스팅에서는 바로바로 실행에 옮긴다는 사실이다.
  • 찾아야할 가장 중요한 정보에 집중하면서 동시에 방향을 전환하는 것은 탐험적 테스팅의 전문가가 지녀야할 핵심 기술 중 하나이다.
  • 목적도 없이 해매다가 시간만 투자하고 유용한 정보를 하나도 얻지 못하고 끝나는 경우도 있기 때문에 존바크와 제임스 바크는 이런 경우에 대한 해결택으로 세션 기반 테스트 관리 즉, 주어진 시간을 시간이 정해져 있는 세션들로 나눠 구성하는 것을 제안했다. 각 세션을 진행하면서 무엇을 탐험했고, 어떤 정보를 찾았는지 꼼꼼하게 메모를 하되, 이런 메모는 개인적인 용도임을 잊지말자. 그리고 세션 마지막에 다른 사람들에게 전달해야 하는 정보들을 정리한다.

2장. 탐험을 위한 차터 작성

  • 소프트웨어 탐험의 궁극적인 목표는 이해관계자들이 관심을 가지고 있고 그들에게 가치가 있는 정보를 찾아내는 것이다. 
    • 목표 : 어느 곳을 탐험해야 할까? 어떤 기능이나 요구 사항일 수도 있고, 관련된 특정 모듈일 수도 있다.
    • 자원 : 어떤 자원들을 가지고 갈 것인가? 도움을 주는 도구, 데이터, 새로운 기술, 환경 설정 또는 상호 의존적인 다른 기능들도 자원이 될 수 있다.
    • 정보 :  어떤 종류의 정보를 찾고 싶은가? 보안, 성능, 신뢰성, 가용성, 사용성 또는 시스템의 특정 측면에 우선 순위를 두고 찾고 있는가? 설계의 일관성이나 표준을 위반하는 부분들을 찾고 있는가?
  • 차터를 실행해 옮길 때, 주어진 상황에 따라 여러 단계의 변화가 필요하다는 것을 인지하고, 고려해야 한다. 탐험을 진행할 때, 특정한 정보나 위험 요소에 더욱 더 집중할 수 있게 도와주는 것이 차터이고, 이것이 바로 우리가 차터를 만들어야 하는 이유이다.
  • 차터 양식이 모든 상황에 완벽하게 적합할 수 없기 때문에 단지 가이드 역할을 해준다는 사실을 기억해야 한다. (모든 차터를 양식에 무리하게 끼워 맞추지는 말아야 한다.) 차터를 만드는 것에 익숙하지 않을 때는 양식을 사용하는 것이 좋지만 경험이 많이 쌓여 익숙해지면, 그저 차터 양식의 빈자리를 채우기보다는 현재 작성하고 있는 차터가 이번 탐험의 목적과 이유를 더욱 더 잘 반영하도록 해야 한다.
  • 좋은 차터란 테스트 순서 하나하나를 일일이 구체적으로 명시하지 않으면서도 테스트가 나아가야 할 방향을 알려주는 차터이다. 훌륭한 차터는 아주 명확한 행동 지침이나 결과물에 대한 언급 없이도 영감의 원천이 되는 힌트여야 한다.

3장. 세심하게 관찰하기

4장. 눈여겨볼 변수 찾아내기

5장. 결과를 가지고 판단하기

6장. 순서와 상호 작용 다양하게 바꿔보기

7장. 개체와 개체들 사이의 관계 탐험하기

8장. 상태와 전이 발견하기

9장. 소프트웨어 생태계 탐험하기

10장. 사용자 화면이 없는 곳 탐험하기

11장. 기전 시스템 탐험하기

12장. 요구 사항 탐험하기

13장. 처음부터 끝까지 탐험 적용하기

부록1. 탐험적 테스팅 기법 면접하기

부록2. 테스트 휴리스틱 치트 시트

 

'QA > Theory' 카테고리의 다른 글

ISTQB Agile Test Extension  (0) 2016.02.03
ISO/IEC 25010 품질특성과 품질 부특성  (0) 2016.02.03
애자일 테스팅(Agile Testing)  (1) 2014.10.21
Scrum(스크럼)  (0) 2014.08.20
소프트웨어 테스팅의 기초-4  (0) 2010.04.07

댓글