5.3 KiB
5.3 KiB
| name | description |
|---|---|
| feature-granularity-and-testing | 功能点粒度规范与正反用例设计。设计功能点、编写/评审测试用例前必读——功能点必须是单次操作级小功能(一个按钮/一个接口/一个后台逻辑单元),禁止大模块级功能清单;用例按小功能点逐条设计正反用例并留真实执行证据。 |
功能点粒度规范与正反用例设计
适用角色:agent.requirement(拆功能点)、agent.design(功能→接口)、agent.develop(实现对照)、agent.test(用例设计与执行)、agent.qc(验收对照)。
1. 什么是「小功能点」(唯一正确口径)
功能点 = 客户的一次操作,或系统后台的一次逻辑单元操作。判定标准——同时满足:
- 一次触发:一个按钮点击 / 一个表单提交 / 一个接口调用 / 一次后台调度触发。
- 一个明确的输入→输出契约:输入字段、输出结果、失败原因都能逐字段列出来。
- 可独立验收:能单独构造正例和反例,不依赖"跑通整个模块"。
正例(合格的小功能点)
W-01a 设置世界模式为 independent 并保存(一次设置+保存动作)W-01b 世界模式设为非法值时拒绝保存并提示(同一操作的校验分支)W-04a 保存当前世界快照(一次保存动作)W-04b 恢复指定世界快照(一次恢复动作)
反例(禁止的大功能点)
- ❌
独立世界(= 模块级,含多个操作,无法单独验收) - ❌
世界管理(= 页面级,不是操作) - ❌
共享世界同步(= 机制级,应拆成:加入世界/上报操作/接收状态/断线重连恢复 等逐条)
命名与编号
- 编号格式:
{模块前缀}-{序号}{后缀字母},后缀字母区分同一操作的正常/校验分支(a=主流程,b/c…=校验与异常分支)。 - 每条功能点必须带:触发方式、输入字段清单、正常输出、失败输出(错误码/提示)、量化验收指标(如响应时间、条数、大小上限)。
2. 功能点拆分流程(requirement 角色)
- 先按页面/模块列出"操作面"(有哪些按钮、表单、接口、后台作业)。
- 每个操作面拆到单次操作级:一个按钮=1 个功能点;一个接口的每个校验分支=1 个功能点。
- 后台逻辑单元同理:一次调度/一次状态流转/一次持久化=1 个功能点。
- 拆完自检:任取一条功能点,问"反例(错误输入/越权/不存在/并发)怎么设计"——答不出来就是粒度太粗,继续拆。
- 全部落库
sd_features(propose_feature),每条独立编号,禁止把多个操作合并进一条记录。
3. 正反用例设计(test 角色)
每个小功能点至少 1 条正例 + 1 条反例,反例不是可选项。
正例(正向用例)
- 合法输入 → 期望输出,逐字段断言(接口返回结构/字段值/落库记录/界面变化)。
- 断言写具体:「返回 status=200 且 body.data.id 非空且数据库表 xxx 新增 1 行」,禁止「功能正常」式描述。
反例(反向用例,至少覆盖适用项)
- 非法值:类型错误、超长度、枚举外取值、空值/缺必填 → 期望拒绝+明确提示。
- 越权:未登录、无权限角色访问 → 期望 401/403,不得 200。
- 不存在:操作不存在的对象 → 期望 404/明确错误,不得 500。
- 边界:0 条、1 条、上限条数、上限大小(快照 10MB 类约束)。
- 重复/并发:重复提交、并发写 → 期望幂等或明确报错,不得脏数据。
用例字段要求(落库 sd_test_cases 时)
case_name:{功能点编号}-{方向}-{一句话},如W-01a-pos-设置 independent 保存成功、W-01b-neg-非法值拒绝保存。steps:可直接执行的步骤(含入口路径、请求方法、参数),不得写"进入系统操作一下"。expected_result:可判定的期望(具体字段/状态码/界面元素),不得写"正常显示"。
4. 执行与证据(test 角色)
- 入口一律从项目
env/test.json读(base_url/登录凭据/DB 通道),禁止硬编码主机端口。 - 每条用例执行后更新
sd_test_cases.status(pass/fail/blocked),actual_result写原始输出(响应体片段/报错原文/截图路径),不写"符合预期"。 blocked必须注明具体原因(哪个接口、什么错误),禁止以"环境不可用"笼统带过;环境不可用本身要落sd_bugs。- fail 用例落
sd_bugs(含 task_id 关联本任务),标题写功能点编号。
5. 验收口径(qc/pm)
- 测试通过标准 = 全部小功能点的正反用例真实执行且无 fail,而非"主流程能走通"。
- 报告必须给出:功能点总数、用例总数(正例/反例)、pass/fail/blocked 计数、每条证据路径。
- 出现"用例 blocked 但任务报通过"= 验收造假,一律退回。
6. 自检清单(交付前逐条过)
- 每条功能点都是单次操作级(能用一句话说出"谁,点哪里/调哪个接口,期望什么")
- 每个功能点都有正例,且至少 1 条反例
- 反例覆盖:非法值/越权/不存在 三类中适用项
- 期望结果全部可判定(无"正常/合理"模糊词)
- 执行证据是原始输出而非转述结论