| name | exploratory |
| version | 0.4.0 |
| description | 탐색적 테스트 세션을 생성하고 안내합니다. 세션 차터를 작성하고, 휴리스틱
기법을 활용하여 시간 제한된 비정형 테스트를 실행하며, 발견 사항을 새로운
테스트 시나리오, UX 개선사항, 누락 커버리지로 기록합니다.
발견 사항을 지식 베이스(KB)와 테스트 케이스에 반영합니다.
사용 시점: "exploratory test", "explore this feature", "charter for testing".
사용하지 않을 때: 정형 테스트 케이스 실행 시 (/qa 사용), 특정 버그 수정 검증 시 (/verify-fix 사용), 테스트 계획 수립 시 (/test-plan 사용).
|
| tool-groups | ["bash","read","write","glob","grep","ask","jira","browser"] |
| preamble-tier | 2 |
/exploratory: 탐색적 테스트 세션
탐색적 테스트 세션을 안내하고 실행하는 SDT 파트너입니다.
탐색적 테스트는 정형 테스트가 놓치는 것을 발견하기 위한 비정형, 시간 제한,
차터 기반 테스트입니다.
제약 사항
- 비정형을 유지. 차터는 방향을 제시하지, 단계를 정하지 않습니다. 예상치 못한 것을 따라갑니다.
- 시간 제한을 엄격히 준수. 시간이 끝나면 정리합니다. SDT 동의 없이 연장하지 않습니다.
- 모든 발견 사항을 분류. 프리앰블 척도에 따라 심각도와 우선순위를 부여합니다. 미분류 발견 사항은 없어야 합니다.
- 흥미로운 것은 모두 스크린샷. 증거 없는 발견 사항은 발견 사항이 아닙니다.
- 콘솔을 지속적으로 확인. 모든 상호작용, 모든 페이지 로드 후에 확인합니다.
- 발견만 하고 수정하지 않기. 발견 사항은
/test-cases와 /qa에 반영합니다. 여기서 수정하거나 자동화하지 않습니다.
- 탐색하지 못한 영역을 기록. 다음 세션을 위해 미탐색 영역을 나열합니다.
- 항상 브라우저를 사용. /exploratory가 호출되면 브라우저 테스트를 거부하지 않습니다.
Phase 1: 설정
방법론 참조: {{REFERENCE_PATH}}/playbook/에서 읽기:
test-types.md -- 탐색적 테스트의 정의, 목적, 시점
metrics-and-coverage.md -- 탐색적 테스트가 커버리지 갭을 채우는 방법
test-distribution.md -- 발견 사항을 올바른 테스트 레이어에 할당하는 방법
exploratory-heuristics.md -- 휴리스틱 범주, 기법, 발견 범주
-
.qabuddy.json 읽기 (있는 경우) -- 컨텍스트 소스와 팀 모드를 확인합니다.
contextSource: "spec" -> 질문하기 전에 워크스페이스에서 스펙 파일을 검색합니다
contextSource: "chat" -> Jira를 건너뛰고 SDT에게 직접 컨텍스트를 요청합니다
contextSource: "jira" 또는 설정 없음 -> 기본 동작
-
요청 파싱: 기능/티켓 키, URL (자동 감지 또는 요청), 시간 제한 (기본 45분, --quick 30분, --deep 60분), 초점 영역(지정된 경우).
-
먼저 KB에서 컨텍스트 로드: features-kb/index.json, feature.md, 기존 테스트 케이스, 이전 QA 보고서를 읽습니다. 오래되었거나 없으면 Jira에서 가져오거나 SDT에게 요청합니다.
-
이미 테스트된 것을 파악 -- 기존 자동화 테스트와 커버 범위를 나열합니다. 탐색적 테스트는 이 테스트들이 놓치는 것을 찾습니다.
-
앱 감지 -- 지정된 URL 또는 일반 포트(3000, 4000, 5173, 8080)에서 앱을 찾습니다. .qa-reports/screenshots/를 생성합니다.
Phase 2: 차터 생성
exploratory-heuristics.md에서 휴리스틱 범주 표를 읽습니다.
커버리지 갭 분석: 테스트 케이스가 없는 AC는? 해피 패스만 있는 테스트는? AC에 없는 항목은?
위험 기반 초점: 심각도가 높은 영역에 더 많은 시간을 배분합니다. 신규/변경된 코드 경로와 외부 연동은 고위험입니다.
차터 템플릿:
# 탐색적 테스트 차터
**기능:** {name} | **에픽:** {KEY} | **티켓:** {keys}
**날짜:** {YYYY-MM-DD} | **시간 제한:** {30|45|60}분 | **URL:** {target}
## 미션
{1-2문장}
## 이미 테스트된 항목
- {N}개 E2E 테스트: {요약} | {N}개 API 테스트: {요약} | 갭: {목록}
## 초점 영역 (위험도 순위)
1. **{영역}** ({휴리스틱}) -- {이유}. ~{N}분
2. **{영역}** ({휴리스틱}) -- {이유}. ~{N}분
## 범위 밖
- {제외 영역}
SDT에게 제시합니다. "이 차터가 맞나요? 시작 전에 초점 영역을 조정하시겠습니까?"
Phase 3: 탐색 실행
초점 영역을 우선순위 순으로 진행합니다. 각 영역에 대해:
- 이동 -> 관찰 -> 스크린샷 -> 가설 수립 -> 실험 -> 기록 -> 흥미로운 것을 따라가기
exploratory-heuristics.md에서 해당 휴리스틱 범주의 기법 체크리스트를 읽습니다.
탐색 중: 스크린샷을 자주 촬영하고, 모든 상호작용 후 콘솔을 확인하고, "X를 기대했지만 Y를 봄"을 기록하고, 영역별 시간을 추적하고, 예상치 못한 것을 따라갑니다.
Phase 4: 발견 사항 기록
발견 즉시 기록합니다. exploratory-heuristics.md에서 발견 범주를 읽습니다.
발견 형식:
### 발견 {N}: {제목}
**범주:** {범주} | **심각도:** {레벨} | **우선순위:** {레벨}
**초점 영역:** {영역} | **발견 경로:** {휴리스틱}
**수행한 것:** {단계} | **기대한 것:** {기대} | **실제 일어난 것:** {실제}
**스크린샷:** {경로} | **콘솔:** {에러 또는 정상}
**조치:** {테스트 추가 / 버그 등록 / 논의 / UX 개선}
Phase 5: 자체 평가
Phase 6: 마무리
보고서 템플릿:
# 탐색적 테스트 보고서
**기능:** {name} | **에픽:** {KEY} | **날짜:** {YYYY-MM-DD}
**소요 시간:** {actual} / {planned} | **URL:** {target}
## 세션 결과
| 지표 | 건수 |
|------|------|
| 새 시나리오 / 버그 / UX 우려 / 누락된 요구사항 / 질문 | {각각 N} |
## 초점 영역 결과
| 초점 영역 | 소요 시간 | 발견 건수 | 비고 |
|----------|----------|---------|------|
## 상세 발견 사항
{Phase 4의 모든 발견 사항}
## 권장사항
- **UAT 진행** / **추가 세션 필요** ({사유}) / **차단됨** ({사유})
## 다음 조치
1. {/skill 참조를 포함한 조치}
**Status:** DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT
**Summary:** {한 줄}
**Next steps:** {다음 조치}
.qa-reports/exploratory-{EPIC-KEY}-{YYYY-MM-DD}.md에 저장합니다. KB를 업데이트합니다: feature.md에 엣지 케이스를 추가하고, /test-cases --update로 새 시나리오를 표시하고, index.json을 갱신합니다.
협업 모드
SDT 주도: SDT가 브라우저를 조작하고, Claude는 휴리스틱을 제안하고, 콘솔 에러를 포착하고, 발견 사항을 기록합니다.
Claude 주도: Claude가 조작하고, SDT는 도메인 지식을 제공하고 심각도를 판단합니다.
하이브리드 (기본): Claude가 체계적 기법을 담당하고, SDT가 직관 기반 탐색을 담당합니다. Claude가 모든 것을 기록합니다.