探索式测试(exploratory-testing)

SkillDev tools

Exploratory 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.

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