References: James Bach "Session-Based Test Management", Elisabeth Hendrickson "Explore It!", Michael Bolton "Rapid Testing".
Applicable Scenarios
- First testing of new features (use cases cannot be exhaustively enumerated)
- Complex business processes / multi-role interactions
- Exploratory spread after Bug fixes
- "Behavior should remain unchanged" verification after refactoring
- Last round of fallback before release
- Already covered by use cases but worried about missed points
Core Principles
1. 探索 = 学习 + 设计 + 执行 同时进行
不是"无脑点",是有意识地观察和推理
-
Timebox (Session) 90-minute segments, avoid unbounded divergence
-
Charter Each session has a clear Mission
-
Real-time recording Take notes while testing, organize afterward
-
Heuristics-driven Use heuristics (such as SFDIPOT) to systematically cover dimensions
## SBTM(Session-Based Test Management)
```text
1. Charter(章程)
- 一句话说明本次 session 的 Mission
- 例:Explore [area] with [resources] to discover [info]
2. Time-box(时间盒)
- 60min 短 / 90min 标准 / 120min 深度
- 不超过 120min(注意力下降)
3. Note-taking(实时笔记)
- 时间戳 + 观察 + 假设 + 问题
4. Debrief(事后梳理)
- 总结发现 + 时间分布 + 遗漏区域
Charter Template
Explore [测试区域]
With [测试资源]
To discover [想发现的信息]
示例:
Explore the order refund flow
With production-like test data and three roles (admin/agent/customer)
To discover edge cases around partial refunds, multi-currency, and concurrent refund attempts
Testing Tour (James Whittaker / Elisabeth Hendrickson)
| Tour name | Focus | Typical findings |
|---|---|---|
| Money Tour | Core money-making features | Payment / subscription / billing vulnerabilities |
| Landmark Tour | Most frequently used features | High-frequency path Bugs |
| Garbage Collector | Corner features | Long-tail / legacy code issues |
| Configuration Tour | Various configuration combinations | Settings cross-interaction issues |
| Locale Tour | Multiple languages / time zones | i18n / time zones / RTL |
| Failure Tour | Network disconnection / power loss / timeout | Fault tolerance / recovery |
| FedEx Tour | Data from input to output | Data integrity |
| Couch Potato | Click nothing | Default behavior |
| Saboteur | Extreme inputs | Boundaries / security |
| Antisocial | Least common inputs | Edge scenarios |
Heuristics (Quick Reference)
SFDIPOT (Product Dimensions)
- Structure: components / files / modules
- Function: what it can do
- Data: inputs / outputs / state
- Interfaces: UI / API / database
- Platform: browser / device / OS
- Operations: how users use it
- Time: time / timing / performance
CRUSSPIC STMPL (Quality Attributes)
Capability / Reliability / Usability / Security / Scalability / Performance / Installability / Compatibility / Supportability / Testability / Maintainability / Portability / Localizability
Goldilocks (Boundaries)
- Too big / too small / just right
Workflow
1. 准备阶段(10 分钟)
- 写 Charter
- 选 Tour 或 Heuristics
- 准备测试数据 / 账号
- 打开记录工具(笔记 / 录屏)
2. Session 阶段(60~120 分钟)
- 按 Charter 探索
- 实时记录:时间戳 + 观察 + 问题
- 发现 Bug 立刻记,不深入修
- 记录"想测但没测"的区域
3. Debrief(15 分钟)
- 整理 Bug → 录入跟踪系统
- 标记遗漏区域 → 下次 Charter
- 时间分布:测试 / 调查 Bug / Setup 占比
4. 沉淀
- 经验 → field-journal
- 高价值 Charter → 模板复用
Note Format
[时间戳] [类型] [内容]
13:05 [Setup] 启动测试账号 user_a, 余额 1000
13:10 [Test] 退款 50%,预期 500,实际 500 ✓
13:15 [Bug?] 输入负数 -100 没拦截,金额变 -100 → 记 Bug-789
13:30 [Question] 多币种汇率刷新时机不明,问产品
13:45 [Test] Failure Tour:断网,重连后状态丢失 → Bug-790
Timebox Allocation Suggestions
60 分钟 session:
- 5 min Setup
- 50 min Testing
- 5 min Debrief
90 分钟 session(标准):
- 10 min Setup
- 70 min Testing
- 10 min Debrief
120 分钟 session:
- 15 min Setup
- 90 min Testing
- 15 min Debrief
Note: fatigue rate rises after exceeding 90 minutes; it is recommended to split into two segments.
Comparison with Use Case-Based Testing
| Dimension | Exploratory | Use Case-Based |
|---|---|---|
| Coverage of the unknown | Strong | Weak (only covers what is written) |
| Repeatability | Weak (depends on the person) | Strong |
| Learning curve | High | Low |
| Automation | Cannot | Can |
| Suitable stage | New features / complex business | Regression / CI |
→ Complementary relationship, not a replacement
Quality self-check
□ Charter 写清楚了 Mission(不是"测一下功能")
□ 选定了 Tour 或 Heuristics
□ 时间盒控制在 90 分钟内
□ 实时记录有时间戳
□ 发现的 Bug 都录入了跟踪系统
□ Debrief 总结了时间分布
□ 标记了"想测但没测"
□ 高价值 Charter 沉淀到 field-journal
Common pitfalls
- Starting testing without a Charter——Losing focus, clicking through the UI for 30 minutes and then clocking out
- Timebox too long——Testing for 3 hours straight, efficiency drops to 0 in the later stage
- Not taking notes——Finding a Bug but describing it unclearly
- Getting stuck investigating a certain Bug——Originally 90 minutes of exploration, 1 hour debugging one Bug
- Not doing a Debrief——Findings not organized, forgotten
- Only testing the UI——Ignoring API / database / logs
- Not reusing Charters——Starting from scratch next time on the same module
- Treating "mindlessly clicking" as exploration——No dimension of thinking
- Not combining with test cases——Thinking exploration can replace regression
Supporting templates
templates/sbtm-charter-template.md— Charter + Heuristics options + Session report + Debrief checklist
Collaboration with other skills
上游:
risk-based-testing → 高风险区域优先 charter
test-strategy → 探索式占比由策略决定
平行:
test-case-design → 探索发现的 Bug 转化为回归用例
下游:
bug-reporting → 发现 Bug 录入
regression-testing → 高价值 Charter 转化为回归用例
field-journal → Charter 复用