5.3 KiB
Raw Blame History

name description
feature-granularity-and-testing 功能点粒度规范与正反用例设计。设计功能点、编写/评审测试用例前必读——功能点必须是单次操作级小功能(一个按钮/一个接口/一个后台逻辑单元),禁止大模块级功能清单;用例按小功能点逐条设计正反用例并留真实执行证据。

功能点粒度规范与正反用例设计

适用角色agent.requirement拆功能点、agent.design功能→接口、agent.develop实现对照、agent.test用例设计与执行、agent.qc验收对照

1. 什么是「小功能点」(唯一正确口径)

功能点 = 客户的一次操作,或系统后台的一次逻辑单元操作。判定标准——同时满足:

  1. 一次触发:一个按钮点击 / 一个表单提交 / 一个接口调用 / 一次后台调度触发。
  2. 一个明确的输入→输出契约:输入字段、输出结果、失败原因都能逐字段列出来。
  3. 可独立验收:能单独构造正例和反例,不依赖"跑通整个模块"。

正例(合格的小功能点)

  • W-01a 设置世界模式为 independent 并保存(一次设置+保存动作)
  • W-01b 世界模式设为非法值时拒绝保存并提示(同一操作的校验分支)
  • W-04a 保存当前世界快照(一次保存动作)
  • W-04b 恢复指定世界快照(一次恢复动作)

反例(禁止的大功能点)

  • 独立世界= 模块级,含多个操作,无法单独验收)
  • 世界管理= 页面级,不是操作)
  • 共享世界同步= 机制级,应拆成:加入世界/上报操作/接收状态/断线重连恢复 等逐条)

命名与编号

  • 编号格式:{模块前缀}-{序号}{后缀字母},后缀字母区分同一操作的正常/校验分支a=主流程b/c…=校验与异常分支)。
  • 每条功能点必须带:触发方式、输入字段清单、正常输出、失败输出(错误码/提示)、量化验收指标(如响应时间、条数、大小上限)。

2. 功能点拆分流程requirement 角色)

  1. 先按页面/模块列出"操作面"(有哪些按钮、表单、接口、后台作业)。
  2. 每个操作面拆到单次操作级:一个按钮=1 个功能点;一个接口的每个校验分支=1 个功能点。
  3. 后台逻辑单元同理:一次调度/一次状态流转/一次持久化=1 个功能点。
  4. 拆完自检:任取一条功能点,问"反例(错误输入/越权/不存在/并发)怎么设计"——答不出来就是粒度太粗,继续拆。
  5. 全部落库 sd_featurespropose_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 角色)

  1. 入口一律从项目 env/test.jsonbase_url/登录凭据/DB 通道),禁止硬编码主机端口。
  2. 每条用例执行后更新 sd_test_cases.statuspass/fail/blockedactual_result原始输出(响应体片段/报错原文/截图路径),不写"符合预期"。
  3. blocked 必须注明具体原因(哪个接口、什么错误),禁止以"环境不可用"笼统带过;环境不可用本身要落 sd_bugs
  4. fail 用例落 sd_bugs(含 task_id 关联本任务),标题写功能点编号。

5. 验收口径qc/pm

  • 测试通过标准 = 全部小功能点的正反用例真实执行且无 fail,而非"主流程能走通"。
  • 报告必须给出:功能点总数、用例总数(正例/反例、pass/fail/blocked 计数、每条证据路径。
  • 出现"用例 blocked 但任务报通过"= 验收造假,一律退回。

6. 自检清单(交付前逐条过)

  • 每条功能点都是单次操作级(能用一句话说出"谁,点哪里/调哪个接口,期望什么"
  • 每个功能点都有正例,且至少 1 条反例
  • 反例覆盖:非法值/越权/不存在 三类中适用项
  • 期望结果全部可判定(无"正常/合理"模糊词)
  • 执行证据是原始输出而非转述结论