exploratory-testing

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<objective> Structured exploration that finds bugs scripted tests miss. Exploratory testing is simultaneous learning, test design, and execution -- the tester adapts in real time based on what the application reveals. This skill provides the frameworks to make that exploration systematic, repeatable, and documentable. </objective>
<objective> 结构化探索可发现脚本测试遗漏的缺陷。探索性测试是学习、测试设计与执行同步进行的过程——测试人员会根据应用呈现的情况实时调整测试策略。本技能提供相关框架,让探索过程系统化、可重复且可记录。 </objective>

Quick Route

快速指南

Match the situation to a charter pattern and the reference section to open.
SituationCharter patternOpen in references
New feature — learn it, find requirement gaps"Explore [feature] with various roles/data to discover requirement gaps and unexpected behaviors"Charter examples + session flow in
session-templates.md
; boundary/"what if" banks in
heuristics-and-automation.md
Regression — a change just landed"Explore [area] after [change] to discover regressions at integration points"State-transition heuristics in
heuristics-and-automation.md
Bug investigation — vague report ("sometimes slow")"Explore [area] with [reported conditions] to discover exact reproduction steps"Session flow + session-log template in
session-templates.md
; error-handling heuristics in
heuristics-and-automation.md
Full time splits for each row are in Session Planning by Context below.

根据场景匹配对应的章程模式,并打开参考章节。
场景章程模式参考文档
新功能 — 了解功能、发现需求缺口"探索[功能],结合不同角色/数据,发现需求缺口与异常行为"
session-templates.md
中的章程示例+会话流程;
heuristics-and-automation.md
中的边界/「假设场景」库
回归测试 — 刚完成代码变更"探索[区域]在[变更]后的情况,发现集成点处的回归问题"
heuristics-and-automation.md
中的状态转换启发式方法
缺陷排查 — 模糊的缺陷报告(如「有时卡顿」)"探索[区域]在[报告条件]下的情况,找到确切的复现步骤"
session-templates.md
中的会话流程+会话日志模板;
heuristics-and-automation.md
中的错误处理启发式方法
每一行对应的完整时间分配详见下方「按场景规划测试会话」。

Discovery Questions

探索前置问题

Before designing a session, gather context. Check
.agents/qa-project-context.md
first -- if it exists, use it as the foundation and skip questions already answered there.
在设计测试会话前,先收集上下文信息。请先查看
.agents/qa-project-context.md
——如果该文件存在,以此为基础,跳过已解答的问题。

Target Area

目标区域

  • What feature, module, or flow is the exploration target?
  • Is this a new feature (discovery mode) or existing feature (regression mode)?
  • What is the most recent change to this area?
  • Are there known risk areas or previous bug clusters here? (See
    risk-based-testing
    for risk data.)
  • 本次探索的目标是哪个功能、模块或流程?
  • 这是新功能(探索模式)还是已有功能(回归模式)?
  • 该区域最近的一次变更是什么?
  • 该区域是否存在已知风险点或过往缺陷集中出现的情况?(查看
    risk-based-testing
    获取风险数据。)

Hypotheses and Suspicions

假设与疑虑

  • What do you think might break? (Hunches are valid starting points.)
  • What did the developer say was tricky or uncertain?
  • Are there areas the automated suite does not cover?
  • Have users reported issues in this area before?
  • 你认为哪些部分可能出现问题?(直觉是有效的出发点。)
  • 开发者曾提到哪些部分实现难度大或存在不确定性?
  • 自动化测试套件未覆盖哪些区域?
  • 用户曾反馈过该区域的哪些问题?

Time and Scope

时间与范围

  • How much time is available for this session? (45-90 minutes is optimal.)
  • Is this a broad survey (casting a wide net) or deep dive (focused attack on one area)?
  • What environments and data sets are available?
  • Are there specific platforms, browsers, or device types to focus on?
  • 本次测试会话可用时长是多少?(45-90分钟为最佳时长。)
  • 本次是全面排查(广泛覆盖)还是深度测试(聚焦某一区域)?
  • 可用的测试环境与数据集有哪些?
  • 是否需要重点关注特定平台、浏览器或设备类型?

Team Context

团队上下文

  • Who built the feature? (Pairing with the developer during exploration can be powerful.)
  • Is there a tester who has domain expertise in this area?
  • Who should receive the session report?

  • 谁开发了该功能?(测试过程中与开发者结对会很有帮助。)
  • 是否有测试人员具备该领域的专业知识?
  • 测试会话报告应提交给谁?

Core Principles

核心原则

1. Structured Freedom

1. 结构化自由

Exploratory testing is not "click around and see what happens." It is guided by a charter that defines the target, resources, and information goal. Within that charter, the tester has freedom to follow leads, investigate anomalies, and change direction based on discoveries. The structure makes it repeatable; the freedom makes it effective.
探索性测试并非「随意点击看看会发生什么」。它由明确测试目标、资源与信息获取目的的章程引导。在章程范围内,测试人员可以自由跟进线索、调查异常情况,并根据发现调整测试方向。结构化让测试可重复,自由度让测试更有效。

2. Document As You Go

2. 实时记录

Observations not recorded are observations lost. Take notes during the session, not after. Record what you did, what you saw, and what questions arose. The session log is the deliverable -- it replaces a test script.
未记录的观察结果等于不存在。请在测试会话过程中记录笔记,而非事后补记。记录你的操作、观察到的现象以及产生的疑问。会话日志是交付成果——它替代了测试脚本。

3. Heuristics Over Scripts

3. 启发式优先于脚本

Heuristics are thinking tools that guide exploration without dictating exact steps. HICCUPS and FEW HICCUPS (below) provide systematic lenses for examining software. They help testers ask better questions and notice things they would otherwise miss.
启发式是引导探索的思维工具,而非规定具体步骤的清单。下文的HICCUPS与FEW HICCUPS提供了系统化的视角来检查软件,帮助测试人员提出更好的问题,发现原本可能遗漏的问题。

4. Time-Boxed Sessions

4. 限时会话

Open-ended exploration suffers from diminishing returns. After 90 minutes, fatigue reduces bug-finding effectiveness. Time-box sessions to 45-90 minutes, then debrief. Short focused sessions outperform long unfocused ones.
开放式探索的收益会逐渐递减。90分钟后,疲劳会降低缺陷发现效率。将测试会话限时在45-90分钟内,然后进行复盘。短而聚焦的会话效果优于长而松散的会话。

5. Bugs Found Are the Beginning, Not the End

5. 发现缺陷只是开始,而非结束

An exploratory session that finds a bug has only done half its job. The other half is: Could this bug have been caught by an automated test? If yes, write that test. Exploratory testing feeds the automation pipeline.

发现缺陷的探索性测试只完成了一半工作。另一半是:这个缺陷能否通过自动化测试捕获?如果可以,编写对应的自动化测试。探索性测试为自动化测试管道提供输入。

Session-Based Test Management (SBTM)

基于会话的测试管理(SBTM)

SBTM gives exploratory testing a management layer: charters define intent, sessions are the unit of work, debriefs extract learnings.
Canonical references:
  • SBTM PDF (Jon Bach / James Bach, satisfice.com) — https://www.satisfice.com/download/session-based-test-management
  • Taking Testing Seriously: The Rapid Software Testing Approach (Bach & Bolton, Wiley 2025) — current authoritative RST/SBTM book.
  • HTSM v6.3 (Bach, last updated Dec 2024) — emphasizes state-based testing and boundary heuristics. Pair with HICCUPS below.
SBTM为探索性测试提供管理层面的框架:章程明确测试意图,会话是工作单元,复盘提取经验教训。
权威参考资料:
  • SBTM PDF(Jon Bach / James Bach,satisfice.com)—— https://www.satisfice.com/download/session-based-test-management
  • Taking Testing Seriously: The Rapid Software Testing Approach(Bach & Bolton,Wiley 2025)——当前权威的RST/SBTM著作。
  • HTSM v6.3(Bach,最后更新于2024年12月)——强调基于状态的测试与边界启发式方法,搭配下文的HICCUPS使用。

Charter Template

章程模板

A charter is a one-sentence mission statement following this pattern:
Explore [target]
  with [resources]
  to discover [information]
Charter quality checklist:
  • Target is specific enough to guide exploration (not "explore the app")
  • Resources name specific tools, data, or conditions to use
  • Information goal describes what you want to learn, not what you want to prove
  • A single session can reasonably cover the charter in 45-90 minutes
See
references/session-templates.md
for five worked charter examples (checkout, profile, search, data export, multi-user collaboration).
章程是遵循以下模式的一句话任务说明:
探索[目标]
  使用[资源]
  以发现[信息]
章程质量检查清单:
  • 目标足够具体,能引导探索(而非「探索整个应用」)
  • 资源明确列出要使用的特定工具、数据或条件
  • 信息目标描述你想要了解的内容,而非想要证明的内容
  • 单个会话可在45-90分钟内合理完成该章程
查看
references/session-templates.md
获取五个已完成的章程示例(结账、个人资料、搜索、数据导出、多用户协作)。

Session Setup, Flow, and Debrief

会话准备、流程与复盘

The full session lifecycle — pre-session setup steps, environment preparation checklist, the minute-by-minute session flow, the "when you find something interesting" loop, and the structured debrief template — lives in
references/session-templates.md
. Pull it up at the start of a session and keep it open.
Key timing guardrails to remember without opening the reference: orient and survey in the first 15 minutes, explore for ~40, wrap up and debrief at the end. Always debrief, even solo.

完整的会话生命周期——会前准备步骤、环境准备清单、分分钟的会话流程、「发现异常时」的处理流程,以及结构化复盘模板——均收录在
references/session-templates.md
中。会话开始时打开该文档,并全程保持打开状态。
无需打开参考文档即可记住的关键时间规则:前15分钟熟悉环境与概览,约40分钟进行探索,最后进行收尾与复盘。即使是单人测试,也务必进行复盘。

Bug Discovery Heuristics

缺陷发现启发式方法

Heuristics are mental models that guide exploration. They are not checklists to exhaustively complete -- they are lenses to look through.
启发式是引导探索的思维模型,并非需要逐一完成的清单——它们是审视软件的不同视角。

HICCUPS

HICCUPS

A mnemonic for seven oracles that reveal bugs. An oracle is a principle for recognizing problems.
LetterOracleWhat to CheckExample Questions
HHistoryDoes current behavior match past behavior?Did this work in the last release? Has the behavior changed subtly?
IImageDoes it match the product's brand and quality bar?Does this look polished? Does it feel consistent with the rest of the app?
CComparableHow do similar products handle this?What does the competitor do here? What is the industry standard?
CClaimsDoes it match what was promised?Does it match the spec? The marketing page? The tooltip text?
UUser expectationsWould a real user find this confusing or frustrating?Would my mother understand this? Would a power user be annoyed by this?
PProductIs it consistent with other parts of the same product?Does this error message match the style of other error messages?
SStandardsDoes it comply with applicable standards?WCAG for accessibility, RFC for protocols, GDPR for data handling?
用于识别缺陷的七种测试依据(Oracle)的助记符。测试依据是判断问题的原则。
字母Oracle检查要点示例问题
HHistory当前行为是否与过往行为一致?上一版本中此功能是否正常?行为是否发生了细微变化?
IImage是否符合产品的品牌定位与质量标准?界面是否精致?是否与应用其他部分风格一致?
CComparable同类产品如何处理此场景?竞争对手在此处的做法是什么?行业标准是什么?
CClaims是否与承诺的内容一致?是否与规格说明书、营销页面、提示文本相符?
UUser expectations真实用户是否会对此感到困惑或沮丧?我的母亲能理解这个功能吗?资深用户会对此感到不满吗?
PProduct是否与产品其他部分保持一致?此错误提示是否与其他错误提示风格一致?
SStandards是否符合适用的标准?是否符合WCAG无障碍标准、RFC协议标准、GDPR数据处理标准?

FEW HICCUPS (Extended)

FEW HICCUPS(扩展版)

Adds three lenses to the base HICCUPS model:
LetterOracleWhat to Check
FFamiliarityWould a first-time user understand this without help?
EExplainabilityCan you explain the behavior to someone else? If not, it might be a bug.
WWorldDoes it work in the real world? (different locales, time zones, network conditions, screen sizes)
在基础HICCUPS模型上新增三个视角:
字母Oracle检查要点
FFamiliarity首次使用的用户无需帮助能否理解此功能?
EExplainability你能否向他人解释该行为?如果不能,这可能是一个缺陷。
WWorld在真实场景中是否可用?(不同地区、时区、网络条件、屏幕尺寸)

Heuristic Test-Idea Banks

启发式测试思路库

The detailed test-idea lists for boundary, state-transition, error-handling, and "what if" exploration are in
references/heuristics-and-automation.md
. Reach for them when you need concrete prompts:
  • Boundary heuristics — numeric, string, time, and collection boundaries (zero/one/many, max±1, Unicode, DST, page-size edges).
  • State transition heuristics — skipping steps, going backward, interrupting, repeating, concurrent transitions, post-error state.
  • Error handling heuristics — network loss, malformed responses, rate limits, expired sessions, invalid uploads.
  • "What if" scenarios — back button, duplicate tabs, ad blockers, pasted formatting, accessibility features, unfamiliar locales, hostile users.

边界、状态转换、错误处理与「假设场景」探索的详细测试思路列表收录在
references/heuristics-and-automation.md
中。当你需要具体提示时可查阅:
  • 边界启发式方法——数值、字符串、时间与集合边界(零/一/多、最大值±1、Unicode、夏令时、分页大小边界)。
  • 状态转换启发式方法——跳过步骤、回退、中断、重复、并发转换、错误后的状态。
  • 错误处理启发式方法——网络中断、格式错误的响应、速率限制、会话过期、无效上传。
  • 「假设场景」——返回按钮、重复标签页、广告拦截器、粘贴格式、无障碍功能、陌生地区、恶意用户。

Note-Taking Template

笔记模板

Use a session log to capture observations in real time. The session-log table format and the observation tags (BUG, QUESTION, IDEA, RISK, NOTE) are in
references/session-templates.md
. Tag every observation consistently so the debrief can sort findings without re-reading the whole log.

使用会话日志实时记录观察结果。会话日志的表格格式与观察标签(BUG、QUESTION、IDEA、RISK、NOTE)收录在
references/session-templates.md
中。为每个观察结果添加一致的标签,以便复盘时无需通读整个日志即可分类整理发现。

When to Explore vs. When to Automate

何时探索,何时自动化

Not all testing should be exploratory, and not all testing should be automated. Use this decision framework:
并非所有测试都适合探索性测试,也并非所有测试都适合自动化测试。请使用以下决策框架:

Explore When:

适合探索的场景:

  • The feature is new and requirements are still evolving
  • You are investigating a vague bug report ("sometimes it is slow")
  • You want to assess the overall quality of an area (quality survey)
  • The area is complex with many state combinations that are hard to script
  • You need to evaluate subjective qualities (UX, intuitiveness, visual polish)
  • You are trying to find bugs, not confirm behavior
  • 功能较新,需求仍在演进
  • 排查模糊的缺陷报告(如「有时卡顿」)
  • 评估某一区域的整体质量(质量调研)
  • 区域复杂,存在多种状态组合,难以编写脚本
  • 需要评估主观质量(用户体验、直观性、视觉精致度)
  • 旨在发现缺陷,而非验证行为

Automate When:

适合自动化的场景:

  • The behavior is stable and well-defined
  • The test needs to run on every commit/PR (regression)
  • The scenario has a clear pass/fail criterion
  • The test involves data combinations that are tedious to explore manually
  • You need cross-browser or cross-device coverage at scale
  • You found a bug through exploration and want to prevent regression
  • 行为稳定且定义明确
  • 测试需要在每次提交/PR时运行(回归测试)
  • 场景有明确的通过/失败标准
  • 测试涉及的数据组合手动探索繁琐
  • 需要大规模跨浏览器或跨设备覆盖
  • 通过探索发现缺陷,需要防止回归

The Exploration-to-Automation Pipeline

探索转自动化流程

Every reproducible bug found through exploration should become an automated regression test, so future sessions focus on new areas instead of re-checking old bugs. See
references/heuristics-and-automation.md
for the full pipeline diagram, the conversion steps, and a worked Playwright regression example (BUG-456 email validation).
When an exploratory smoke charter stabilizes ("the happy path still works at all"), graduate it in two steps rather than one: first hand the charter to
agentic-browser-testing
as a natural-language goal run to confirm the flow is stable without writing a script, then promote the stabilized flow to a scripted
playwright-automation
test once it earns a maintained selector.

通过探索发现的每个可复现缺陷都应转化为自动化回归测试,以便后续会话聚焦新区域,而非重复检查旧缺陷。查看
references/heuristics-and-automation.md
获取完整的流程示意图、转换步骤,以及一个Playwright回归测试示例(BUG-456邮箱验证)。
当探索性「冒烟测试」章程稳定后(如「主流程仍可正常运行」),分两步将其升级:首先将章程作为自然语言目标交给
agentic-browser-testing
运行,确认流程稳定无需编写脚本;一旦流程稳定且拥有可维护的选择器,再将其升级为脚本化的
playwright-automation
测试。

Session Planning by Context

按场景规划测试会话

ContextFocusCharter PatternTime Split
New featureLearning, requirement gaps, UX"Explore [feature] with various roles/data to discover requirement gaps and unexpected behaviors"15 min orient + 40 min heuristics + 20 min boundaries/errors + 15 min document
RegressionChanges and their side effects"Explore [area] after [change] to discover regressions at integration points"10 min review diff + 20 min changed area + 20 min integrations + 15 min smoke + 15 min document
Bug investigationReproducing and minimizing"Explore [area] with [reported conditions] to discover exact reproduction steps"10 min read report + 15 min reproduce + 20 min minimize + 15 min related areas + 15 min document

场景重点章程模式时间分配
新功能学习、需求缺口、用户体验"探索[功能],结合不同角色/数据,发现需求缺口与异常行为"15分钟熟悉环境 + 40分钟启发式探索 + 20分钟边界/错误测试 + 15分钟记录
回归测试变更及其副作用"探索[区域]在[变更]后的情况,发现集成点处的回归问题"10分钟查看代码差异 + 20分钟测试变更区域 + 20分钟测试集成点 + 15分钟冒烟测试 + 15分钟记录
缺陷排查复现与最小化"探索[区域]在[报告条件]下的情况,找到确切的复现步骤"10分钟阅读报告 + 15分钟复现缺陷 + 20分钟最小化复现步骤 + 15分钟测试相关区域 + 15分钟记录

Assisted Exploration (LLM as Companion, Not Replacement)

辅助探索(LLM作为伙伴,而非替代者)

You can run a session with an LLM as oracle and idea-generator while keeping critical-thinking ownership. This maps cleanly onto the testing-vs-checking distinction in Bach & Bolton's Taking Testing Seriously (Wiley 2025): the LLM can help with checking (does this match a known reference?) but the testing — the human judgment about what to explore and what counts as a problem — stays yours. Done well, an LLM expands your charter coverage; done badly, it replaces your judgment with confident-sounding hallucination.
How to use an LLM during a session:
  • As an idea generator before the session. Paste the charter and ask for 10 edge cases the heuristics might miss. Pick 3 to actually try. Discard the rest — most will be generic or invented.
  • As an oracle for "is this correct?" mid-session. When you find unexpected behavior, ask the agent to look up the spec / API / standard. Never trust the answer without verifying against the source it cites.
  • As a fact-checker on findings, not a writer of bug reports. You write the bug; the LLM reviews for clarity. The reverse — LLM writes, you review — produces template-shaped reports that lose the specific details a human noticed.
  • For coverage gap suggestions during debrief. "Given these notes, what charter should I run next?"
The productivity-paradox warning: AI tooling can make tester output look faster while quietly hollowing out the critical thinking that produced the value. (Michael Bolton has argued this line in DevelopSense talks and posts; treat it as a working principle, not a cited finding.) If your debrief notes start sounding like an LLM wrote them, the LLM is now driving — stop and run the next session unassisted.
What never to delegate to an LLM:
  • Choosing what to explore. The charter must come from your understanding of risk and stakeholder concerns.
  • Deciding whether something is a bug. "The model says it looks fine" is not a debrief.
  • Writing the testing story. Specific, situated detail is the point of exploratory testing — generic LLM prose is the opposite.
For testing AI features themselves (not just using AI to test), see
ai-system-testing
.

你可以在保持独立批判性思考的前提下,将LLM作为测试依据与思路生成工具使用。这与Bach & Bolton所著《Taking Testing Seriously》(Wiley 2025)中的「测试vs检查」区分完全契合:LLM可协助完成「检查」(是否符合已知参考?),但「测试」——即判断探索方向与问题定义的人类判断——仍需由你主导。使用得当,LLM可扩大你的章程覆盖范围;使用不当,它会用看似可信的幻觉替代你的判断。
会话中使用LLM的方法:
  • 会前作为思路生成器:粘贴章程,询问启发式方法可能遗漏的10个边缘场景。选择3个实际测试,其余丢弃——大多数场景会过于通用或虚构。
  • 会中作为「是否正确」的测试依据:发现异常行为时,让代理查阅规格说明书/API/标准。务必验证其引用来源,切勿轻信答案。
  • 会后作为发现结果的事实核查者,而非缺陷报告撰写者:由你撰写缺陷报告,LLM协助检查清晰度。反之——LLM撰写,你审核——会生成模板化报告,丢失人类发现的具体细节。
  • 复盘时作为覆盖缺口建议者:「基于这些笔记,我接下来应执行哪个章程?」
生产力悖论警告: AI工具可能让测试人员的输出看起来更快,但会悄悄削弱产生价值的批判性思维。(Michael Bolton在DevelopSense的演讲与文章中提出过这一观点;请将其作为工作原则,而非已引用的结论。)如果你的复盘笔记开始像LLM撰写的内容,说明LLM已主导测试——请停止使用,下次会话不借助AI工具。
绝不能委托给LLM的工作:
  • 选择探索方向。章程必须基于你对风险与利益相关方关注点的理解。
  • 判断某一现象是否为缺陷。「模型认为没问题」不能作为复盘结论。
  • 撰写测试报告。探索性测试的核心是具体、特定的细节——LLM生成的通用文本与之完全相反。
若要测试AI功能本身(而非使用AI进行测试),请查看
ai-system-testing

Tester Roles in Modern Teams

现代团队中的测试人员角色

Useful vocabulary for staffing and self-positioning conversations. These are common industry archetypes, not a formal taxonomy:
  • Embedded testers — testers fully embedded inside delivery teams, contributing to development conversations end-to-end rather than acting as a separate gate. The most common model on cross-functional teams.
  • Specialist testers — deep skills in a domain (security, accessibility, performance) called in across teams.
  • Coach testers — senior testers who teach craft (heuristics, charter writing, exploratory thinking) to developers and junior testers; rarely test end-to-end themselves.
If your org is moving toward embedded testers, exploratory testing is one of the highest-leverage skills to demonstrate — it is hard for developers to pick up without coaching, and it is where the testing mindset shows up most clearly.
For background on the testing-vs-checking distinction and AI's role, see "What Is Testing? A Conversation with Bach and Bolton" (DevelopSense, Feb 2026): https://developsense.com/blog/2026/02/what-is-testing-a-conversation-with-james-bach-and-michael-bolton

用于人员配置与自我定位对话的实用词汇。这些是行业常见的典型角色,而非正式分类:
  • 嵌入式测试人员——完全融入交付团队的测试人员,全程参与开发讨论,而非作为独立的把关者。这是跨职能团队中最常见的模式。
  • 专业测试人员——具备某一领域(安全、无障碍、性能)深厚技能的测试人员,为多个团队提供支持。
  • 教练型测试人员——资深测试人员,向开发者与初级测试人员传授测试技巧(启发式方法、章程撰写、探索性思维);很少亲自完成端到端测试。
如果你的组织正转向嵌入式测试人员模式,探索性测试是展示价值的高杠杆技能之一——开发者若无指导很难掌握,且最能体现测试思维。
关于「测试vs检查」的区别与AI的角色背景,请查看《What Is Testing? A Conversation with Bach and Bolton》(DevelopSense,2026年2月):https://developsense.com/blog/2026/02/what-is-testing-a-conversation-with-james-bach-and-michael-bolton

Anti-Patterns

反模式

Unchartered Exploration

无章程探索

Exploring without a charter. "I will just poke around and see what I find" produces inconsistent results, is not repeatable, and cannot be meaningfully debriefed. Always write a charter, even if it is one sentence.
无章程的探索行为。「我只是随便点点看看会发现什么」会产生不一致的结果,不可重复,也无法进行有意义的复盘。务必撰写章程,哪怕只有一句话。

Session Too Long

会话时长过长

Running 3-hour exploration sessions. Bug-finding effectiveness drops sharply after 90 minutes. Fatigue causes testers to miss issues and stop following leads. Break long testing efforts into multiple 60-90 minute sessions with breaks between them.
运行3小时的探索会话。90分钟后,缺陷发现效率会急剧下降。疲劳会导致测试人员遗漏问题,不再跟进线索。将长时间测试拆分为多个60-90分钟的会话,中间穿插休息。

No Notes During Session

会话中不记笔记

Relying on memory to reconstruct what happened. By the time the session ends, half the observations are forgotten and the rest are vague. Take notes in real time using the template above.
依赖记忆还原测试过程。会话结束时,一半的观察结果会被遗忘,其余的也会模糊不清。使用上述模板实时记录笔记。

Exploring Only the Happy Path

仅探索主流程

Using exploratory testing only to verify that things work. This duplicates what automated tests already cover. Exploratory testing's strength is finding problems in paths nobody thought to script. Use heuristics to push into uncomfortable territory.
仅使用探索性测试验证功能正常。这重复了自动化测试已覆盖的内容。探索性测试的优势在于发现无人编写脚本的路径中的问题。使用启发式方法探索非常规场景。

No Conversion to Automation

不转化为自动化测试

Finding the same bug manually every release because nobody wrote an automated test for it. Every reproducible bug found through exploration should become an automated regression test. The exploration-to-automation pipeline must be active.
每个版本都手动发现相同的缺陷,因为无人编写对应的自动化测试。通过探索发现的每个可复现缺陷都应转化为自动化回归测试。探索转自动化流程必须持续运行。

Treating Exploration as "Not Real Testing"

将探索视为「非正规测试」

Viewing exploratory testing as less rigorous than scripted testing. SBTM with charters, session logs, and debriefs produces documented, accountable testing. The documentation format is different from test scripts, but the rigor is equal.

认为探索性测试不如脚本化测试严谨。带有章程、会话日志与复盘的SBTM可产生可记录、可追溯的测试。文档格式与测试脚本不同,但严谨性相当。

Verification

验证

Prove the session produced real, accountable artifacts — not just a feeling that you "tested it" — smallest check first:
  • Each charter is a real charter: every session has a written
    Explore [target] with [resources] to discover [information]
    line where the target is more specific than "the app." A session with no charter line is unchartered exploration, not SBTM.
  • The session log has timestamps and tags: open the log and confirm observations carry a time column and a tag (BUG, QUESTION, IDEA, RISK, NOTE). An untimed, untagged wall of prose cannot be debriefed.
  • Every filed bug traces back to a charter and reproduces: for each bug ID, follow its reproduction steps in a clean environment and confirm it still happens. A bug you can't reproduce is a note, not a filed defect.
  • Converted regression tests actually run red-then-green: for any exploratory finding promoted to automation, run the new test against the buggy build (
    npx playwright test path/to/spec
    should fail) and against the fix (should pass). A regression test that was never seen failing is not proven to guard the bug.
  • Coverage is stated honestly: the debrief marks each charter area covered, partial, or unexplored. "100% covered" with unexplored areas listed below it is the gap to catch.
证明会话产生了真实、可追溯的成果——而非仅仅是「我测试过了」的感觉,按以下顺序检查:
  • 每个章程都是有效的章程:每个会话都有一条书面的「探索[目标] 使用[资源] 以发现[信息]」语句,且目标比「整个应用」更具体。无章程语句的会话属于无章程探索,而非SBTM。
  • 会话日志包含时间戳与标签:打开日志,确认观察结果带有时间列与标签(BUG、QUESTION、IDEA、RISK、NOTE)。无时间戳、无标签的纯文本无法进行复盘。
  • 每个提交的缺陷都可追溯到章程并可复现:对于每个缺陷ID,在干净环境中执行其复现步骤,确认缺陷仍存在。无法复现的缺陷只是笔记,而非已提交的缺陷。
  • 转化的回归测试确实能先失败后通过:对于任何升级为自动化测试的探索发现,在存在缺陷的构建上运行新测试(
    npx playwright test path/to/spec
    应失败),在修复后的构建上运行(应通过)。从未失败过的回归测试无法证明能防范该缺陷。
  • 覆盖范围如实说明:复盘标记每个章程区域为已覆盖、部分覆盖或未覆盖。「100%覆盖」但下方列出未覆盖区域是需要注意的漏洞。

Done When

完成标准

  • Session charters are written for each target area, each following the "Explore [target] with [resources] to discover [information]" pattern
  • All planned sessions have been executed and debriefed using the debrief template, with each charter area marked covered, partial, or unexplored
  • Every bug found during sessions is logged with a reference to the originating charter and reproduction steps
  • Session logs exist with time-stamped observations tagged as BUG, QUESTION, IDEA, RISK, or NOTE
  • A findings summary captures total session count, bugs filed (by severity), test ideas identified, and follow-up sessions scheduled or explicitly deferred
  • 为每个目标区域编写了符合「探索[目标] 使用[资源] 以发现[信息]」模式的会话章程
  • 所有计划的会话均已执行,并使用复盘模板完成复盘,每个章程区域标记为已覆盖、部分覆盖或未覆盖
  • 会话中发现的每个缺陷都已记录,并关联到对应的章程与复现步骤
  • 存在带有时间戳的会话日志,观察结果标记为BUG、QUESTION、IDEA、RISK或NOTE
  • 发现结果摘要记录了总会话数、提交的缺陷数(按严重程度分类)、识别的测试思路,以及已计划或明确推迟的后续会话

Reference Files (in
references/
)

参考文件(位于
references/
目录下)

  • session-templates.md — Charter examples, environment-prep checklist, session-flow timings, debrief template, and the note-taking session-log format.
  • heuristics-and-automation.md — Boundary/state/error/"what if" heuristic test-idea banks, the exploration-to-automation pipeline diagram, and a worked Playwright regression example.
  • session-templates.md — 章程示例、环境准备清单、会话流程时间安排、复盘模板,以及会话日志记录格式。
  • heuristics-and-automation.md — 边界/状态/错误/「假设场景」启发式测试思路库、探索转自动化流程示意图,以及一个Playwright回归测试示例。

Related Skills

相关技能

  • agentic-browser-testing -- The automated cousin: a browser agent explores the app from a natural-language goal with no script. Use it for unattended exploratory smoke; use exploratory-testing for human, charter-driven SBTM sessions and bug hunting.
  • playwright-automation -- Where stabilized exploratory findings graduate into maintained, deterministic regression tests.
  • test-planning -- Sprint test plans allocate time for exploratory sessions and reference charters.
  • risk-based-testing -- Risk assessment identifies which areas deserve exploratory attention.
  • test-reliability -- Flaky or unreliable areas identified through exploration feed into test reliability improvements.
  • qa-metrics -- Track exploratory session counts, bug discovery rates, and charter coverage as QA metrics.
  • qa-project-context -- The project context file identifies known risk areas and previous bug clusters that guide charter writing.
  • agentic-browser-testing -- 自动化替代方案:浏览器代理基于自然语言目标探索应用,无需编写脚本。用于无人值守的探索性冒烟测试;使用exploratory-testing进行人工、基于章程的SBTM会话与缺陷排查。
  • playwright-automation -- 稳定的探索发现会升级为可维护、确定性的回归测试。
  • test-planning -- 迭代测试计划为探索性会话分配时间,并参考章程。
  • risk-based-testing -- 风险评估确定哪些区域值得进行探索性测试。
  • test-reliability -- 通过探索发现的不稳定或不可靠区域会推动测试可靠性改进。
  • qa-metrics -- 将探索性会话数量、缺陷发现率与章程覆盖范围作为QA指标进行跟踪。
  • qa-project-context -- 项目上下文文件识别已知风险区域与过往缺陷集中出现的情况,为章程撰写提供指导。