용어집 · 테스트 기초
테스트 시나리오
영어: Test scenario
다른 이름: test scenarios, 시나리오 테스트
정의
"저장된 카드로 결제 확인"처럼 테스트할 사용자 목표나 기능을 상위 수준에서 한 줄로 기술한 것으로, 이후 테스트 케이스로 세분화됩니다.
테스트 시나리오는 어떻게 테스트할지가 아니라 무엇을 테스트할지를 설명합니다. 보통 사용자 목표나 기능 하나를 사용자 관점에서 한 줄로 적습니다. 시나리오는 작성과 리뷰가 빠르기 때문에, 상세한 테스트 케이스에 공을 들이기 전에 기획자·개발자와 테스트 커버리지에 합의하는 좋은 수단이 됩니다.
예시
비밀번호 재설정 기능이라면 시나리오는 다음과 같을 수 있습니다.
- 가입된 사용자가 이메일로 받은 링크를 통해 비밀번호를 재설정할 수 있는지 확인한다.
- 가입되지 않은 이메일로 재설정을 요청해도 계정 존재 여부가 드러나지 않는지 확인한다.
- 만료된 재설정 링크가 거부되는지 확인한다.
- 재설정 링크를 두 번 사용할 수 없는지 확인한다.
- 새 비밀번호가 비밀번호 정책을 충족해야 하는지 확인한다.
이후 시나리오 3은 구체적인 데이터를 가진 여러 테스트 케이스로 나뉩니다. 만료 1분 전에 사용한 링크, 정확히 만료 시점에 사용한 링크, 만료 1분 후에 사용한 링크, 그리고 토큰이 변조된 링크입니다.
시나리오와 테스트 케이스의 차이
| 테스트 시나리오 | 테스트 케이스 | |
|---|---|---|
| 수준 | 상위: 무엇을 테스트할지 | 상세: 어떻게 테스트할지 |
| 내용 | 한 줄짜리 목표 | 사전 조건, 데이터, 절차, 기대 결과 |
| 개수 | 기능당 몇 개 | 시나리오당 여러 개 |
| 적합한 용도 | 커버리지 리뷰, 빠르게 움직이는 프로젝트 | 실행, 자동화, 감사 |
BDD에서의 시나리오
Gherkin의 Scenario:는 구체적인 단계와 예시를 담고 있으므로, 전통적인 의미의 테스트 시나리오보다는 테스트 케이스에 더 가깝습니다. 누군가 “시나리오”라고 말하면 어느 의미로 쓰는지 확인하십시오.
흔한 실수
- 목표 대신 절차를 적는 것. “재설정 버튼을 클릭한다”는 절차이지 시나리오가 아닙니다.
- 정상 경로(happy path)만 다루는 것. 대부분의 결함은 부정, 경계값, 보안 시나리오(위의 2번 같은)에 숨어 있습니다.
- 리뷰를 건너뛰는 것. 시나리오의 가장 큰 가치는 테스터가 아닌 사람도 읽고 누락된 케이스를 일찍 찾아낼 수 있다는 점입니다.