매거진 QA의 시작

Exploratory Testing

프로세스 및 기법 관련

by 제임스

Exploratory Testing(탐색적 테스트)는 마치 미지의 숲을 탐험하는 탐험가처럼 소프트웨어를 자유롭게 탐색하면서 결함을 발견하는 과정입니다.

정해진 계획서나 절차에 얽매이지 않고, 테스터의 경험, 창의력, 직관을 최대한 활용해 소프트웨어의 약점을 찾아내는 데 초점을 맞춥니다.



Exploratory Testing이란?


Exploratory Testing은 말 그대로 탐험하듯이 소프트웨어를 테스트하는 것을 의미합니다.

• 정해진 테스트 케이스를 따르기보다는, 직접 소프트웨어를 사용하면서 예상치 못한 문제를 발견합니다.

• 주로 요구사항 문서가 불완전하거나, 정밀한 테스트 계획을 세우기 어려운 초기 단계에서 유용합니다.


예를 들어,

• 새롭게 개발된 쇼핑몰 앱에서, “검색창에 숫자만 입력하면 어떻게 될까?”, “잘못된 쿠폰 코드를 입력하면 어떤 일이 벌어질까?” 같은 궁금증을 가지고 테스트를 수행합니다.



Exploratory Testing의 주요 특징


1. 테스터 중심 테스트

• 경험, 직관, 창의력을 활용해 테스터가 테스트 설계자와 실행자가 되는 방식입니다.

예: “로그인 화면에서 비밀번호 필드에 특수 문자만 입력하면 어떻게 될까?”

2. 즉흥적이고 유연함

• 사전에 계획된 테스트 케이스가 없어도 즉시 테스트를 시작할 수 있습니다.

예: “장바구니 기능을 탐색하다가, 예상하지 못한 UI 결함을 발견”

3. 학습과 실행의 동시 진행

• 소프트웨어를 사용하면서 동시에 테스트 방법을 배우고 새로운 시나리오를 생성합니다.

예: “사용하다 보니 특정 버튼이 예상과 다르게 작동하는 걸 발견하고, 그 주변 기능을 추가로 점검”

4. 문서화보다 발견 중심

• 테스트 과정의 문서화보다는 결함 발견과 해결에 더 집중합니다.



Exploratory Testing은 마치...


Exploratory Testing은 새로운 레스토랑에서 메뉴를 처음 탐색하는 과정과 비슷합니다.

• 정해진 메뉴를 미리 고르지 않고,

• “이 요리는 어떤 맛일까?”, “특이한 소스를 추가하면 더 맛있을까?”

• 메뉴판에 없는 조합을 시도해보면서 예상치 못한 맛을 발견하는 과정이 탐색적 테스트와 유사합니다.



Exploratory Testing의 실제 사례


사례 1: 쇼핑몰 앱

탐험 과정

1. 상품 검색창에 특수 문자만 입력

2. 상품 이름을 초성만 입력

3. 결제 버튼을 여러 번 빠르게 클릭

발견된 결함

• 검색 결과 페이지가 비정상적으로 로드됨.

• 초성 검색 시 앱이 멈춤.

• 빠른 클릭으로 결제 버튼이 중복 처리됨.


사례 2: 채팅 애플리케이션

탐험 과정

1. 친구 목록에서 친구를 빠르게 추가 및 삭제

2. 채팅창에 매우 긴 메시지 입력

3. 이미지 전송 후 바로 취소 버튼 클릭

발견된 결함

• 친구 삭제 후 목록이 갱신되지 않음.

• 긴 메시지 전송 시 앱이 멈춤.

• 취소 버튼 클릭 시 이미지가 삭제되지 않음.



Exploratory Testing의 장점


1. 빠른 피드백 제공

• 초기 단계에서 예상치 못한 결함을 발견해 빠르게 수정할 수 있습니다.

2. 요구사항이 불완전한 경우 유용

• 요구사항 문서가 미흡하거나, 명확히 정의되지 않은 기능을 테스트할 때 특히 효과적입니다.

3. 테스터의 창의력 발휘

• 반복적이고 기계적인 테스트와 달리, 창의적이고 유연한 접근 방식으로 테스트를 수행합니다.

4. 비정형적 결함 발견

• 일반적인 테스트 케이스로는 발견하기 어려운 예외 상황을 쉽게 발견할 수 있습니다.


Exploratory Testing의 단점


1. 문서화 부족

• 테스트 케이스나 결과를 체계적으로 문서화하기 어려운 경우가 많습니다.

2. 결과 재현의 어려움

• 결함을 발견하더라도, 정확히 동일한 과정을 재현하기 어려울 수 있습니다.

3. 경험에 의존

• 경험과 직관에 크게 의존하므로, 숙련된 테스터가 아니라면 테스트 품질이 떨어질 수 있습니다.



Exploratory Testing과 주니어 QA의 연결점


1. 호기심과 창의력을 발휘

• 주니어 QA 엔지니어는 제한된 경험을 보완하기 위해 창의적이고 열린 사고로 탐색적 테스트를 수행할 수 있습니다.

2. 소프트웨어 이해도 향상

• 소프트웨어를 사용하면서 다양한 기능과 상호작용을 배우게 됩니다.

3. 테스트 감각 훈련

• “어떤 조건에서 문제가 발생할까?“라는 질문을 스스로 던지며 테스트 감각을 키울 수 있습니다.



Exploratory Testing vs. Scripted Testing

스크린샷 2024-12-15 15.22.14.png Exploratory Testing vs. Scripted Testing


Exploratory Testing은 소프트웨어의 숨겨진 결함을 발견하는 창의적인 과정입니다.

주니어 QA 엔지니어에게 탐색적 테스트는 소프트웨어의 작동 방식을 이해하고, 요구사항 문서를 넘어서는 결함을 발견하는 강력한 도구가 될 수 있습니다.


호기심”과 “창의성”만 있다면 누구나 훌륭한 탐색적 테스터가 될 수 있습니다!

keyword
매거진의 이전글Smoke Testing