探索式测试(exploratory-testing)
SkillDev toolsExploratory testing sessions when requirements are vague or docs are missing — charter-driven; outputs system understanding, risks, test ideas. Not for: automation prep, executing existing cases. 需求不完整、文档不足或系统陌生时发起独立探索式测试会话——charter 驱动,产出系统理解/风险清单/测试想法。不用于:为写自动化踩点(automated-e2e-testing 前置)、按既有用例执行。
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the 探索式测试(exploratory-testing) skill
What this skill tells your AI
The instructions your AI receives, as published by fishzjp/qa-skills in skills/exploratory-testing/SKILL.md and read by ahel’s review.
需求不完整、系统陌生、文档不足时的独立探索式测试会话:charter 驱动,边探索边设计,产出系统理解与风险清单,而不是执行既有用例。
- 输入:被测系统入口(环境 + 账号)、探索主题或 charter、(可选)已有需求材料
- 输出(落盘):
{项目}/探索笔记_{主题}.md(charter、系统理解、风险清单、测试想法、发现的 Bug)——旁路场景下作为requirement-analysis的输入 - 适用:新系统、老系统、文档缺失、黑盒测试、Agent 自主测试
When to Use
- 新接手/陌生的系统,文档缺失或不可信,先探索再建模
- 需求不完整,需要用探索补齐系统理解与风险清单
- 黑盒环境(只有入口和账号)下的自主测试
When NOT to Use
- 为写自动化踩点(理解页面结构、提取选择器、落 Page Object)→
automated-e2e-testing工作流零(业务熟悉) - 按既有用例执行 →
automated-e2e-testing(UI)/api-testing(接口) - 已确认 Bug 的根因分析 →
bug-analysis - 端到端流水线 →
qa(本 skill 是其旁路阶段 0)
探索笔记 Schema(产出结构)
# 探索笔记:{主题}
## Charter(本轮探索的使命)
- 目标:{回答什么问题 / 覆盖什么区域}
- 范围:{系统/模块/流程}
- 时长/停点:{时间盒或停止条件}
## 系统理解(探索中修正)
- 入口与导航路径 / 角色与权限 / 核心流程 / 数据流向 / 状态与流转
## 风险清单(每条带证据标注,此时加载 `../core/evidence.md`)
- R?:{风险描述}|evidence: {E0–E4 + 来源}|confidence: {high/medium/low}|status: {fact / inference / risk / hypothesis}
(R? 为会话内临时编号;移交 `test-strategy` 时并入其 Risk Map 统一重编为 R1…,探索笔记原文编号不保留)
## 测试想法(后续转化为正式用例的候选)
- 想法 → 建议归属:{test-case-writing 直接产出 / 需先澄清的问题}
## 发现的 Bug(现象 + 复现步骤 + 证据;未定性,标 Hypothesis)
## 未解之谜(需要用户/开发澄清的问题)
工作流
1. 制定 Charter(先定使命,再动手)
- Charter 三要素:目标(回答什么问题,如"优惠券领取的前置约束有哪些")、范围(哪个系统/流程)、停点(时间盒或"风险清单满 10 条")
- 主题未知时与用户对齐一句:"这轮探索想弄清楚什么?"
- 无环境/账号 → 先索取(入口地址、每角色账号、数据说明),不开无凭据的探索
2. 系统摸底(建初始地图)
- 登录 → 枚举入口与导航路径 → 记录角色可见的功能面
- 走一遍可发现的主流程,记录:页面/接口、数据对象、状态与流转
- 使用宿主可用的浏览器自动化能力(导航、截图、API 监听/抓包)采集证据,以本 skill 的笔记结构为产出——会话与产出归本 skill,不为此加载其他执行 skill 的指令;宿主/环境无浏览器自动化能力时降级为人工探索(测试工程师按手动步骤操作 + 人工截图/抄录响应),笔记结构与证据标注不变,仅证据采集效率下降
3. 探索循环(边设计边执行边记录)
按 charter 目标循环:假设 → 触发 → 观察 → 记录:
| 探索启发式 | 问的问题 |
|---|---|
| 输入极值 | 空值/超大/特殊字符/负数,系统怎么拦 |
| 状态穿越 | 跳步操作(未达前置直接触发后续)、逆向操作、重复操作 |
| 并发与竞态 | 两个会话同时操作同一对象 |
| 数据生命周期 | 创建→修改→删除→再查,残留吗;级联对象怎么办 |
| 权限边界 | 换角色/退出登录后重放同一操作(含直接调接口) |
| 错误恢复 | 失败后重试、断网重连、超时后的状态 |
| 平台与环境 | 换浏览器/分辨率/弱网/系统配置开关,行为还一致吗 |
| 时间与时钟 | 零点/跨天边界、过期与定时任务触发时机,状态与文案对吗 |
- 每个观察记 evidence 等级(E3 运行证据优先——截图/响应原文);推测记 Inference/Hypothesis,不伪装成事实
- 发现异常先定性再记录:"这是预期行为还是 Bug?"不确定 → 记入未解之谜问用户,不自判(提问格式与裁决落盘统一按
../core/clarify-pattern.md,场景用「Bug 定性」)
4. 收敛与落盘
- 时间盒到 / 停点条件满足 → 整理探索笔记落盘
探索笔记_{主题}.md - 风险清单按
../core/risk-model.md预评级(Impact × Likelihood;证据不足时 status 记 risk/inference 并注明补强方向,不用 status 枚举外的标记) - 测试想法分类:可直接转用例的 / 需先澄清的 / 需专项环境的
5. 交付与移交
- 旁路场景(qa 流水线 / 需求建模前):笔记路径交给
requirement-analysis作为建模输入 - 独立场景:向用户交付笔记 + 一句话结论(系统理解程度 / 最高风险 / 建议下一步)
- Bug 移交:已确认 →
bug-analysis;测试想法转正式用例 →test-case-writing
Common Mistakes
| 错误 | 后果 | 正确做法 |
|---|---|---|
| 无 charter 闲逛 | 探索散漫、产出碎片化 | 先定目标/范围/停点 |
| 把探索当踩点(只收集选择器) | 与 e2e 工作流零职责混淆 | 产出是系统理解+风险清单,不是 Page Object |
| 观察不记证据 | 笔记不可复核,风险清单失效 | 每条观察带 evidence 等级与来源 |
| 异常自判为 Bug | 误报(可能就是预期设计) | 未定性记 Hypothesis,问用户 |
| 探索发现全部当场写正式用例 | 会话失焦、时间盒失控 | 记测试想法,会话后统一转 |
| 笔记留在会话里不落盘 | 下游无法消费、断点丢失 | 落盘 探索笔记_{主题}.md |
Signals
- GitHub stars
- 28
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
exploratory-testing- Source
- github.com/fishzjp/qa-skills