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

docs(tdd): 测试负责人 13:13 轮 · 第 24 轮例行闭环巡检 | 主口径 14 类 159 例 156 绿/3 红(P-2,非新回归)/0 错 + testCompile 0 错(B-10 第 14 轮无复发,Membership src/main 变更未破坏编译)+ 4 证据 sha IN CHAIN(补深后第 8 轮)+ S-cfc-17/18/19 契约复跑 52/52 全绿 + state.json 3 伪 RED 第 24 轮未动 + O-1 第 24 轮更新

E2E Test Bot 6 дней назад
Родитель
Сommit
67a5a5459a

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/tdd/orchestration/pending.md


+ 83 - 0
docs/tdd/test/automation-run-2026-11-06-1313.md

@@ -0,0 +1,83 @@
+# TDD 闭环测试负责人轮 · 2026-11-06 13:13(第 24 轮·第 56 次自动化执行)
+
+- **角色**:测试负责人(cfc-tester)。未派发 opencode(测试角色纪律);本工作区离线契约复验 + git 真理核验 + 台账重扫 + 状态盘点。
+- **基线**:本地 HEAD `2cc7e3aad` = origin/cfclub;rebase 完成,远端 +18 提交已对齐,其中 **src/main 5 文件变更**(MembershipController/MembershipService/MembershipServiceInterface/DatabaseInitializer/schema.sql、`tests/e2e/flow-l1-tests.js` 1 处、需求/场景文档 2 处)不含 cfc-backend/src/test 变更 → 主口径复验按新基线重跑,无需需求入池同步(无新测试类推远端)。
+
+## 一、本轮核心证据(实测,非采信)
+
+**主口径 14 类 159 例** → **156 绿 / 3 红 / 0 错**(`mvn -o -B -f cfc-backend/pom.xml -DskipTests=false -Dtest='...14 类...'` test,9m58s):
+
+| 测试类 | 结果 |
+|---|---|
+| HealthReportControllerCreateReportTest | 5/5 ✅ |
+| DanAssessmentControllerGetActiveMaterialTest | 3/3 ✅ |
+| TrainingPlanControllerGetPlanDetailTest | 8/8 ✅ |
+| TaskControllerCreateTaskTest | 7/7 ✅ |
+| TaskServiceReviewTest | 15/15 ✅ |
+| **TaskControllerReviewTest** | **17/17 ✅(B-21 连续第 5 轮全绿清零维持)** |
+| CfBalanceControllerTest | 8/8 ✅(B-10 连续第 14 轮无复发) |
+| DimensionRegistryTreeTest | 9/9 ✅ |
+| DimensionAdminControllerTest | 13/13 ✅ |
+| HealthDimensionControllerTest | 15/15 ✅(B-18 自修后连续第 3 轮全绿维持) |
+| **DimensionRegistryMapContractTest** | **7 → 4 绿 / 3 红(P-2 口径未决,第 12 轮)** |
+| AdminAuthControllerLoginContractTest(新 S-cfc-17) | 15/15 ✅ |
+| HealthReportControllerUploadTest(新 S-cfc-18) | 16/16 ✅ |
+| HealthDimensionControllerUploadContractTest(新 S-cfc-19) | 21/21 ✅ |
+
+- **testCompile 0 错**(main 2046 源 + test 224 源 fresh 编译通过;B-10 连续第 14 轮无复发——Membership 实现变更未破坏编译)
+- 2 个 YELLOW 键(`health.report.createReport` / `dan.assessment.getActiveMaterial`)契约**连续第 15 轮**复验通过
+- 3 红 = P-2 `DimensionRegistryMapContractTest`(`map_unknownLegacy:76` / `map_emptyLegacy:85` / `map_missingLegacy_returnsBadRequest:92`,与既往完全一致,非新回归)
+
+## 二、S-cfc-17/18/19 新 RED 键契约落地复跑(持续维持)
+
+- 远端 3 个新契约测试文件(`9e391ac5d`/`564b4d8b6`/`c11295c1c`)复跑 **52/52 全绿**,与 10:55 轮一致,无新回归;实现落地(S-cfc-19/20)仍待研发侧修正派发工具后推进(研发侧职责,未新增)。
+
+## 三、git 真理证据
+
+| 键 | 证据 sha | 祖先链 |
+|---|---|---|
+| health.report.createReport(YELLOW 实现) | `1767d4414` | IN CHAIN ✓ |
+| dan.assessment.getActiveMaterial(YELLOW 实现) | `c3e32460a` | IN CHAIN ✓ |
+| health.report.createReport(RED 测试) | `81d8883f7` | IN CHAIN ✓ |
+| dan.assessment.getActiveMaterial(RED 测试) | `faf3ca174` | IN CHAIN ✓ |
+| S-cfc-17/18/19(新 RED 契约) | `9e391ac5d`/`564b4d8b6`/`c11295c1c` | IN CHAIN ✓ |
+
+(补深后第 8 轮连续 merge-base 核验通过;非浅克隆,无假阴性风险)
+
+## 四、状态机盘点
+
+- 本地 `.tdd/state.json`:仍 **3 伪 RED**(`health.report.createReport` / `dan.assessment.getActiveMaterial` / `guide.trainingPlan.getPlanDetail`),mtime `2026-11-04 10:14` **第 24 轮未动**。
+- `--mark-green health.report.createReport` 实测仍被拒(`当前阶段 RED,须先 YELLOW`)——**纯状态机同步单卡点维持**(责任:编排侧/主理人同步 state.json;测试侧已连续 24 轮如实报障)。
+- mark-green 证据链已完全就绪:YELLOW sha 有效 + 契约 15 轮复验通过 + RED sha 在链 + B-21/B-18 清零。
+
+## 五、台账重扫
+
+- discovery:**359 控制器 / 1942 handler / 覆盖 372(19.2%) / 224 测试文件(@Test 1769)**。
+- inventory:跨源 **3044** 用例(md 784 + Playwright 444 + Python 47 + Java@Test 1769 + 场景 11)。
+- 相对 10:55 轮增量:**0**(远端 18 提交零新增测试文件,discovery/inventory/automation-status 逻辑一致;本轮重扫内容与 10:55 轮对齐)。
+
+## 六、覆盖缺口清单
+
+| 缺口 | 现状 | 风险 | 建议测试设计 | 优先级 | 闭环 |
+|---|---|---|---|---|---|
+| 状态机同步缺口 | 3 伪 RED 第 24 轮 | mark-green 无法落库,YELLOW 无法收口 | 编排侧同步 state.json 键集与阶段 | P1 | 同步后 `--mark-green` 收口 2 YELLOW 键,复跑契约 |
+| P-2 MapContract 3 红 | map_unknown/empty/missingLegacy 断言 400/500 实得 200 | 契约口径未决,3 红长期挂账 | 主理人/需求拍板 mapLegacyCode 空值语义(400 vs 200+null) | P1 | 拍板后按口径调整用例或实现,复跑 7 例 |
+| S-cfc-19/20 实现缺失 | dispatch.py 指令与 GREEN 阶段错配,两键缺实现 | 新键契约绿但实现未落地 | 研发侧修正派发工具并落地实现 | P1 | 实现推远端后复跑契约 52 例 |
+| 无 CI | 仅本机可跑 | 回归依赖人工轮次 | 建最小 3-job 流水线 | P2 | CI 绿后自动化 |
+
+## 七、门禁结论:**不通过(承袭,有条件)**
+
+- G4 testCompile ✅ 0 错(实跑,第 14 轮);G5 契约 ✅ 156 绿 / 3 红(剩 P-2);G3 前端 ✅ 100%(采信 10:30 兄弟批次);G1 ≈92%(采信 09:39/10:30 全量);G2 ❌ ~120 非环境红;G6 CI ❌ 无;G7 状态机 ❌ 第 24 轮;G8 ❌ P-2 3 红。
+- **本轮改善**:Membership 实现变更未破坏编译与主口径契约;B-21(17/17)/B-18(15/15)清零持续维持;S-cfc-17/18/19 契约复跑 52/52 全绿。
+- **使绿顺序**:① 编排侧/主理人同步 state.json(第 24 轮,证据链就绪)→ `--mark-green` 收口 2 YELLOW 键 → ② 研发修正 S-cfc-19/20 派发(实现落地)→ ③ P-2 map 契约口径拍板 → ④ 最小 CI。
+
+## 八、未实测项(如实登记)
+
+- 全量 surefire(220 类)/ 前端 jest(386 例):采信 10:30 兄弟批次(本轮 HEAD 与该批次一致,零漂移)。
+- Playwright / 接口冒烟 / langgraph pytest:联网未授权。
+- JaCoCo / PIT / 性能 / 依赖漏洞:无工具。
+- `--mark-green` 落账:被本地状态机过时拒绝(RED 须先 YELLOW),实测受阻非未尝试。
+
+## 九、变更感知(本轮同步)
+
+- 远端需求文档 `docs/需求分析/成就成长打卡需求变更.md` 新增 SC-P-94~96/SC-C-26/SC-A-27 场景入表;`tests/user-scenarios/应用场景总览.md` 对应更新。测试侧重扫后台账增量为 0(无需新建测试类);新任务入池由研发负责人按 `--add-task` 溯源铁律处理。

+ 1 - 1
docs/tdd/test/automation-status.md

@@ -1155,7 +1155,7 @@
 | `tests/user-scenarios/08-butler.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 14 个 |
 | `tests/user-scenarios/08-butler.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 14 个 |
 | `tests/user-scenarios/09-human-butler.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 12 个 |
 | `tests/user-scenarios/09-human-butler.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 12 个 |
 | `tests/user-scenarios/README.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 5 个 |
 | `tests/user-scenarios/README.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 5 个 |
-| `tests/user-scenarios/应用场景总览.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 31 个 |
+| `tests/user-scenarios/应用场景总览.md` | 文件级 | 用户场景(待自动化) | 未跟踪 | 场景标题约 32 个 |
 
 
 ## 七、回写与发布流程(本地侧车 → 共享台账)
 ## 七、回写与发布流程(本地侧车 → 共享台账)
 
 

Некоторые файлы не были показаны из-за большого количества измененных файлов