[T-02][medium] 验收对照表把只测了部分子项的功能标成"通过",交付说明据此写"通过 23" #63

Closed
opened 2026-09-30 13:57:08 +08:00 by nixevol · 2 comments
Owner

编号:T-02 严重级:medium 工作线:测试与文档(test/accept、test/report、docs) 来源:总审查人核实
依赖:T-01 (#3)(可靠的 WS 测试客户端) 被依赖:无

现象与影响

test/accept/ACCEPTANCE.md 汇总为"通过 23,失败 0,未测 0",但有 12 项的备注明确写着关键子项"未穷尽"或"未测",结果栏仍是"通过":

编号 备注里写明未覆盖的子项
F01 批量校验、停用、删除群主转让、同号重开
F02 顶号、两种锁定、重置踢线、故障不误报
F05 消息号冲突、密码门、配额
F06 入群前不补
F08 应用层去重
F09 超时过期
F13 群部分撤回
F16 群主权限、退出、解散同号
F17 令牌越权、记录无正文
F21 后台分离端口(另:裸 TCP MQTT 未测)
F22 备份恢复、升级迁移、证书重载、Docker 全量、/metrics 抓取
F23 输错锁定

docs/RELEASE.md §2、docs/OPS.md §9、README.md 都引用了"通过 23"。交付状态被高估,负责人无法据此判断哪些行为真正验证过。另外,本次复审发现的若干缺陷(如 B-02 大帧名额、C-01 握手前推送)正落在这些未测子项上。

文档依据

PRD §10「开发完成时逐条给出结果:通过、失败或未测。未测要写原因。」

为何判定为真实缺陷

生成代码(test/accept/accept_test.go、rest_accept_test.go)在只覆盖部分子项时直接写 report.StatusPass;test/report 只有通过、失败、未测三种状态,没有办法表达"部分"。

解决方案

  1. test/report:把每个 Fxx 拆成 PRD §10 一句话里列出的子项(例如 F01a 批量整批校验、F01b 停用、F01c 删除群主转让、F01d 同号重开不串数据),逐个给出状态;Fxx 只有在所有子项都通过时才算通过,否则显示"部分通过(x/y)"并列出未测子项与原因。
  2. 每个未测子项三选一:引用已有的单元/集成测试作为证据(写明文件与测试名);补一个验收用例;保持未测并写原因。
  3. 优先补以下验收用例:F01 批量整批校验/停用/删除转让/同号重开;F02 顶号 0x8E、两种锁定、重置密码被踢、内部故障不误报;F05 消息号冲突/密码门/配额;F06 入群前不补;F09 过期;F13 群部分撤回;F16 群主权限/退出/解散同号;F17 令牌不能管令牌与改管理员密码、记录无正文;F21 后台分离端口与裸 TCP MQTT;F22 备份恢复、迁移、证书重载、/metrics 抓取;F23 输错锁定。
  4. 新用例暴露的缺陷:结果写"失败"并链接对应 issue,不要为了变绿放松断言。
  5. 重新生成对照表后,同步 docs/RELEASE.md、docs/OPS.md、README.md 的数字与说明。

改动文件

test/report/*、test/accept/*、docs/RELEASE.md、docs/OPS.md、README.md。

交互 / 冲突说明

只动测试与文档;新增用例可能暴露其他 issue 的缺陷,按上面第 4 条处理,不去改产品代码。

验收与测试

对照表里每个"通过"都能对应到具体测试;go test ./test/accept/ -count=1 通过(失败项以"失败"如实记录)。


复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。

**编号**:T-02 **严重级**:medium **工作线**:测试与文档(test/accept、test/report、docs) **来源**:总审查人核实 **依赖**:T-01 (#3)(可靠的 WS 测试客户端) **被依赖**:无 ### 现象与影响 `test/accept/ACCEPTANCE.md` 汇总为"通过 23,失败 0,未测 0",但有 12 项的备注明确写着关键子项"未穷尽"或"未测",结果栏仍是"通过": | 编号 | 备注里写明未覆盖的子项 | |---|---| | F01 | 批量校验、停用、删除群主转让、同号重开 | | F02 | 顶号、两种锁定、重置踢线、故障不误报 | | F05 | 消息号冲突、密码门、配额 | | F06 | 入群前不补 | | F08 | 应用层去重 | | F09 | 超时过期 | | F13 | 群部分撤回 | | F16 | 群主权限、退出、解散同号 | | F17 | 令牌越权、记录无正文 | | F21 | 后台分离端口(另:裸 TCP MQTT 未测) | | F22 | 备份恢复、升级迁移、证书重载、Docker 全量、/metrics 抓取 | | F23 | 输错锁定 | `docs/RELEASE.md` §2、`docs/OPS.md` §9、`README.md` 都引用了"通过 23"。交付状态被高估,负责人无法据此判断哪些行为真正验证过。另外,本次复审发现的若干缺陷(如 B-02 大帧名额、C-01 握手前推送)正落在这些未测子项上。 ### 文档依据 PRD §10「开发完成时逐条给出结果:通过、失败或未测。未测要写原因。」 ### 为何判定为真实缺陷 生成代码(`test/accept/accept_test.go`、`rest_accept_test.go`)在只覆盖部分子项时直接写 `report.StatusPass`;`test/report` 只有通过、失败、未测三种状态,没有办法表达"部分"。 ### 解决方案 1. `test/report`:把每个 Fxx 拆成 PRD §10 一句话里列出的子项(例如 F01a 批量整批校验、F01b 停用、F01c 删除群主转让、F01d 同号重开不串数据),逐个给出状态;Fxx 只有在所有子项都通过时才算通过,否则显示"部分通过(x/y)"并列出未测子项与原因。 2. 每个未测子项三选一:引用已有的单元/集成测试作为证据(写明文件与测试名);补一个验收用例;保持未测并写原因。 3. 优先补以下验收用例:F01 批量整批校验/停用/删除转让/同号重开;F02 顶号 0x8E、两种锁定、重置密码被踢、内部故障不误报;F05 消息号冲突/密码门/配额;F06 入群前不补;F09 过期;F13 群部分撤回;F16 群主权限/退出/解散同号;F17 令牌不能管令牌与改管理员密码、记录无正文;F21 后台分离端口与裸 TCP MQTT;F22 备份恢复、迁移、证书重载、/metrics 抓取;F23 输错锁定。 4. 新用例暴露的缺陷:结果写"失败"并链接对应 issue,不要为了变绿放松断言。 5. 重新生成对照表后,同步 `docs/RELEASE.md`、`docs/OPS.md`、`README.md` 的数字与说明。 ### 改动文件 `test/report/*`、`test/accept/*`、`docs/RELEASE.md`、`docs/OPS.md`、`README.md`。 ### 交互 / 冲突说明 只动测试与文档;新增用例可能暴露其他 issue 的缺陷,按上面第 4 条处理,不去改产品代码。 ### 验收与测试 对照表里每个"通过"都能对应到具体测试;`go test ./test/accept/ -count=1` 通过(失败项以"失败"如实记录)。 --- <sub>复审基线:main `4059a15`(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。</sub>
nixevol added the P2-mediumlane/test-docsreview-2026-09-30 labels 2026-09-30 13:57:08 +08:00
Author
Owner

T-02 已在 feat/fix-t02-acceptance 落地,未合入 main。提交 590ee0d549 (#63)

对照表按 PRD 一句话拆子项:全部子项通过才标「通过」,否则「部分通过 (x/y)」。未覆盖子项引用已有单元/集成测试作证据,或保持未测并写原因。本波不新编端到端用例、不改产品代码。

汇总:通过 19,部分通过 4(F03/F08/F21/F22),失败 0,未测 0。不再写「通过 23」。已同步 ACCEPTANCE.md、q2_results.json、docs/RELEASE.md、docs/OPS.md、README.md。

task check 通过(含 go test ./test/accept/)。

T-02 已在 `feat/fix-t02-acceptance` 落地,未合入 main。提交 https://git.asio.asia/nixevol/NixMsg/commit/590ee0d549e77701eb1cd9ed761a3a369cfe4ea1 (#63) 对照表按 PRD 一句话拆子项:全部子项通过才标「通过」,否则「部分通过 (x/y)」。未覆盖子项引用已有单元/集成测试作证据,或保持未测并写原因。本波不新编端到端用例、不改产品代码。 汇总:**通过 19,部分通过 4(F03/F08/F21/F22),失败 0,未测 0**。不再写「通过 23」。已同步 `ACCEPTANCE.md`、`q2_results.json`、`docs/RELEASE.md`、`docs/OPS.md`、`README.md`。 `task check` 通过(含 `go test ./test/accept/`)。
Author
Owner

已合入 origin/main 0c9b459。落地提交 cb9512f fix: 验收对照表按子项记结果不再虚报通过 (#63)。F03/F08/F21/F22 仍为部分通过。

已合入 origin/main `0c9b459`。落地提交 `cb9512f` fix: 验收对照表按子项记结果不再虚报通过 (#63)。F03/F08/F21/F22 仍为部分通过。
Sign in to join this conversation.