탐색적 테스팅(Exploratory Testing)

탐색적 테스팅(Exploratory Testing)은 소프트웨어 테스팅의 한 접근 방식으로, 테스터의 창의성, 경험, 직관을 활용하여 소프트웨어를 자유롭게 탐색하며 결함을 발견하는 과정이다. 이 방법은 사전에 정의된 테스트 케이스에 의존하지 않고, 테스트 설계와 실행을 동시에 수행하는 특징이 있다.

주요 특징

  1. 테스터 중심: 테스터의 경험, 지식, 창의력을 최대한 활용한다.
  2. 유연성: 미리 정의된 테스트 케이스 없이도 즉시 테스트를 시작할 수 있다.
  3. 학습과 실행의 동시 진행: 소프트웨어를 사용하면서 동시에 새로운 테스트 시나리오를 생성한다.
  4. 발견 중심: 문서화보다는 결함 발견과 해결에 집중한다.

핵심 구성 요소

  1. 테스트 차터: 테스트의 목적과 범위를 정의하는 간단한 문서.
  2. 시간 제한(Time Boxing): 정해진 시간 동안 집중적으로 테스트를 수행한다.
  3. 테스트 노트: 테스트 중 발견한 사항과 아이디어를 기록한다.
  4. 요약 보고(Debriefing): 테스트 결과와 발견된 이슈를 팀과 공유한다.

장점

  1. 속도와 비용 효율성: 사전 준비가 적어 빠르게 테스트를 시작할 수 있다.
  2. 예상치 못한 버그 발견: 정형화된 테스트로는 찾기 어려운 버그를 발견할 수 있다.
  3. 사용성 개선: 사용자 관점에서 제품을 평가할 수 있다.
  4. 요구사항 변화에 대응: 애자일 개발 환경에 적합하다.

단점

  1. 주관성: 테스터의 개인 능력에 크게 의존한다.
  2. 테스트 범위 확인 어려움: 체계적인 계획이 없어 테스트 범위를 정확히 파악하기 어렵다.
  3. 관리와 통제의 어려움: 테스트의 양과 질을 관리하기 어려울 수 있다.

적용 사례

예를 들어, MP3 플레이어 앱을 테스트할 때 다음과 같은 탐색적 테스팅을 수행할 수 있다:

  1. 음악 재생 중 전화가 왔을 때의 동작 확인
  2. 백그라운드에서 음악 재생 시 다른 앱과의 상호작용 테스트

참고 및 출처