Просмотр исходного кода

docs(tdd): 27 项 fixme 逐项诊断报告 + lead_backlog 登记 CFC-EN-001 派发

- 新增 docs/tdd/test/2026-11-01-fixme-diagnosis.md:25 条可执行 skip/fixme 逐条分类(A 真缺陷 2 / B 部署滞后 1 / C 环境阻塞 15 / D 环境数据 1 / E 测试夹具 4 / F 夹具+授权 2)
- 仅 A 类 CFC-EN-001(能量发放 500)需开发修复,已派 lan-248 ses_e68fcb4d0ffedxY8SIu6g3uwkA
- CFC-FM-001 为部署滞后非代码缺陷;badges NOT_FOUND 已被 c465bc3b3 收敛过时,均不开发
Agnes Agent 1 неделя назад
Родитель
Сommit
c939e99db7
2 измененных файлов с 53 добавлено и 0 удалено
  1. 51 0
      docs/tdd/test/2026-11-01-fixme-diagnosis.md
  2. 2 0
      tools/xaf_agent_hub/lead_backlog.md

+ 51 - 0
docs/tdd/test/2026-11-01-fixme-diagnosis.md

@@ -0,0 +1,51 @@
+# CFC 测试 skip/fixme 逐项诊断报告(2026-11-01)
+
+> 来源:`tests/` 全量 `test.skip` / `test.fixme` 扫描(接口冒烟测试结果驱动)。共 **27 条命中**(25 条实际可执行用例 + 2 行注释说明)。诊断目的:区分「真缺陷需开发」vs「环境/夹具阻塞不派开发」vs「已过时不开发」,避免无效派发。
+
+## 一、逐条清单(25 条实际用例)
+
+| # | 文件:行 | 类型 | 标记原因 | 分类 |
+|---|---------|------|----------|------|
+| 1 | `tests/e2e/api/energy-api.spec.js:56` | fixme | CFC-EN-001:`/api/energy/grant` 返回 500 服务器内部错误(后端未捕获异常) | **A 真缺陷** |
+| 2 | `tests/e2e/api/energy-api.spec.js:147` | fixme | CFC-EN-001:`/api/energy/grant` 返回 500(DIMENSION='body' 任务完成链路) | **A 真缺陷** |
+| 3 | `tests/e2e/api/family-member-api.spec.js:121` | fixme | CFC-FM-001:`member/update` 更新 nickname 返回成功但未生效 | **B 部署滞后** |
+| 4 | `tests/e2e/article-api.spec.js:48` | skip | 远程暂无已发布文章,跳过详情校验 | **D 环境数据** |
+| 5 | `tests/e2e/api/nonfunc-perf-compat.spec.js:117` | skip | 任务打卡幂等:重复提交不重复计分(需任务流夹具) | **F 夹具+授权** |
+| 6 | `tests/e2e/api/nonfunc-perf-compat.spec.js:122` | skip | 活动名额并发不超卖:100 名额 / 瞬时 500 请求(需活动夹具 + 压测授权) | **F 夹具+授权** |
+| 7 | `tests/e2e/assessment-appointment.spec.js:97` | skip | 需提供由 parent 创建的 APPOINTMENT_ID 以验证越权取消 | **E 测试夹具** |
+| 8 | `tests/e2e/assessment-appointment.spec.js:110` | skip | 需提供有效 QUOTA_ID 以验证 create→confirm 闭环 | **E 测试夹具** |
+| 9 | `tests/e2e/assessment-appointment-functional.spec.js:122` | skip | 需注入有效 QUOTA_ID 以验证 create→confirm 闭环 | **E 测试夹具** |
+| 10 | `tests/e2e/assessment-appointment-functional.spec.js:136` | skip | 需注入由 parent 创建的 APPOINTMENT_ID 以验证越权取消 | **E 测试夹具** |
+| 11–21 | `tests/e2e/dan-assessment-vendor-flow.spec.js:72,81,118,153,188,204,219,234,249,264,279` | skip×11 | DAN 测评厂商流程(11 步全链)——受 CFC-ENV-001 限制,远程为纯后端,前端/浏览器型用例无法运行 | **C 环境阻塞** |
+| 22–25 | `tests/e2e/health-report-audit.spec.js:185,206,232,254` | skip×4 | 健康报告审计 DOM 型用例——同上,浏览器型无法执行 | **C 环境阻塞** |
+
+> 另 2 行:`nonfunc-perf-compat.spec.js:11,12` 为 `//` 注释说明(对应第 5/6 条),不计入可执行。
+
+## 二、六类汇总
+
+| 分类 | 数量 | 判定 | 处理建议 |
+|------|------|------|----------|
+| **A 真缺陷** | 2 | CFC-EN-001 能量发放 500(后端未捕获异常) | **派开发**(已派 lan-248 `ses_e68fcb4d0ffedxY8SIu6g3uwkA`) |
+| **B 部署滞后** | 1 | CFC-FM-001 nickname 未持久化——**本地代码已实现**(`FamilyMemberService.updateMember` L968 含 nickname 分支 L1008-1010 + `updateById` L1038),属远程部署滞后非代码缺陷 | **不派开发**;核远程版本确认部署 |
+| **C 环境阻塞** | 15 | DOM 型 E2E 无法执行:远程 cfc.iwintrue.com 为纯 Spring Boot API 后端,未部署 uni-app H5 / cfc-web 前端 | **不派开发**;待前端部署后启用 |
+| **D 环境数据** | 1 | 远程暂无已发布文章 | **不派开发**;测试数据准备后启用 |
+| **E 测试夹具** | 4 | 需注入 QUOTA_ID / APPOINTMENT_ID 等测试前置数据 | **测试补夹具**,不派开发 |
+| **F 夹具+授权** | 2 | 需任务流/活动夹具 + 压测授权 | **测试补夹具**,不派开发 |
+
+## 三、关键判据
+
+1. **CFC-EN-001 根因链路**(A 类真缺陷,唯一需开发修复):
+   `EnergyController.grantEnergy`(L206/223) → `EnergyService.grantEnergy`(L1994) → `awardEnergy`(L1645) → `matchBehaviorConfig("task")` → `task_complete` → `awardByConfig`(L1682) / `executeAward`(L1723);`GlobalExceptionHandler.handleException(Exception)` 把未捕获异常统一映射 `Result.error("服务器内部错误")` = 500。测试 `DIMENSION='body'`。
+   - 候选根因①:`getDimByCode("body")` 返回 null → 抛 `RuntimeException("维度代码无效:body")`;
+   - 候选根因②:`parseDimensionAssign`(L1689) 解析异常;
+   - 候选根因③:日上限/余额链路。
+   - 以真实调用栈为准。
+2. **CFC-FM-001 已过时(部署滞后非代码缺陷)**:本地 `FamilyMemberService.updateMember` 已含 nickname 持久化分支,无需开发改动。
+3. **badges NOT_FOUND 已过时**:前端 commit `c465bc3b3`(2026-10-30 14:32)已收敛 ChildBadge→MemberBadge 并改纯成就页;`utils/api.js` 与页面仅用 `/api/badges/member/list`、`/statistics/member`、`/ranking/family`,无 `child/list`、`statistics/child` 调用方;`BadgeController.java` `@RequestMapping("/api/badges")`(L18) 无 child 端点。**不开发**。
+
+## 四、结论与建议
+
+- **仅 A 类(CFC-EN-001,2 条)需开发修复**,已派发并跟踪。
+- B/C/D 类(17 条)不派开发,分别归因部署滞后/环境阻塞/测试数据。
+- E/F 类(6 条)由测试团队补夹具后启用。
+- 报告来源 `INTERFACE_TEST_REPORT.md`:542 用例,BIZ_OK 246/542=45%;387 自动化(api 56 / 角色分包 52 / DOM 279),202 文档化 TC,360/387=93% 完成。

+ 2 - 0
tools/xaf_agent_hub/lead_backlog.md

@@ -19,3 +19,5 @@
 - [ ] **T29-B2 合入 cfclub**:B2 独立核验(T29-B2V)通过后合入,随后派 T29-B3。
 - [ ] **COUPON-C2/C3/P2 合入 cfclub**:C2 已独立核验 PASS(ses_e82673d9);C3/P2 待核验;三者已 push 待合入。C2 与 P2 同改 AdminCouponController/CouponService,合入时需解冲突。
 - [ ] **T04 第一段收口**:主体已由并发会话 `1f2f9cd01` 合入 cfclub;lan-189 会话(`ses_e850327a`)验收 5 文件 + 修 TrendChart 白板 bug(`feature/t04-segment1 = 9efb65396`)。是否派独立核验后合 cfclub?第二段(report-detail.vue + L1/L2/L3 门槛)未派。
+- [ ] **CFC-EN-001 能量发放 500 修复**(2026-11-01 派发,来自接口冒烟测试结果诊断):派 lan-248 `ses_e68fcb4d0ffedxY8SIu6g3uwkA`(axonhub/deepseek-flash,429 黑窗 fallback,新建会话 20:20 确认执行中),指令 `out/en001_prompt.txt`。修复 `/api/energy/grant` 稳定 500(链路 grantEnergy→awardEnergy→awardByConfig/executeAward;候选根因 getDimByCode("body") null / parseDimensionAssign 异常,以真实栈为准)。完成后自 commit+push 到 origin/cfclub,**待独立核验**后合入。
+  - 诊断报告:`docs/tdd/test/2026-11-01-fixme-diagnosis.md`(27 项 fixme 分类:2 真缺陷 / 1 部署滞后 / 15 环境阻塞 / 1 环境数据 / 4 测试夹具 / 2 夹具+授权;badges NOT_FOUND 已过时,前端 10-30 `c465bc3b3` 已收敛 MemberBadge 口径)。