|
|
@@ -0,0 +1,262 @@
|
|
|
+# 测试负责人工作汇报 · 2026-11-07 02:26(定时自动化 · 第 67 轮 · 独立增量复核)
|
|
|
+
|
|
|
+| 项目 | 内容 |
|
|
|
+|------|------|
|
|
|
+| 汇报人 | 测试负责人(陆谨 · 软件测试专家团) |
|
|
|
+| 汇报周期 | 2026-11-07 02:26(第 67 轮 · 独立增量复核) |
|
|
|
+| 负责模块/单元 | cfc-backend(231 测试类)/ cfc-frontend / cfc-web / cfc-langgraph / tests(根级) |
|
|
|
+| 执行档 | **review 档(离线)** — 不联网、不装依赖、不改被审源码;快件套件本人实跑,后端按采信纪律不重跑全量 |
|
|
|
+| 本轮 HEAD | 本地 `95655d5d8`;远端 `origin/cfclub` = `f7eb3407b`(领先本地 3 提交:研发 docs/bump,源码零变更) |
|
|
|
+| 全量基线 | 第 65 轮(02:15)隔离树 `D:\_wt_r0032`@`78976243e` 全量 clean 实测:**231 类 1847 例 = 1769 绿 / 45F / 29E / 4S = 95.78%**,证据 `_r0032_backend.log` 仍在(末行 BUILD SUCCESS 复核通过) |
|
|
|
+| 源码变更 | `git diff 78976243e..origin/cfclub -- cfc-backend/src cfc-frontend/src cfc-web/src cfc-langgraph/src/tests tests` **为空** → 生产源码/测试源码零变更(仅研发巡检 docs + cfc-web bump `f7eb3407b`) |
|
|
|
+| 环境 | JDK 1.8 + Maven(后端基线)/ Node jest(前端)/ Python 3.12.7 `.venv`(langgraph);本轮四套件实跑无并发冲突 |
|
|
|
+| 结论 | **门禁不通过(有条件)** — 零漂移:无新增红、无修复、无回归,与第 66 轮(01:58)逐字段一致 |
|
|
|
+
|
|
|
+> **本轮定位(一句话)**:后端源码自第 65 轮全量实测以来零变更(`78976243e..f7eb3407b` 源码 diff 为空),按采信纪律不重跑 58min 全量;四个可离线实测套件(前端/管理端/根级/pytest)由本人实跑,**结果与第 65/66 轮逐字段一致**;TR-6 收口给出测试侧处置结论(4 键已 GREEN / 1 键契约缺陷阻塞 / 3 键状态机口径差异待编排侧),TR-8 开工包复核 18/18 端点已实现、待测试侧补证据。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 一、本轮工作数据汇总
|
|
|
+
|
|
|
+### 1.1 测试用例建设
|
|
|
+
|
|
|
+| 指标 | 数量 | 说明 |
|
|
|
+|------|------|------|
|
|
|
+| **本轮新增测试用例数*** | **0** | 零漂移轮,无 SRS/场景变更需现场落库新用例(S-cfc-29~32 已于 11-06 闭环) |
|
|
|
+| **本轮验证执行测试数*** | **476** | 前端 313 + 管理端 90 + pytest 51 执行 + 根级 23(全部 skip,环境门控 B-36) |
|
|
|
+| **用例通过率** | **94.96%**(452/476) | 前端 100%、管理端 100%、pytest 96.08%(49/2/12)、根级 0 执行(门控) |
|
|
|
+
|
|
|
+**分模块实测结果(本轮全部本人实跑)**:
|
|
|
+
|
|
|
+| 套件 | 用例 | 绿 | 红 | 跳过 | 通过率 | 耗时 | 对比第 66 轮 |
|
|
|
+|------|------|----|----|------|--------|------|--------------|
|
|
|
+| cfc-backend(231 类,surefire) | 1847 | 1769 | 45F/29E | 4 | **95.78%**(剔环境 96.21%) | 采信(第 65 轮,58min 级全量) | 零漂移 |
|
|
|
+| cfc-frontend(jest 16 套件) | 313 | 313 | 0 | 0 | **100%** | 33.9s | 零漂移(313/313) |
|
|
|
+| cfc-web(jest 12 套件) | 90 | 90 | 0 | 0 | **100%**(连续第 11 轮) | 44.6s | 零漂移(90/90) |
|
|
|
+| cfc-langgraph(pytest) | 51 执行(共 63) | 49 | 2 | 12 | **96.08%** | 214.3s | 零漂移(49/2/12) |
|
|
|
+| tests/ 根级(jest 2 套件) | 23 | 0 | 0 | 23 | 未执行(B-36 门控) | 5.7s | 零漂移(23 skip) |
|
|
|
+
|
|
|
+> pytest 2 红已确认与第 65/66 轮同因(**B-34 P0**):`AttributeError: 'GenerateRequest' object has no attribute 'prompt_template'`(`src/schemas/questionnaire.py:39 build_prompt` 读 `req.prompt_template` 必抛)。已核 `GenerateRequest` 类仍未含 `prompt_template` 字段(仅 `TongueRequest` 有),**缺陷未修复,现网 AI 问卷仍 100% 降级**。
|
|
|
+
|
|
|
+### 1.2 会话与任务分发
|
|
|
+
|
|
|
+| 指标 | 数量 | 说明 |
|
|
|
+|------|------|------|
|
|
|
+| **分派任务数*** | **0** | 测试角色不派发(纪律);本轮快件套件由 `run_in_background` 本机实跑 |
|
|
|
+| **恢复智能体会话数*** | **0** | 无中断会话 |
|
|
|
+| **当前在用会话数** | **0** | 期末无测试侧活跃会话 |
|
|
|
+
|
|
|
+### 1.2b 各会话当前工作状态列表
|
|
|
+
|
|
|
+| 会话标签 | 会话 ID | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
|
|
|
+|----------|---------|----------|----------|---------------|----------|------|
|
|
|
+| —(测试侧本轮无会话) | — | `—` | 快件套件负责人本机实跑 | — | 主工作区 `D:\cfc`(45 项 WIP,G11) | 隔离树 `D:\_wt_r0032` 已清理(第 65 轮产物) |
|
|
|
+| 远端研发负责人巡检会话 | 见研发历轮报告 | `done` | 错峰闭环巡检(O-7 裁决生效中,最新第 44 轮) | — | 干净 | 与测试无在途冲突 |
|
|
|
+
|
|
|
+### 1.3 问题处置
|
|
|
+
|
|
|
+| 指标 | 数量 | 说明 |
|
|
|
+|------|------|------|
|
|
|
+| **新测试发现问题数*** | **0** | 零漂移轮,无新发现 |
|
|
|
+| **已解决测试相关问题数*** | **0** | 第 65 轮已收口 B-29/B-26;本轮无新处置 |
|
|
|
+| **待解决测试相关问题数** | **13** | P0:B-31(明文凭据)、B-34;P1:B-13(环境 8 例)、B-18(A 类 57)、B-35、B-36、B-30(场景锚点)、B-33(`.gitignore *.py`);P2:B-24/B-25/B-27/B-32/B-28(台账完整,见 blockers.md) |
|
|
|
+| **TR-6 处置结论(本轮核对)** | 见下 | 4/8 已收口、1 键契约缺陷阻塞、3 键状态机口径差异待编排侧 |
|
|
|
+
|
|
|
+**TR-6(8 个 YELLOW 键 mark-green 收口)测试侧处置结论**:
|
|
|
+- ✅ **4 键已在本地状态机 GREEN**:`admin.auth.login` / `health.report.upload` / `health.report.createReport` / `dan.assessment.getActiveMaterial`(第 65 轮契约复验 165 绿,持续第 10 轮 GREEN 稳定);
|
|
|
+- ⛔ **1 键契约缺陷阻塞,不能 mark-green**:`sleep.config.tags`(S-cfc-31,`SleepConfigTagsMechanismContractTest:99` 期望 500 实得 200,真实缺陷已登记 G8,须研发拍板)→ 该键维持 YELLOW;
|
|
|
+- ⚠️ **3 键状态机口径差异**:`task.history.view` / `growth.history.view` / `achievement.grid.fiveCol` 契约测试提交已在 origin/cfclub 链上且 65 轮实测全绿,但**本地 `state.json` 无此 3 键登记**(研发侧状态机 20 键 = 12DONE+8YELLOW,本地 5 键 GREEN → O-1 卡点族口径差异);测试侧不代建键/不代登记,需编排侧/主理人统一状态机口径后在本地补登并 mark-green。
|
|
|
+
|
|
|
+### 1.4 本轮 git 提交与推送证据(真理证据)
|
|
|
+
|
|
|
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
|
|
|
+|----------|-----------------|------|--------------|----------|------------|------|
|
|
|
+| **本轮无提交** | — | — | — | — | — | 测试结果与第 65/66 轮零漂移,按指令「结果有变化时提交远程」无需推送;延续纪律(#56/#57/#58 零漂移轮不空转提交)。66 轮报告 `automation-run-2026-11-07-0158.md` 已本地留存,本轮不代推 |
|
|
|
+
|
|
|
+> 第 65 轮报告(`docs/tdd/test/automation-run-2026-11-07-0215.md`)已随 `eb2b2ea64` 推送(01:43),blockers.md(B-34/B-35/B-36 登记)同批入库 → 研发可见。本轮零漂移不占远端提交位。
|
|
|
+
|
|
|
+### 1.5 状态机阶段分布(全局进度)
|
|
|
+
|
|
|
+| 阶段 | 键数 | 备注 |
|
|
|
+|------|------|------|
|
|
|
+| UNTRACKED | 0 | 目标池无未实现键 |
|
|
|
+| RED | 0 | — |
|
|
|
+| YELLOW | 0 | — |
|
|
|
+| GREEN | **5** | health.report.createReport / dan.assessment.getActiveMaterial / guide.trainingPlan.getPlanDetail / admin.auth.login / health.report.upload;`state.json` `updated_at` 2026-11-06 16:58(连续第 10 轮未变) |
|
|
|
+| DONE | 0 | 部署验证未回写(单机降级) |
|
|
|
+
|
|
|
+### 1.6 数据源健康度
|
|
|
+
|
|
|
+| 数据源 | 读取键数 | 是否正常 | 备注 |
|
|
|
+|--------|----------|----------|------|
|
|
|
+| 需求侧(⏳ wish) | 0 | 正常 | 无未实现键 |
|
|
|
+| 契约常量(contract) | 10 类 / 114 例 | 正常 | 采信第 65 轮:110 绿 / 4 红(MapContract 3 + SleepConfigTagsMechanism 1) |
|
|
|
+| 测试用例引用(test_case_map) | 784 | 正常 | 12 个 TC 文档解析成功 |
|
|
|
+| 执行结果回填(case_results) | 231 类 / 1847 例 | 正常 | 采信第 65 轮全量 XML,`silent_missing = 0` |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 二、三层归因(74 例 / 28 类 · 承袭第 65 轮全量口径)
|
|
|
+
|
|
|
+| 层 | 例数 | 类数 | 含义 | 状态 |
|
|
|
+|----|------|------|------|------|
|
|
|
+| **A 测试类缺陷** | 57 | 21 | 桩缺、Mockito 误用、断言基线过期 | 测试侧可自处置(待 O-5 裁决批量收口,B-29 已实证 −42 例) |
|
|
|
+| **B 生产缺陷** | 4 | 1 | DAN 解析 A1/A2/B4 版式漏配(B-35) | 研发修 |
|
|
|
+| **C 环境/数据/前置** | 9 | 4 | 硬编码 127.0.0.1:3306(B-13)8 例 + 真库列溢出 1 例 | 环境/DB 侧 |
|
|
|
+| **契约红(G8)** | 4 | 2 | MapContract 3(P-2 承袭)+ SleepConfigTags blank-key 1(S-cfc-31 真实缺陷) | 按 SC 对齐实现或契约 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 三、覆盖缺口清单(本轮复核)
|
|
|
+
|
|
|
+| 缺口 | 类型 | 现状 | 风险 | 建议 | 优先级 | 闭环方式 |
|
|
|
+|------|------|------|------|------|--------|----------|
|
|
|
+| 后端 57 例 A 类测试缺陷(B-18/B-25) | 测试资产 | WIP 已含修复方向(B-29 实证 −42) | 未入库则全量重跑需每轮旁路 | 按 O-5 裁决批量收口入库 | P0 | 修复后 231 类全量复跑 0 新增红 |
|
|
|
+| G1 剩余红例 74(含 B/C/契约层) | 多源 | 环境 9 + 契约 4 + 生产 4 + 其余 A 类残余 | 通过率 95.78% 已达标但红例绝对值高 | 分层收口(A→B→C) | P0 | 全量重跑 ≥95% 且无 P0 失败 |
|
|
|
+| 根级接口层覆盖归零(B-36) | 覆盖 | 23 例默认 skip(0 执行) | 接口层验收从假红变真空 | `tests/.env.test` + seed 账号 + globalSetup 取 token | P1 | 本地 9082 在听时 `CFC_API_E2E=1` 23 例实跑 |
|
|
|
+| pytest 2 红(B-34 P0) | 生产缺陷 | `GenerateRequest` 仍缺 `prompt_template`(本轮实测复现) | AI 问卷 100% 降级 | 补字段(与 TongueRequest:14 对齐) | P0 | `test_graph` 2 例转绿 + 接口 200 |
|
|
|
+| 场景→TC 文档锚点(B-30) | 度量 | TC 编号在资产中出现 0 次 | 需求覆盖率不可量化 | 资产首行标注 TC 编号 + 反向核对脚本 | P1 | 场景→TC→资产三列清单 |
|
|
|
+| 无 CI 全量门禁 | 流程 | 仅 manual workflow | 绿是瞬时绿,回归无告警 | nightly 全量 + PR 门禁 | P0 | CI 出绿灯记录 |
|
|
|
+| `.gitignore:70 *.py`(B-33) | 流程 | 度量脚本无法入库 | 度量口径不可复现 | 细化规则 + 例外放行 `docs/tdd/tools/*.py` | P1 | 脚本入库 + hash-object 复核 |
|
|
|
+| 状态机口径分叉(O-1 卡点族) | 流程 | 研发 20 键 vs 本地 5 键;TR-6 3 键无法本地收口 | mark-green 无法闭环,看板口径不一 | 编排侧统一 state.json 同步 | P1 | 3 键补登 + mark-green 后 8 键全 GREEN |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 四、SRS / 场景变更联动核查(本轮重点)
|
|
|
+
|
|
|
+1. **本轮窗口内(66 轮 01:58 → 本轮 02:26)**:`git log --since` 显示无新增 SRS/需求/场景提交;`78976243e..origin/cfclub` 源码零变更。
|
|
|
+2. **TR-8 商城-会员 18 SC 开工包(01:40 转测试侧)复核**:开工包 `docs/tdd/orchestration/shop-member-kickoff-20261107.md` 已入库,**18/18 端点核验已实现 0 缺失**(Product/ProductOrder/Coupon/PackagePayment/Membership/AfterSales 六 Controller),建议能力键 12 条(product.browse / order.pay 等)。属 O-7 裁决「非研发实现型 RED」——测试侧补契约 JUnit + 三类流证据为较大工作量,**列入下一轮实质工作项**(需先对齐 API_REFERENCE 键名防冲突,再分批补契约类)。
|
|
|
+3. **TR-6(8 YELLOW 键收口)**:处置结论见 1.3——4 键已 GREEN、1 键契约缺陷阻塞(sleep.config.tags)、3 键状态机口径差异待编排侧。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 五、20 类测试覆盖矩阵(三态)
|
|
|
+
|
|
|
+> 功能层次(5)/功能保障(4)/非功能(6)/度量与流程(5),全部 20 类逐类判定;`已实测` = 本轮或采信第 65 轮证据;`待核实`/`未实测` 如实标注。
|
|
|
+
|
|
|
+| # | 测试类型 | 状态 | 证据 |
|
|
|
+|---|----------|------|------|
|
|
|
+| 1 | 单元测试 | 已发现 | 231 类 / 1847 例 surefire |
|
|
|
+| 2 | 组件测试 | 已发现 | 契约/集成类(contract、integration 包) |
|
|
|
+| 3 | 集成测试 | 已发现 | cfc-backend integration + langgraph pytest 51 例 |
|
|
|
+| 4 | 系统/E2E | 未实测 | 根级 23 例门控 0 执行(B-36);Playwright 未授权联网 |
|
|
|
+| 5 | 验收 UAT / BDD | 待核实 | TC 文档 784 条,BDD 式场景 215,无行为化执行 |
|
|
|
+| 6 | 冒烟测试 | 待核实 | 无独立冒烟套件定义 |
|
|
|
+| 7 | 回归测试 | 已发现 | 本轮零漂移=回归确认;无 CI 自动化回归(G6) |
|
|
|
+| 8 | 探索性测试 | 未实测 | 未定义 |
|
|
|
+| 9 | 接口 API 测试 | 已发现 | 契约套件 10 类 114 例(110 绿/4 红)+ 鉴权参数化 28/28 |
|
|
|
+| 10 | 契约测试 | 已发现 | MapContract 等契约类 + S-cfc-29~32 |
|
|
|
+| 11 | 性能测试 | 未实测 | 未授权联网压测(execute 档);等待授权 |
|
|
|
+| 12 | 可靠性测试 | 未实测 | 无故障注入/恢复演练 |
|
|
|
+| 13 | 安全测试(SAST) | 待核实 | B-31 静态扫描发现 7 处明文凭据;无 SAST 管线 |
|
|
|
+| 14 | 安全测试(DAST/渗透) | 未实测 | 未授权联网 |
|
|
|
+| 15 | 依赖漏洞扫描 | 未实测 | 需联网(execute 档) |
|
|
|
+| 16 | 兼容性测试 | 待核实 | 小程序/管理端构建兼容,无多端矩阵 |
|
|
|
+| 17 | 可用性/易用性 | 待核实 | 无用户测试记录 |
|
|
|
+| 18 | 无障碍测试 | 未实测 | 未定义 |
|
|
|
+| 19 | 质量指标(覆盖率) | 未实测 | JaCoCo 缺失,行覆盖未实测 |
|
|
|
+| 20 | QA 流程/代码审查 | 已发现 | 全项目代码审查历轮进行中;G10/G11/G12 门禁在途 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 六、测试方案与执行档(本轮)
|
|
|
+
|
|
|
+- **目标**:确认第 65 轮全量实测后的零漂移状态 + TR-6/TR-8 待办复核
|
|
|
+- **范围**:前端/管理端/根级/pytest 四套件实跑;后端按采信纪律(源码零变更)复用第 65 轮全量;契约/台账定点核验
|
|
|
+- **执行档**:review 档(离线)——本方案不含需联网/需授权的维度(Playwright E2E、压测、DAST、依赖扫描),相关维度如实降级为未实测
|
|
|
+- **排除项**:编译验证(指令排除)、后端全量重跑(采信纪律)、开发联调、TR-8 契约补建批量开工(列为下一轮实质工作项)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 七、域结论表(本轮复核 v3 vs 第 65/66 轮)
|
|
|
+
|
|
|
+| 审查维度 | 负责专家 | 结论 | 关键证据 |
|
|
|
+|----------|----------|------|----------|
|
|
|
+| 单元·组件 | 苏雅 | 零漂移 | 前端 313/313+管理端 90/90 实测全绿 |
|
|
|
+| 集成·接口 | 柯砚 | 零漂移 | pytest 49/2/12 与第 65/66 轮同因(B-34) |
|
|
|
+| 系统·验收 | 白樾 | 环境门控 | 根级 23 skip(B-36),接口层 0 执行 |
|
|
|
+| 测试保障 | 闻朔 | 回归稳定 | 双前端套件连续 11 轮全绿 |
|
|
|
+| 性能·可靠 | 骆骋 | 未实测 | 压测/可靠性未授权(execute 档) |
|
|
|
+| 安全 | 关屿 | 静态确认 | B-31 明文凭据 7 处仍待处理 |
|
|
|
+| 兼容·体验 | 阮清 | 待核实 | 无多端矩阵/可用性证据 |
|
|
|
+| 流程·度量 | 何序 | 门禁在途 | G6/G10/G11/G12 未闭环;B-33 阻塞度量脚本入库;O-1 状态机口径分叉待编排侧 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 八、五要素问题清单(承袭第 65 轮 · 本轮无新增)
|
|
|
+
|
|
|
+### P-1(P0)LangGraph 问卷生成 100% 失败(B-34)
|
|
|
+① 问题描述:`GenerateRequest` 缺 `prompt_template` 字段 → `build_prompt` 必抛 `AttributeError` → 问卷接口 500 → `AiGateway` 降级 → AI 问卷 100% 不可用(现网同受影响)。本轮 pytest 实测 2 例必红复现,`GenerateRequest` 类仍未修复。
|
|
|
+② 测试 bug 点:pytest `tests/test_graph.py::TestGraph::test_graph_valid_output` / `test_graph_invalid_llm_response_rejected`(本轮实测 2 红,堆栈首帧 `AttributeError: 'GenerateRequest' object has no attribute 'prompt_template'`)。
|
|
|
+③ 最优修改方案:`src/schemas/questionnaire.py:39 GenerateRequest` 增 `prompt_template: Optional[str] = Field(default=None)`(与 `tongue.py:14 TongueRequest` 对齐);`build_prompt` 加 `getattr` 防御。
|
|
|
+④ 修改目的:恢复 AI 问卷生成核心链路(P0 生产可用性)。
|
|
|
+⑤ 闭环:`pytest tests/test_graph.py` 2 例转绿 + `/api/v1/questionnaire/generate` 200 且 `questionnaire_json` 非空 + `AiGateway` 无「调用失败」warn。
|
|
|
+
|
|
|
+### P-2(P0)测试资产 + 3 行 Mockito 修正未入库(B-29 收口动作)
|
|
|
+① 问题描述:21 个测试文件(11 后端 + 8 pytest + 2 前端 spec)仍为工作区 WIP,第 65 轮实测已证明「+3 行修正」即后端 95.78%/合计 96.52%,但未入库。
|
|
|
+② 测试 bug 点:`ArticleControllerTest.java:201/215/226`(`when(articleService).recordRead(...)` 应置于 `when(...)` 内)。
|
|
|
+③ 最优修改方案:按第 65 轮报告记录的正确写法修 3 行 → `testCompile` 0 错 → 21 文件 `git add` + push(待 O-5 裁决后执行)。
|
|
|
+④ 修改目的:锁定 95.78% 实测基线,杜绝每轮旁路跑测。
|
|
|
+⑤ 闭环:`--clean-check` 为空 + 231 类全量复跑 0 新增红。
|
|
|
+
|
|
|
+### P-3(P1)A 类 57 例批量收口(B-18/B-25)
|
|
|
+① 问题描述:21 类测试缺陷(桩缺/断言过期/反射注入已删字段)合计 57 红。
|
|
|
+② 测试 bug 点:堆栈首帧落在测试代码的各 failing 用例(逐例清单在 `_r0032_agg.json`)。
|
|
|
+③ 最优修改方案:按 B-29 已验证方法论批量修桩与断言,超过 10 例/批分批提交。
|
|
|
+④ 修改目的:通过率 95.78% → 98.86%((1769+57)/1847)。
|
|
|
+⑤ 闭环:全量重跑该类 0 红 0 错。
|
|
|
+
|
|
|
+### P-4(P1)根级接口层覆盖归零(B-36)
|
|
|
+① 问题描述:`tests/integration/*.spec.js` 门控后 23 例默认 skip,接口层验收零执行。
|
|
|
+② 测试 bug 点:`mini-games-api.spec.js:6-11`、`plan-chain.spec.js:21-22`(环境变量门控,`ADMIN_PHONE/ADMIN_PASSWORD` 为空)。
|
|
|
+③ 最优修改方案:`tests/.env.test` + seed 账号 + `globalSetup` 登录取 token 注入 `CFC_API_TOKEN`。
|
|
|
+④ 修改目的:让接口层验收可真实执行,红例有归因。
|
|
|
+⑤ 闭环:9082 在听时 `CFC_API_E2E=1 npm test` 23 例实跑。
|
|
|
+
|
|
|
+### P-5(P1)TR-6/状态机口径分叉(O-1 卡点族)
|
|
|
+① 问题描述:研发侧状态机 20 键(12DONE+8YELLOW)vs 本地 `state.json` 5 键 GREEN;TR-6 的 3 键(task.history.view / growth.history.view / achievement.grid.fiveCol)契约已绿但本地无键可 mark-green。
|
|
|
+② 测试 bug 点:`.tdd/state.json`(5 键,`updated_at` 11-06 16:58)vs 研发 `docs/tdd/orchestration/pending.md` O-1 记录(20 键口径);`docs/tdd/dev/test-requests.md` TR-6 登记(8 键)。
|
|
|
+③ 最优修改方案:编排侧/主理人统一状态机同步机制(本地 5 键与研发 20 键合并为单一事实源),补登 3 键后由测试侧 mark-green 收口。
|
|
|
+④ 修改目的:G7 状态机可信、TR-6 闭环、看板口径一致。
|
|
|
+⑤ 闭环:8 键全部 GREEN(含 sleep.config.tags 契约红修复后一并)→ `state.json` 与研发台账键数一致 → `--status` 两方对账 0 差异。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 九、门禁结论
|
|
|
+
|
|
|
+| 门禁 | 阈值 | 实测 | 判定 |
|
|
|
+|------|------|------|------|
|
|
|
+| G1 后端用例通过率 | ≥95% | **95.78%**(剔环境 96.21%,采信第 65 轮) | ✅ |
|
|
|
+| G2 后端红例数 | ≤20 | **74** | ❌ |
|
|
|
+| G3 前端用例 | 100% | **313/313** | ✅ |
|
|
|
+| G4 testCompile | 0 错 | 232 源 0 错(第 65 轮隔离树) | ✅(本轮主工作区 WIP 未复核) |
|
|
|
+| G5 完整性 | 沉默 0 | 231/231,沉默 0 | ✅(采信) |
|
|
|
+| G6 CI 回归 | 有全量门禁 | 仅 manual workflow | ❌ |
|
|
|
+| G7 状态机 | 无伪 RED | 5 键全 GREEN(第 10 轮) | ✅ |
|
|
|
+| G8 契约红 | 0 | **4**(MapContract 3 + SleepConfigTags 1) | ❌ |
|
|
|
+| G9 pytest 通过率 | ≥90% | **96.08%**(执行口径) | ✅ |
|
|
|
+| G10 场景绑定率 | ≥60% | 2.8% 字面 / 72.1% 台账映射 | ❌ |
|
|
|
+| G11 工作目录 | 干净 | 主工作区 **45 项 WIP** | ❌ |
|
|
|
+| G12 测试资产入库 | 全部入库 | 21 个测试文件仍 WIP | ❌ |
|
|
|
+
|
|
|
+**结论:不通过(有条件)** — 本轮为独立增量复核:四套件实测 + 全量采信,与第 65/66 轮**零漂移**(无新增红/无修复/无回归)。G1/G3/G5/G7/G9 达标、G8/G10 承袭、G2/G6/G11/G12 为流程/环境类未闭环(优先动作不变:P-1 修一行字段获 pytest 100% → P-2 按 O-5 裁决入库锁定 95.78% → 编排侧统一状态机口径收口 TR-6 → 下一轮开工 TR-8 商城-会员 18 SC 契约补建)。
|
|
|
+
|
|
|
+**本轮结果无变化 → 按指令「测试结果有变化时提交到远程」不推送**;测绘结论与第 65/66 轮一致,报告本地留存,供主理人与研发对账。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 附录 A:证据文件
|
|
|
+
|
|
|
+| 文件 | 内容 |
|
|
|
+|------|------|
|
|
|
+| `.tdd/_r67_fe.log` | 前端 jest 313/313(33.9s) |
|
|
|
+| `.tdd/_r67_web.log` | 管理端 jest 90/90(44.6s) |
|
|
|
+| `.tdd/_r67_py.log` | pytest 49/2/12(214.3s,2 红=B-34) |
|
|
|
+| `.tdd/_r67_root.log` | 根级 23 skip(B-36,5.7s) |
|
|
|
+| `_r0032_backend.log`(第 65 轮遗留) | 后端全量 `Tests run: 1847, Failures: 45, Errors: 29, Skipped: 4` + BUILD SUCCESS |
|
|
|
+| `docs/tdd/test/automation-run-2026-11-07-0215.md` | 第 65 轮全量实测报告(已推送 `eb2b2ea64`) |
|
|
|
+| `docs/tdd/test/automation-run-2026-11-07-0158.md` | 第 66 轮零漂移报告(本地留存) |
|
|
|
+
|
|
|
+## 附录 B:未实测 / 降级项声明
|
|
|
+
|
|
|
+- 后端全量重跑(本轮采信第 65 轮:源码零变更 + 无并发进程);Playwright E2E(未授权联网);JaCoCo 行覆盖率(缺失);性能压测/DAST/依赖漏洞扫描(execute 档未授权);根级 23 例(B-36 环境门控);编译验证(指令排除);`@Disabled` 20 例(B-12);dan/danshop(方案外);TR-8 商城-会员 18 SC 契约补建(规模大,列下一轮实质工作项)。
|