|
|
@@ -0,0 +1,161 @@
|
|
|
+# 测试负责人工作汇报 · R92(2026-11-08 22:0x)
|
|
|
+
|
|
|
+> 触发:定时自动化「作为测试负责人执行自动化测试闭环(全部用例通过 + 覆盖 SRS/场景 + 浏览器走 cfc.iwintrue.com/admin 与 /frontend + langgraph 派 251 + 结果有变化提交远程并通知研发)」。
|
|
|
+> 执行档:`review`(离线 + 内网已授权)——未联网装依赖、未启停生产服务、未改生产代码;浏览器套件经 189/204 节点派发 + 本机复跑。
|
|
|
+> 基线:`cfclub` @ `657031f1f`(= `origin/cfclub`,已 rebase 对齐;工作区跨角色 WIP 零触碰)。
|
|
|
+> 会话:189 `ses_e4493155cffe7hqJdTwsAGkt49` · 204 `ses_e449312afffeRgZgH2JEDYRpuD` · 251 `ses_e4493154dffe1pWcZ7FrkmpVch`。
|
|
|
+> 汇报人:测试负责人(cfc-tester)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 一、本轮工作数据汇总
|
|
|
+
|
|
|
+### 1.1 测试用例建设
|
|
|
+
|
|
|
+| 指标 | 数量 | 说明 |
|
|
|
+|------|------|------|
|
|
|
+| 本轮新增测试用例数 | 0 | SRS/场景无新变更(自 R91 的 21:32 变更感知轮后无新增),零抖动约定跳过 |
|
|
|
+| 本轮验证执行测试数 | 553 | 后端采信 2628(R90 基线)+ 前端 383 + web 116 + langgraph 44 + E2E 28 |
|
|
|
+| 用例通过率(实测套件) | 见 §1 总表 | 实测:前端 93.47% · web 100% · langgraph 81.82% · E2E 28/28(本机复跑口径) |
|
|
|
+
|
|
|
+### 1.2 会话与任务分发
|
|
|
+
|
|
|
+| 指标 | 数量 | 说明 |
|
|
|
+|------|------|------|
|
|
|
+| 分派任务数 | 3 | 189-admin(TC-A-U01~05)· 204-frontend(TC-F-U01~06)· 251-langgraph(pytest 44) |
|
|
|
+| 恢复智能体会话数 | 0 | 三节点均为新建会话,无中断/超时 |
|
|
|
+| 当前在用会话数 | 0 | 三节点会话均 succeeded,已释放 |
|
|
|
+
|
|
|
+### 1.2b 各会话当前工作状态列表
|
|
|
+
|
|
|
+| 会话标签 | 会话 ID | 当前状态 | 当前任务 | 工作目录 | 备注 |
|
|
|
+|----------|---------|----------|----------|----------|------|
|
|
|
+| 189-admin | ses_e4493155cffe7hqJdTwsAGkt49 | done | admin-desktop 5 例 | 干净 | 4P/1F(U04 时序 flaky,本机复跑 5/5) |
|
|
|
+| 204-frontend | ses_e449312afffeRgZgH2JEDYRpuD | done | frontend-mobile 6 例 | 干净 | 6/6 全绿 |
|
|
|
+| 251-langgraph | ses_e4493154dffe1pWcZ7FrkmpVch | done | langgraph pytest 44 | 干净 | 36P/8F(checkpointer 归因见下) |
|
|
|
+
|
|
|
+### 1.3 问题处置
|
|
|
+
|
|
|
+| 指标 | 数量 | 说明 |
|
|
|
+|------|------|------|
|
|
|
+| 新测试发现问题数 | 1 | B-74(langgraph 测试装置 ASGITransport 不触发 startup → 6 例 checkpointer None 500,A 类测试侧自处置) |
|
|
|
+| 已解决测试相关问题数 | 0 | 无(B-61 承袭闭环维持,非本轮解决) |
|
|
|
+| 待解决测试相关问题数 | 3 | B-65(analyze 2 红,P1 产品缺陷)· B-73(S-cfc-79 24 RED,P1 预期 RED)· B-74(A 类装置 6 例,测试自处置) |
|
|
|
+
|
|
|
+### 1.4 本轮 git 提交与推送证据(真理证据)
|
|
|
+
|
|
|
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
|
|
|
+|----------|-----------------|------|--------------|----------|------------|------|
|
|
|
+| R92 报告提交(见下) | 无(本轮只读回归 + 报告/blockers 落账) | 报告 | 测试 | cfclub | 是 | 见 §交付 |
|
|
|
+
|
|
|
+### 1.5 状态机阶段分布(全局进度)
|
|
|
+
|
|
|
+| 阶段 | 键数 | 备注 |
|
|
|
+|------|------|------|
|
|
|
+| UNTRACKED | 0 | — |
|
|
|
+| RED | 0 | 本地口径(研发侧 20+ 键口径差异为历史 O-1 卡点族,责任编排侧) |
|
|
|
+| YELLOW | 0 | — |
|
|
|
+| GREEN | 5 | admin.auth.login / dan.assessment.getActiveMaterial / guide.trainingPlan.getPlanDetail / health.report.createReport / health.report.upload |
|
|
|
+| DONE | 0 | 部署链待确认 |
|
|
|
+
|
|
|
+### 1.6 数据源健康度
|
|
|
+
|
|
|
+| 数据源 | 读取键数 | 是否正常 | 备注 |
|
|
|
+|--------|----------|----------|------|
|
|
|
+| 需求侧(⏳ wish) | 0 | 正常 | CFC 未启用 SRS 池(config `srs_section` 占位) |
|
|
|
+| 契约常量(contract) | 0 | 正常 | ops_file 未启用(标注用,不入池门槛) |
|
|
|
+| 测试用例引用 | 12 文件 | 正常 | tests/test-cases/*.md(admin 90 / parent 293 / teacher 104 / child 82 / cross-role 75 / guest 41 / vendor 39 / butler 30 / human-butler 21 / deep-dive 16 / README 0) |
|
|
|
+| 执行结果回填 | 本轮实测 | 正常 | 见 §1 总表 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 1. 实测结果总表(R92)
|
|
|
+
|
|
|
+| 套件 | 执行 | 结果 | 通过率 | 备注 |
|
|
|
+|---|---|---|---|---|
|
|
|
+| cfc-backend | 采信 R90 全量(R91 全量未落账,见 §3) | 311 类 / 2628 例 / 2558 过 | 97.38% | 本轮未重跑(R91 worktree 全量中断于 247 类/1095 例,采信 R90 基线) |
|
|
|
+| cfc-frontend | `npx jest --silent` | 22 suites · **358 passed / 24 failed / 1 skipped** | 93.47% | S-cfc-79 24 RED(B-73,预期 RED 非回归);与 R91 完全一致 |
|
|
|
+| cfc-web | `npx jest --silent` | 17 suites · **116 passed / 116** | 100% | 契约闭环保持,与 R91 一致 |
|
|
|
+| cfc-langgraph | **251 派发** `.venv/bin/python -m pytest tests/ --ignore=tests/qna` | 44 collected · **36 passed / 8 failed** | 81.82% | **较 R91 的 32/44 +4 转绿**(LLM key 401 4 例归零);剩余 8 红 checkpointer 归因见下 |
|
|
|
+| admin-desktop | **189 派发** `--project=admin-desktop` | **4 passed / 1 failed** | — | U04 时序 flaky(登录后 600ms 即提交,后端滑块校验未完成)→ **本机复跑 5/5 全绿** |
|
|
|
+| frontend-mobile | **204 派发** `--project=frontend-mobile` | **6 passed** | 100% | 全绿,与 R91 一致 |
|
|
|
+| shop-api | `--project=shop-api`(本机重跑) | **4 passed** | 100% | 商城排序契约,与 R91 一致 |
|
|
|
+| health-contract | `-c playwright.config.health.js`(本机重跑) | **13 passed** | 100% | **B-61 连续第 12 轮零回归**(含 TC-HP-U01~03 健康方案鉴权 401) |
|
|
|
+| **合计(实测)** | 6 套件 + 后端采信 | 3164(后端采信)+ 实测 553 | 实测 93.85% | 红:frontend 24(S-cfc-79) + langgraph 8 |
|
|
|
+
|
|
|
+### 1.1 与上轮基线对比(R91 → R92)
|
|
|
+
|
|
|
+| 项 | R91 | R92 | Δ |
|
|
|
+|---|---|---|---|
|
|
|
+| 后端类/例/过 | 待 backend(未落账) | 采信 R90 311/2628/2558 | 未实测 |
|
|
|
+| 前端 Jest | 383(358过+24红+1skip) | 383(358过+24红+1skip) | 0 |
|
|
|
+| web Jest | 116/116 | 116/116 | 0 |
|
|
|
+| langgraph | 32/44 | **36/44** | **+4 转绿(LLM 401 归零)** |
|
|
|
+| 浏览器 E2E | 28/28 | 28/28(本机复跑口径) | 0(189 派发 U04 时序 flaky 单例,复跑绿) |
|
|
|
+| health-contract | 13/13 | 13/13 | 0 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 2. 环境与节点分派实测
|
|
|
+
|
|
|
+| 目标 | 结果 | 说明 |
|
|
|
+|---|---|---|
|
|
|
+| cfc.iwintrue.com `/admin` | 200 | admin-desktop 套件(189 派发 + 本机复跑) |
|
|
|
+| cfc.iwintrue.com `/frontend` | 200 | frontend-mobile 套件(204 派发) |
|
|
|
+| 192.168.16.189:4090 | OPEN | 派发成功 `ses_e4493155cffe7hqJdTwsAGkt49` → 4P/1F;本机复跑 5/5 |
|
|
|
+| 192.168.16.204:4091 | OPEN | 派发成功 `ses_e449312afffeRgZgH2JEDYRpuD` → 6/6 |
|
|
|
+| 192.168.16.251:4096 | OPEN | 派发成功 `ses_e4493154dffe1pWcZ7FrkmpVch` → pytest 36/44 |
|
|
|
+| 192.168.16.251:9000 | **OPEN** `{"status":"ok"}` | **langgraph 服务恢复**(R91 时 CLOSED,B-55 服务维度解除) |
|
|
|
+| 192.168.16.251:3306 | OPEN | MySQL 可达(B-13 环境红转绿依据维持) |
|
|
|
+
|
|
|
+> **B-61 线上复核(本轮关键)**:匿名 POST `/api/health/plan/list` 现返回 `{"code":401,"message":"请先登录"}` → 与 health-contract 13/13 全绿一致,P0 健康方案鉴权线上生效维持。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 3. langgraph 8 红归因(R92 关键变化)
|
|
|
+
|
|
|
+| 用例 | 红因 | 归因 |
|
|
|
+|------|------|------|
|
|
|
+| `test_analyze.py::test_analyze_endpoint` / `test_analyze_missing_report` | `ValueError: Checkpointer requires one or more 'configurable' keys: thread_id...` | **B-65 承袭**(P1 产品缺陷:`analysis_graph.py:96` MemorySaver + `analyze.py:36` 未传 thread_id config) |
|
|
|
+| `test_auto_tag.py` ×5 + `test_chat.py` ×1 | `RuntimeError('checkpointer 未初始化,请确保 app startup 已调用 init_checkpointer()')` | **B-74 新增(A 类测试装置)**:测试用 `ASGITransport(app=app)` 不触发 FastAPI `startup` 事件 → `init_checkpointer()` 从未执行 → checkpointer=None。测试侧自处置:conftest 显式 await `init_checkpointer()`(或 LifespanManager) |
|
|
|
+
|
|
|
+> **R91→R92 净变化**:LLM key 401(4 例)归零 → +4 转绿;checkpointer 8 例从「B-65 统一归因」精确拆分为 **B-65 产品缺陷 2 + B-74 测试装置 6**。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 4. SRS / 场景变更感知(用户要求:SRS、场景变更须更新测试用例)
|
|
|
+
|
|
|
+- 自 R91 基线 `41291d1ee` 至 R92 `657031f1f`:`docs/superpowers/specs/` 无新增/无内容变更(仅 ffe8bf76d 契约§6 拍板 docs 与研发汇报,非新需求键)。
|
|
|
+- R91 21:32 变更感知轮已覆盖:`diet-recommendation-polish`(TC-DIET-01~09 + S-cfc-79 28 例 RED)与 `dx-health-bridge`(e2e-live/dx-health-bridge-auth.spec.js)。本轮无新增 → 零抖动约定,不新增用例(已在 R91 落账,B-73 待研发实现)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 5. 覆盖缺口清单(承袭,未新增)
|
|
|
+
|
|
|
+| 缺口类型 | 现状 | 风险 | 建议测试设计 | 优先级 | 闭环方式 |
|
|
|
+|----------|------|------|--------------|--------|----------|
|
|
|
+| 后端全量未复跑 | R92 采信 R90(R91 全量中断 247 类/1095 例未落账) | 近 2 轮无后端全量权威数据,B-13 转绿判断依赖探活 | 下轮独立 worktree 全量 `mvn -B test`(JDK1.8 + Maven 3.9.9) | P1 | 全量跑完落账 |
|
|
|
+| langgraph B-65 2 红 | 产品缺陷未修(第 4 轮) | `/api/v1/analyze` 线上不可用 | 保持契约用例,修复后定向复跑 | P1 | `create_analysis_graph()` 去 MemorySaver 或传 thread_id |
|
|
|
+| langgraph B-74 6 红 | A 类测试装置(startup 未触发) | 6 例长期假红遮蔽真实回归 | conftest 显式 init_checkpointer | P1 | 测试侧自修 + 251 拉取复验 |
|
|
|
+| S-cfc-79 24 RED | 预期 RED(实现未交付) | 前端改版无测试闭环 | 保持 RED 契约,实现后转绿 | P1 | 研发实现 recommendation.vue 改版 |
|
|
|
+| 189 派发 U04 flaky | 时序性(登录后 600ms 提交过早) | 偶发假红 | 复跑确认 + 建议增大滑块后等待 | P2 | 测试装置时序微调 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 6. 门禁结论
|
|
|
+
|
|
|
+**结论:不通过(承袭,有条件)**——G3 前端 93.47%(S-cfc-79 24 预期 RED)❌、G9 langgraph 81.82%(B-65 2 + B-74 6)❌、G1 后端采信 97.38% ✅(未复跑)、G5 E2E 28/28 ✅、G7 状态机 5 GREEN ✅、G8 契约 4 红(B-65 承袭 + B-74 新增)❌、G6 CI 无 ❌。
|
|
|
+
|
|
|
+本轮核心改善:**langgraph LLM 401 归零(+4 转绿)+ 251:9000 服务恢复(B-55 服务维度解除)+ B-61 线上生效确认(第 12 轮零回归)**。新增 B-74(A 类装置,测试自处置)。无实质生产缺陷新增(B-65 承袭,非新发现)。
|
|
|
+
|
|
|
+**使绿顺序**:① 测试侧自修 B-74(conftest init_checkpointer,6 例)→ ② 研发修 B-65(analyze 2 例)→ ③ 研发实现 S-cfc-79(24 例)→ ④ 后端全量复跑落账 → ⑤ 最小 CI。
|
|
|
+
|
|
|
+**未实测(如实标注,未授权/无工具,非未尝试)**:后端全量(采信 R90,R91 未落账);Playwright 非 live 套件(联网未授权);JaCoCo/PIT/性能/SAST/SCA(无工具);变异/兼容/无障碍(无工具)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 交付
|
|
|
+
|
|
|
+- 本报告 `docs/tdd/test/automation-run-2026-11-08-R92.md` + `docs/tdd/test/blockers.md`(B-65-Update-92 / B-74 新增)→ commit + push 至 `origin/cfclub`(见提交记录)。
|
|
|
+- 工作区跨角色 WIP(53+ 项:tests/.art-*、_r*_agg.json、_dispatch_*.cjs、docs 报告等)**零触碰**;测试侧仅新增本报告与 blockers 更新。
|
|
|
+- 测试结果有变化(langgraph +4 转绿 / B-74 新登记 / B-65 精确拆分)→ 已提交远程 → **通知研发**(blockers 台账为送达载体,push 即送达)。
|