|
|
@@ -0,0 +1,261 @@
|
|
|
+# 测试负责人闭环汇报 · 第 120 轮(2026-11-10 10:08–11:25)
|
|
|
+
|
|
|
+> 执行档:**review(离线)** — 白名单内离线套件 + 已授权内网只读 E2E(`cfc.iwintrue.com` 的 `/admin` + `/frontend`)+ 节点派发(251 跑 langgraph / 189 跑浏览器 admin)
|
|
|
+> 仓库:`D:/cfc`;分支 `cfclub`;**测试基线 HEAD `aa38eeb18`**(实跑基线;收尾 `git pull` 至 `034f1f09d`,新增仅研发汇报 1058 + cfc-web 版本 bump `1.0.2298→1.0.2299` + CHANGELOG,**零生产源码 / 零 SRS / 零用例变更**)
|
|
|
+> 执行窗口:10:08 → 11:25(前端/管理端/根级/浏览器双节点串并行错峰;后端全量无新源码 → 采信 R119)
|
|
|
+> 拓扑(用户本轮指令):浏览器自动化 → `cfc.iwintrue.com/admin`、`/frontend`,`192.168.16.189` 与本机各一节点(每节点单任务);langgraph 部署 `192.168.16.251`,测试分派该节点
|
|
|
+> 团队:自动化闭环轮,八域结论由测试负责人依据**本轮实测证据**汇总(未启用分布式成员会签),不代写任何成员未产出之结论
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 一、历史审查记录(阶段 -1 记忆召回)
|
|
|
+
|
|
|
+| 项 | 内容 |
|
|
|
+|---|---|
|
|
|
+| 上次审查 | 第 119 轮(2026-11-10 09:47,已提交 `aa38eeb18`);本轮为直接接续轮 |
|
|
|
+| 历史遗留缺口 | B-69(`/api/mind/**` 鉴权,第 19 轮→本轮 20)、B-65/B-74/B-82(langgraph LLM 凭据/checkpointer)、B-36(根级黑盒 16 红,第 22 轮→本轮 23)、B-90(chat 挂起观察)、B-15(`tests/qna` 收集期错误)、B-118(env 能力探针)、B-119(langgraph 口径)、G-11(已闭环待销号) |
|
|
|
+| 本次是否改善 | **B-120 销号**(189 首轮 5/5 连续第 2 轮 0 偶发,满足闭环判据,节点偶发自愈);**langgraph 非 LLM 子集本轮实跑复验全绿(31/31)**;其余指标与 R119 严格零漂移;B-69 第 20 轮复证未修 |
|
|
|
+| 本次新发现 | 无新红例/新观察项;本轮唯一状态变化为 B-120 观察到期销号 |
|
|
|
+| 声明 | 历史结论仅作对照;**本轮所有计入全量的数字均有本轮或最近一次同基线证据**(后端采信 R119 因零 src 变更;langgraph LLM 12 例承袭 R119 因凭据 401 未变;浏览器/前端/管理端/根级全部本轮实跑) |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 二、项目画像(阶段 0 · 本轮为稳定延续轮)
|
|
|
+
|
|
|
+| 模块 | 技术栈 | 端口 | 本轮可测范围与关键路径 |
|
|
|
+|---|---|---|---|
|
|
|
+| cfc-backend | Spring Boot 2.7.18 + MyBatis-Plus(JDK8) | 9082(本机 DOWN) | **339 测试类 / 2854 `@Test`(采信 R119)**;`DatabaseInitializer` 迁移入口;`JwtInterceptor` 8 公开路径白名单 + `LOGIN_REQUIRED_PATHS`;AI 走 `AiGateway` |
|
|
|
+| cfc-frontend | uni-app 小程序 (Vue2) | — | 26 套 Jest(utils/store/components/pages/specs)本轮实跑 |
|
|
|
+| cfc-web | Vue2 + Element UI 管理端 | 8082 | 17 套 Jest / 116 例本轮实跑;语句覆盖 9.98% |
|
|
|
+| cfc-langgraph | Python FastAPI + LangGraph + ChromaDB | 9000(@251) | 非 LLM 31 例于 251 实派执行(`.venv` py3.11,162.9s 全绿);LLM 依赖 12 例承袭 R119 |
|
|
|
+
|
|
|
+**环境能力实测**
|
|
|
+
|
|
|
+| 能力 | 实测 | 结论 |
|
|
|
+|---|---|---|
|
|
|
+| `192.168.16.251:4096` | 200(Basic 鉴权通过) | **shell 直连派发可用**(本轮原生 API 脚本实证) |
|
|
|
+| `192.168.16.251:9000` | 200 `/health` | langgraph 服务在线 |
|
|
|
+| `192.168.16.189:4090` | 200(Basic 鉴权通过) | 浏览器节点可派发(本轮实派 5 例) |
|
|
|
+| `http cfc.iwintrue.com` | 302→200 | 可用(G-11 闭环后稳定) |
|
|
|
+| `127.0.0.1:9082` | 000 | 本机后端未起(按规则不擅自启停) |
|
|
|
+| Maven / JDK1.8 | 可执行 | 本轮未使用(后端无变更采信) |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 三、20 类测试覆盖矩阵(三态:已发现 / 未发现 / 待核实)
|
|
|
+
|
|
|
+| # | 类型 | 状态 | 证据(本轮实测 / 基线引用) |
|
|
|
+|---|---|---|---|
|
|
|
+| 1 | 单元测试(cfc-web) | 已发现 | 本轮回跑 17 套 / 116 例全绿(187.0s) |
|
|
|
+| 2 | 单元测试(cfc-frontend) | 已发现 | 本轮回跑 26 套 / 426(423 过 / 3 跳,89.1s) |
|
|
|
+| 3 | 组件测试 | 已发现 | `Families.*` / `ProductPicker` / `signature.canvas2d` / `recommendation.*` spec |
|
|
|
+| 4 | 测试覆盖率 | 已发现 | cfc-web 语句 9.98% / 分支 6.12% / 函数 7.51% / 行 9.98%(采信 R119,零变更) |
|
|
|
+| 5 | 变异测试 | 未发现 | 无 pitest / mutation 配置 |
|
|
|
+| 6 | 集成测试 | 采信 R119 | 后端 34 红 15 类(R119 全量实测,零 src 变更) |
|
|
|
+| 7 | 契约测试 | 采信 R119 | `DimensionRegistryMapContractTest` 3 红等与 R119 一致 |
|
|
|
+| 8 | 接口 API 测试(活服务器) | 已发现 | `health-contract` 13/13 本轮实跑;B-69 匿名鉴权探针 1 端点 |
|
|
|
+| 9 | 系统/端到端 E2E | 已发现 | 本机 live 15/15 + health 13/13 + 189 首轮 5/5 |
|
|
|
+| 10 | 验收 UAT / BDD | 未发现 | 无 UAT 记录、无 `.feature` |
|
|
|
+| 11 | 冒烟测试 | 已发现 | `ci-smoke.spec.js` + `_automation_reachability.cjs` |
|
|
|
+| 12 | 回归测试 | 已发现 | 全量 3500 例口径可复现,与 R119 零漂移 |
|
|
|
+| 13 | 探索性测试 | 未发现 | 无 charter / 会话记录 |
|
|
|
+| 14 | 性能测试 | 未授权未执行 | 需联网压测(execute 档) |
|
|
|
+| 15 | 可靠性测试 | 待核实 | 无故障注入;B-90 chat 未复证(本轮未打 chat) |
|
|
|
+| 16 | 安全测试(SAST/DAST/SCA) | 未发现 | 仅鉴权契约 + 匿名探针;无 SAST/DAST/依赖扫描工具 |
|
|
|
+| 17 | 兼容性测试 | 未发现 | 仅 chromium |
|
|
|
+| 18 | 可用性测试 | 未发现 | 无可用性任务/量表 |
|
|
|
+| 19 | 无障碍测试 | 未发现 | 无 axe 扫描 |
|
|
|
+| 20 | QA 流程 / 度量 / 代码审查 | 部分已发现 | 全量 98.06%;CI 仅 test-compile + 前端 jest |
|
|
|
+
|
|
|
+> 「未发现」为扫描未命中,不等于项目没做;扫描截断/环境缺失一律标「待核实」。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 四、测试方案与执行档
|
|
|
+
|
|
|
+| 项 | 内容 |
|
|
|
+|---|---|
|
|
|
+| 目标 | ① 全部用例通过 ② SRS/场景覆盖可量化 ③ 变更即更新用例 |
|
|
|
+| 范围(本轮实跑) | 浏览器 E2E 本机 live+health(28)、浏览器 E2E@189 实派(5)、cfc-frontend Jest(426)、cfc-web Jest+覆盖率(116)、根级 `tests/jest.config.js` 黑盒(23)、langgraph 非 LLM 子集@251 实派(31) |
|
|
|
+| 采信项(零 src 变更纪律) | 后端全量 JUnit(R119 339 类 / 2864 例 / 98.67%)、langgraph LLM 依赖 12 例(R119 红例集合) |
|
|
|
+| 排除项 | `dan/danshop`(独立商城);`tests/qna`(收集期错误,B-15);需联网命令(依赖漏洞/压测/DAST);本机 9082 未起 |
|
|
|
+| 执行档 | **review**:不联网装依赖、不启停服务、不改生产代码 |
|
|
|
+| 授权 | 内网 E2E(`/admin`+`/frontend`)、双节点派发、按 SRS 变更写用例已授权;execute 档(压测/DAST)未申请,未执行 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 五、执行结果(本轮实测)
|
|
|
+
|
|
|
+### 5.1 总账
|
|
|
+
|
|
|
+| 套件 | 用例 | 通过 | 红 | Skip | 通过率 | 耗时 |
|
|
|
+|------|------|------|----|------|--------|------|
|
|
|
+| 后端 JUnit(339 类,采信 R119) | 2864 | 2826 | **34**(31F+3E) | 4 | **98.67%** | — |
|
|
|
+| 前端 Jest(26 套) | 426 | 423 | 0 | 3 | 100%(剔 skip) | 89.1s |
|
|
|
+| 管理端 Jest(17 套) | 116 | **116** | 0 | 0 | 100% | 187.0s |
|
|
|
+| 根级黑盒 Jest(3 套) | 23 | 7 | **16** | 0 | 30.43% | 18.2s |
|
|
|
+| langgraph pytest@251(非 LLM 实跑 + LLM 承袭) | 43(主口径) | 32 | **11** | 0 | 74.42% | 162.9s(子集) |
|
|
|
+| 浏览器 E2E 本机(live 15 + health 13) | 28 | **28** | 0 | 0 | 100% | 2.3m + 5.2s |
|
|
|
+| 浏览器 E2E@189(admin-desktop,首轮) | 5 | **5** | 0 | 0 | **100%** | 1.3m |
|
|
|
+| **全量(主口径)** | **3500** | **3432** | **61** | **7** | **98.06%** | — |
|
|
|
+
|
|
|
+> langgraph 口径(B-119 固化):全量 44 例(含 `test_chat`);主口径 43/32/11。本轮**非 LLM 31 例实跑全绿复验**;LLM 依赖 12 例(analyze 2 / auto_tag 5 / intent 4 / chat 1)因 251 凭据 401 承袭 R119,无源变更,采信有效。
|
|
|
+> 189 说明:本轮**首轮即 5/5 全绿**(区别于 R119 首轮偶发),与 R119 复验轮共同构成**连续 2 轮 0 偶发 → B-120 销号**。
|
|
|
+
|
|
|
+### 5.2 与 R119 基线对账
|
|
|
+
|
|
|
+| 指标 | R119(09:47) | 本轮 R120 | Δ |
|
|
|
+|---|---|---|---|
|
|
|
+| 后端 类/例/通过(采信) | 339 / 2864 / 2826 | **339 / 2864 / 2826** | 0 |
|
|
|
+| 后端红例(31F+3E) | 34(15 类) | **34(15 类)** | 0 |
|
|
|
+| 前端 Jest | 423/426(3 跳) | **423/426(3 跳)** | 0 |
|
|
|
+| 管理端 Jest | 116/116 | **116/116** | 0 |
|
|
|
+| 根级黑盒 | 7/23(16 红) | **7/23(16 红)** | 0 |
|
|
|
+| langgraph(同口径) | 32/43(11 红) | **32/43(11 红,非 LLM 31 实跑复验绿)** | 0 |
|
|
|
+| 浏览器 E2E | 28/28 + 189 复验 5/5 | **28/28 + 189 首轮 5/5** | 0(189 不再需复验) |
|
|
|
+| 全量(主口径) | 3500/3432(98.06%) | **3500/3432(98.06%)** | 0 |
|
|
|
+
|
|
|
+**Δ 归因**:源码/SRS/用例零变更 + 前端/管理端/根级/浏览器/langgraph 非 LLM 子集本轮实跑 → **逐项零漂移**;唯一变化为 B-120 观察到期销号(189 首轮不再偶发)。
|
|
|
+
|
|
|
+### 5.3 34 红例三层归因(采信 R119;归因桶:assert 19 / mockito 12 / npe 2 / other 1;环境红 0)
|
|
|
+
|
|
|
+| 层 | 类数 | 例数 | 明细 |
|
|
|
+|---|---|---|---|
|
|
|
+| **A 测试装置** | 4 | **16** | `CfCommissionServiceSettleTest` 8(Mockito `WantedButNotInvoked`)、`ArticleAutoTagServiceTest` 4(verify 次数)、`GrowthRecordSyncFlowTest` 3(2 NPE 测试帧 + 1 assert)、`TaskPlanServiceTest` 1 |
|
|
|
+| **B 产品缺陷** | 6 | **14** | `EnergySystemFlowTest` 6、`OrchestrationEngineTest` 1、`OrchestrationIntegrationTest` 1、`MembershipPaySwitchTest` 1、`PaymentServiceORDRoutingTest` 1、`UserServiceWechatLogin*` 2、`TeamProfitCronContractTest` 1、`MindFortuneControllerTest` 1(B-69 同源) |
|
|
|
+| **C 数据/环境** | 1 | **1** | `GuideModuleIntegrationTest` → `DataIntegrityViolation`(`platform_fee` 列截断) |
|
|
|
+| **契约待裁决** | 1 | **3** | `DimensionRegistryMapContractTest`(未知/空码映射 + 缺码 400 期望) |
|
|
|
+
|
|
|
+> 零 src 变更 → R119 全量实测结果承袭成立,红例集合差集为空。
|
|
|
+
|
|
|
+### 5.4 节点派发实测(用户指令域)
|
|
|
+
|
|
|
+| 节点 | 任务 | 结果 |
|
|
|
+|---|---|---|
|
|
|
+| **192.168.16.251** | langgraph pytest(shell 直连) | ✅ **实派取回**:非 LLM 子集 31/31 全绿(162.9s);LLM 12 例承袭 R119(凭据 401) |
|
|
|
+| **192.168.16.189** | admin-desktop E2E | ✅ **首轮 5/5 passed**(1.3m),连续第 2 轮 0 偶发 → B-120 销号 |
|
|
|
+| 本机 | live + health | ✅ 15/15 + 13/13,单节点串行 |
|
|
|
+
|
|
|
+### 5.5 线上鉴权探针(B-69 第 20 轮复证,匿名 POST)
|
|
|
+
|
|
|
+| 端点 | HTTP | body | 判定 |
|
|
|
+|---|---|---|---|
|
|
|
+| `/api/mind/fortune` | **200** | `{"code":400,"message":"用户不存在","data":null}` | ❌ 未拦截,应为 401 |
|
|
|
+
|
|
|
+**结论**:`JwtInterceptor.LOGIN_REQUIRED_PATHS` 仍缺 `/api/mind/`(O-21 裁决连续第 20 轮未落码),B-69 未修。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 六、SRS / 场景变更闸门
|
|
|
+
|
|
|
+- 实跑基线 `aa38eeb18` → 收尾 HEAD `034f1f09d`:新增仅研发汇报 1058 + cfc-web 版本 bump + CHANGELOG;
|
|
|
+- `git diff --name-only aa38eeb18..034f1f09d -- docs/*case* tests/test-cases*`:**为空** → SRS/场景/契约设计零变更;
|
|
|
+- specs 200 份、`tests/test-cases` 14 份、`tests/user-scenarios` 11 份,**零变更**。
|
|
|
+
|
|
|
+**结论:本次无 SRS/场景/接口变更 → 按规则跳过用例编写。**
|
|
|
+度量(采信 R119,零变更):场景 **215**、TC 映射 **155(72.1%)**、spec 字面引用 **32(14.9%)**;TC **812**、异常流 **483(59.5%)**、锚点 **86(10.6%)**。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 七、覆盖缺口清单
|
|
|
+
|
|
|
+| 缺口 | 类型 | 现状 | 风险 | 建议测试设计 | 优先级 | 闭环方式 |
|
|
|
+|---|---|---|---|---|---|---|
|
|
|
+| G-1 | 覆盖缺口 | TC 锚点 **10.6%**(86/812) | 「场景→用例→资产」不可追 | 资产首行加 `TC-xxx` 锚点 | P1 | 锚点率 ≥40% 纳门禁 |
|
|
|
+| G-2 | 覆盖缺口 | HL-05 仍无契约/E2E 用例 | 新特性零回归网 | 补 `ProductSelectionFlow` 契约 + Playwright | P1 | 定向套件全绿入台账 |
|
|
|
+| G-3 | 测试装置 | A 类 16 例 | 噪音掩盖真实回归 | 见 P-1 | P1 | 定向复跑 0 红 → 红例 34→18 |
|
|
|
+| G-4 | 黑盒失效 | 根级 16 红(B-36 第 23 轮) | 接口层无有效黑盒网 | 注入 `CFC_API_TOKEN` + seed 账号 | P1 | 0 红或显式 skip |
|
|
|
+| G-5 | 工具缺口 | 无覆盖率(java)/变异/压测/SAST/SCA | 内部质量不可量化 | jacoco+pitest;k6/zap 需授权 | P2 | 产物入库纳门禁 |
|
|
|
+| G-6 | 流程缺口 | CI 仅 test-compile + 前端 jest | 2864 例不在门禁内 | CI 增 `mvn test -DskipTests=false` | P1 | pipeline 出现 `Tests run` |
|
|
|
+| G-7 | ~~节点偶发~~ | **B-120 已销号**(连续 2 轮 0 偶发) | ~~不稳定假红~~ | ~登录前置加重试~(偶发自愈,不引入改动) | ✅ | **第 120 轮销号** |
|
|
|
+| G-8 | 资产缺口 | `@Disabled` 4 例 + `tests/qna` 错误 | 静默失效 | 修或删 | P2 | 收集期 0 error |
|
|
|
+| G-9 | 离线约束 | `api.test.js` 对公网真实 POST | 违离线约束 | 改 axios-mock-adapter | P2 | 零外联且仍绿 |
|
|
|
+| G-10 | 派发缺口 | 189 / 251 实派取回 | — | — | ✅ | 原生 API / shell 直连固化 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 八、域结论表
|
|
|
+
|
|
|
+| 审查维度 | 负责专家 | 结论 | 关键证据 |
|
|
|
+|---|---|---|---|
|
|
|
+| 单元·组件级(后端 339 类) | 苏雅 | **不通过(采信延续)** | 2864 例 98.67%,34 红(A16/B14/C1/契约3),零漂移(零 src 变更) |
|
|
|
+| 单元·组件级(前端 / 管理端) | 苏雅 | **通过** | 426(0 红 / 3 跳)、116/116(本轮实跑) |
|
|
|
+| 集成·接口级 | 柯砚 | **不通过** | 集成包 5 红类;契约 3 例口径未决;`EnergySystemFlowTest` 5×500(采信 R119) |
|
|
|
+| 系统·E2E | 白樾 | **通过** | 本机 28/28 + 189 首轮 5/5(B-120 销号);UAT/BDD 未实测 |
|
|
|
+| 测试保障级 | 闻朔 | **通过(部分)** | 冒烟/回归可复现;探索性无;根级 16 红 |
|
|
|
+| 性能·可靠性 | 骆骋 | **未实测** | 无压测工具/未授权联网 |
|
|
|
+| 安全 | 关屿 | **不通过** | B-69 第 20 轮复证:匿名 fortune → 200;O-21 未落码 |
|
|
|
+| 兼容·体验·无障碍 | 阮清 | **未实测** | 仅 chromium;无 axe |
|
|
|
+| 流程·度量·代码审查 | 何序 | **不通过** | CI 无后端全量;锚点 10.6%;(节点偶发项第 120 轮销号) |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 九、五要素问题清单
|
|
|
+
|
|
|
+### P-1(P1 · A 类 · 16 例)测试装置缺陷致红(第 6 轮挂账)
|
|
|
+① **问题描述**:`CfCommissionServiceSettleTest` 8 例、`ArticleAutoTagServiceTest` 4 例、`GrowthRecordSyncFlowTest` 3 例、`TaskPlanServiceTest` 1 例,断言/桩口径与生产不一致,非生产缺陷。
|
|
|
+② **测试 bug 点**:同 R119(本轮后端未实跑,采信;零 src 变更)。
|
|
|
+③ **最优修改方案**:CfCommission 8 例补档位查询桩;ArticleAutoTag 改 `verify(executor, times(n))`;GrowthRecordSync 在 `@BeforeEach` 补齐 mock;TaskPlan 对齐返回值口径。
|
|
|
+④ **修改目的**:让红例直接反映产品/契约缺陷,恢复信号价值。
|
|
|
+⑤ **能否闭环**:可。定向复跑 4 类 0 红 → 全量红例 34→≤18。
|
|
|
+
|
|
|
+### P-2(P0 · B 类 · 14 例)产品缺陷 / 契约不一致(第 6 轮挂账)
|
|
|
+① **问题描述**:`EnergySystemFlowTest` 6 例(5×500 + 1 码值)、编排 2 例、会员支付 1、支付路由 1、微信登录 2(token null)、分佣冷却 1、`MindFortune` 1(B-69 同源)。
|
|
|
+② **测试 bug 点 / 修改方案 / 闭环判据**:同 R119(EnergySystem 取 500 堆栈最内层;Orchestration 对齐 `task.status`;MembershipPay 修 `configMissing→null`;PaymentORD 补未知前缀路由;WechatLogin 核 token 签发;TeamProfitCron 补冷却期退款取消)。
|
|
|
+③ **修改目的**:消除五维能量/编排/支付/登录/分佣主链路真实缺陷。
|
|
|
+④ **能否闭环**:可,需研发逐类复现;判据:定向复跑 0 红 + 全量红例下降。
|
|
|
+
|
|
|
+### P-3(P1 · 契约 · 3 例)`DimensionRegistryMap` 契约口径未决(第 10 轮挂账)
|
|
|
+① **问题描述**:`map_unknownLegacy_returnsNullData:76`、`map_emptyLegacy_returnsNullData:85` 期望 `data=null` 实返原值;`map_missingLegacy_returnsBadRequest:92` 期望 400 实返 200。
|
|
|
+② **闭环**:主理人裁定「未知码/空码映射 null、缺码 400」并同步改契约或实现。
|
|
|
+
|
|
|
+### P-4(P0 · 安全 · 第 20 轮)`/api/mind/**` 鉴权缺口
|
|
|
+① **问题描述**:线上匿名 `POST /api/mind/fortune` → **HTTP 200** + `{"code":400,"message":"用户不存在"}`;`MindFortuneControllerTest#testGetTodayFortuneWithoutAuth` 期望 401 实得 400(`@RequestAttribute` 绑定层先 400,B-57 同族)。
|
|
|
+② **最优修改方案**:按 O-21 裁决,将 `/api/mind/` 等 4 条白名单移入 `JwtInterceptor.LOGIN_REQUIRED_PATHS`(当前无 `/api/mind/`)。
|
|
|
+③ **能否闭环**:可。判据:匿名探针全 401 + `MindFortuneControllerTest` 转绿 + `JwtInterceptorLoginRequiredPathTest` 全绿。
|
|
|
+
|
|
|
+### P-5(P2 · 节点偶发 · **第 120 轮销号**)189 `TC-A-U05` 登录前置偶发
|
|
|
+① **状态**:R119 首轮偶发(复验绿)→ 本轮**首轮 5/5 全绿** → **连续 2 轮 0 偶发,满足闭环判据 → 销号**。
|
|
|
+② **处置**:判定滑块登录偶发自愈,不引入测试改动(保留前置失败硬断言),不再作为观察项。
|
|
|
+
|
|
|
+### P-6(P1 · 环境/凭据 · 第 20 轮)langgraph 251 侧 LLM 凭据无效 + checkpointer 缺失
|
|
|
+① **问题描述**:251 实派 LLM 依赖 12 例红:`test_analyze` 2、`test_chat` 1、`test_auto_tag` 5(LLM 401)、`test_intent` 4。本轮另确认:251 无 `pytest_timeout` 插件,`test_auto_tag_short_content` 存在网络重试挂起(>240s 无输出),全量首轮 KICK 超时即源于此。
|
|
|
+② **本轮证据升级**:非 LLM 子集(health_plan/memory/report_parse/tongue/graph/recommend)**31/31 实跑全绿** → 挂起面收窄至 LLM 依赖文件,非代码回归。
|
|
|
+③ **最优修改方案**:注入有效 `LLM_API_KEY`(或全 mock);给 251 `.venv` 装 `pytest-timeout` 防挂起;`analyze` 补 `thread_id`/checkpointer;`intent_classifier` 401 时应抛错。
|
|
|
+④ **能否闭环**:可。判据:251 实派 44 例 0 红(或全 mock 后 0 红)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 十、门禁结论
|
|
|
+
|
|
|
+| 门禁 | 阈值 | 本轮实测 | 判定 |
|
|
|
+|---|---|---|---|
|
|
|
+| G1 全量通过率 | ≥98% | **98.06%**(后端 98.67% 采信) | ✅ |
|
|
|
+| G2 红例数 | 0 | **61**(后端 34 + 根级 16 + langgraph 11) | ❌ |
|
|
|
+| G3 前端 jest | 全绿 | 423/426(3 skip,0 红) | ✅ |
|
|
|
+| G4 管理端 jest | 全绿 | 116/116 | ✅ |
|
|
|
+| G5 后端编译完整性 | 0 错、无沉默 | 采信 R119:编译 0 错;339/339 XML、沉默 0;恒等式误差 0 | ✅ |
|
|
|
+| G6 浏览器 E2E | 全绿 | **28/28** + 189 首轮 5/5 | ✅ |
|
|
|
+| G7 langgraph | 0 红 | 32/43(**11 红**;非 LLM 31 实跑绿) | ❌ |
|
|
|
+| G8 鉴权契约 | 全绿 | health 13/13 + `/api/mind` **线上匿名 200** | ❌ |
|
|
|
+| G9 SRS 锚点 | ≥40% | **10.6%**(86/812) | ❌ |
|
|
|
+| G10 节点派发 | 双节点可派 | **251 ✅** / **189 ✅**(首轮 5/5) | ✅ |
|
|
|
+| G11 CI 接入 | 含后端全量 | 仅 test-compile + 前端 jest | ❌ |
|
|
|
+| G12 测试资产入库 | 变更已入库 | 报告/台账/阻塞更新入库 | ✅ |
|
|
|
+
|
|
|
+### 综合结论:**不通过(有条件)**
|
|
|
+
|
|
|
+- 阻断项:G2(61 红)、G7(langgraph 11 红)、G8(鉴权缺口 + O-21 未落码)、G9(锚点 10.6%)、G11(CI 无后端全量)。
|
|
|
+- 达标项:G1 98.06%、G3、G4、G5、G6、G10、G12。
|
|
|
+- **复评条件**:① P-4 落码(O-21);② P-2 中 EnergySystem/MembershipPay/PaymentORD/WechatLogin 四类定向复跑 0 红;③ CI 出现后端全量作业。
|
|
|
+- **与 R119 关系**:测试结果**严格零漂移**(逐项逐例一致,34 红类差集空);本轮唯一状态变化为 **B-120 销号**(189 连续 2 轮 0 偶发)与 **langgraph 非 LLM 子集实跑全绿复验**;连续第 6 轮挂账于 P-1/P-2/P-4/P-6 等未修项。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 附:本轮产出物
|
|
|
+
|
|
|
+| 文件 | 内容 |
|
|
|
+|---|---|
|
|
|
+| `docs/tdd/orchestration/report-test-2026-11-10-R120.md` | 本报告 |
|
|
|
+| `docs/tdd/test/automation-run-2026-11-10-R120.md` | 执行台账(命令/耗时/原始数字) |
|
|
|
+| `docs/tdd/test/blockers.md` | B-120 销号更新、B-69 第 20 轮、B-36 第 23 轮零漂移 |
|