agentleFS
KokxiKokxi/qa-test-skills/skills/qa-req-deconstruction/SKILL.md

qa-req-deconstruction

Skill31 starsChanged 48 days agoMITView on GitHub

将模糊的需求描述系统化拆分为输入、操作、状态、输出、规则五个可测试维度,同时挖掘显性需求之外的那些"没写出来但必须满足"的隐性需求和衍生需求。当用户的需求描述只有一两句话、或者看起来功能很简单但你可能遗漏了什么的时候,一定要用此技能做深度解构。适用于任何测试任务的第二步骤——无论需求文档有多详细,解构之后总能发现盲区。每条需求带唯一 ID(REQ-{模块缩写}-{序号})。 触发场景:分析这个需求、需求解构、挖掘隐含需求、需求挖掘、需求分析、拆解需求、业务规则提取、需求模糊需要深挖时。 Use when the user asks about: deconstructing a vague requirement into testable dimensions — inputs, operations, states, outputs, and rules — plus mining implied and derived requirements.

The file

Files
SKILL.md

⚠️ 本技能单独使用效果有限,建议配合完整技能集(12 步工作流)使用。安装:npx skills add Kokxi/qa-test-skills

⚠️ 安全警告:本技能的示例可能涉及订单号、支付金额、截图、身份证、手机号等敏感数据。 实际使用时请勿粘贴真实生产数据、客户信息或财务凭证;测试前应脱敏/掩码处理。 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。

需求解构

核心原则

专家看需求文档,看到的不只是文字,而是背后的测试模型。

层的区别是"来源":显性来自文档,隐性来自追问,衍生来自推导。 无论文档写得多详细,解构之后总能发现盲区——层不清楚,就分不清哪些是"要求的"、 哪些是"我猜的",下游全部会带错。

1. 三层次速查

层次定义挖掘方法数量占比必做动作
显性文档明确写出的逐条编号提取40-50%每条判"可测试吗"
隐性文档没写但隐含的五问法追问30-35%每条标 [推断]/[假设]
衍生关联推导出的角色/场景/边界/关联/数据流15-25%无依据标 [待确认]

五问法(挖隐性的核心):

对每个「应该」问"如果不呢?" · 对每个「正常」问"异常呢?" · 对每个「确定」问"假设呢?" · 对每个「存在」问"不存在呢?" · 对每个「并发」问"同时操作呢?"

2. 五维速查

维度问什么最容易漏的子项
输入用户输入什么?精度(0.001 元这类合法但出错的值)
操作用户能做什么?禁止操作("已支付不能取消"文档通常不写)
状态系统有哪些状态?非法状态转换怎么处理
输出系统返回什么?错误信息可执行性、多个输出间的一致性
规则业务规则是什么?规则冲突时的优先级(文档通常不写)

五维必须完整使用,不可选择性跳过。最常见的失效是"只做输入/操作,忽略状态/输出/规则"—— 因为前三者想得到,后三者想不起来。

3. 需求数量要求

关键指标:以显性需求数为基准,总需求 = 显性 + 隐性 + 衍生。

复杂度倍数示例(显性 5 条)隐性与显性比例复杂度判断
简单项目×2总需求 10 条1:1单模块、低风险、无并发
中等项目×3总需求 15 条2:1多模块、中风险、少量并发
复杂项目×4总需求 20 条3:1跨模块、高风险、高并发

4. 编号规则

对象格式示例
需求 IDREQ-{需求模块缩写}-{序号}REQ-AUTH-001
风险点 IDRISK-{模块缩写}-{风险类型}-{序号}RISK-CART-STOCK-001
业务规则 IDRULE-{CAL|VAL|PERM|FLOW}-{序号}RULE-CAL-001

TC_{模块}_{功能}_{序号} 是用例前缀,由 qa-test-case-design 分配,本技能不用。 历史版本本技能的 traceability 把需求 ID 写成了 TC_,已修正为 REQ-。 RULE- 已补入 docs/standards.md(原规范缺失此 ID 族)。

5. 加载时机

需要时才读,不要一上来全读:

什么时候读读哪个
不知道隐性需求怎么挖,或要展开八类隐性清单references/three-layers.md(三层详解 + 五问法 + 反模式)
逐维拆解,要子项清单references/five-dimensions.md(五维框架 + 每维易漏子项)
写需求解构表或业务规则表assets/requirement-table.md(两张表模板 + 填写要求 + 自检)

6. 产出

需求解构表:

需求 ID层次显性描述隐性假设衍生需求风险点疑问
REQ-AUTH-001显性密码至少 8 位允许特殊字符?历史密码可复用?密码强度提示弱密码可注册强度规则由谁定?
REQ-AUTH-002显性错误 5 次锁定账号锁定时长?自动解锁还是人工?登录日志审计锁定可被暴力破解绕过锁定时长是多少?
REQ-AUTH-003隐性—验证码有效期、发送频率、错误次数上限换绑手机号后旧码失效验证码可被枚举有效期与上限各是多少?

业务规则表(统一写成"若 X 则 Y 必须满足 Z"):

规则 ID触发条件必须满足验证方法风险等级
RULE-CAL-001若商品数量 × 单价则总金额必须等于数量×单价(精度 2 位)构造小数位金额比对返回值高
RULE-PERM-001若用户未登录则不能访问订单详情,返回 401未登录直接访问他人订单 URL高
RULE-FLOW-001若订单已支付则不能取消,返回明确错误码已支付订单点取消高

本技能不产出 9 列用例表——场景与用例由 qa-scenario-tree / qa-test-case-design 完成。

7. 常见反模式

  1. 顺手牵羊:解构时就开始写测试用例 → 解构只做需求分析,用例是下游的事
  2. 隐藏不标:隐性需求挖出来不标 → 每条隐性/衍生必须带 [推断]/[假设]/[待确认]
  3. 规则遗漏:只拆需求不拆规则 → 每条需求必须连带提取对应业务规则
  4. 过度衍生:衍生到不切实际 → 必须有场景支撑,否则标 [待确认]
  5. 五维偏科:只做输入/操作 → 五维必须完整

8. 交付前自检

  • 显性需求完整提取(含约束条件与非功能需求)
  • 隐性需求按五问法逐条追问,且每条标了 [推断] / [假设]
  • 衍生需求均有场景支撑或已标 [待确认]
  • 五维全部拆过——状态/输出/规则三维未被跳过
  • 每条需求都连带了业务规则,规则已结构化
  • 规则冲突已问清优先级(未问清记入疑问)
  • 疑问点已列出并交 qa-question-framework,未自行假设填充
  • 需求 ID 格式为 REQ-,无 TC_ 混用
  • 未提前跳入测试用例设计
  • 覆盖率已标注口径,无"全覆盖/100%"绝对化表述

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.