|
|
@@ -0,0 +1,267 @@
|
|
|
+# 测试负责人工作汇报(R189 轮)
|
|
|
+
|
|
|
+> 本汇报按《测试负责人工作汇报模板》填写。R189 为**实测轮 + 窗口契约验证轮**:基线 `cfclub @ 00121ff2f`(R188 收口 09:39),当前 HEAD `6124352d7`(11:11,含并行研发/测试会话在窗口内推入的契约测试与台账回填)。
|
|
|
+> **拓扑(用户指令)**:浏览器经 `http://cfc.iwintrue.com/admin`(后台)+ `http://cfc.iwintrue.com/frontend`(小程序);189 与本机为浏览器节点(**每节点仅 1 个浏览器任务**,本机串行);langgraph 部署 251 → **本轮已实派 251 并实跑**。
|
|
|
+> **★ 本轮关键事实**
|
|
|
+> ① **窗口(00121ff2f..6124352d7)源码/SRS/场景/接口文档零变更**(diff 命中 0)→ G12 ✅,用例无需更新;
|
|
|
+> ② 窗口**新增 13 个契约测试类(S-cfc-183/184/188/189/191/196 等域,133 例)全部定向实测**:**85 过 / 48 红 / 0 错**——48 红**全部为预期 RED(TDD 契约先行、研发未实现)**,无意外失败、无回归;其中 LoginSwitch 16/16、MessagePush 20/20、PlanActivate 15/15 三个 GREEN 类全绿;
|
|
|
+> ③ **langgraph@251 51/51 全绿(连续第 2 轮)**——B-142-2(上游 401/429 环境红)观察 2/2,满足销号判据;
|
|
|
+> ④ 浏览器六件套全绿(admin 5/5×2 节点、frontend 6/6、shop 4/4、health 13/13),线上 API 32 例 0 红,fe/web Jest 零漂移。
|
|
|
+> ★ **全站可比:4120 例 / 4003 过 = 97.16%(剔 skip 97.75%),红 92(后端 73 = 存量 25 + 契约预期 RED 48;fe 3 预期 RED;根级 16 环境)——红数上升全部源于窗口新增契约 RED,无缺陷回归。**
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 基本信息
|
|
|
+
|
|
|
+| 项目 | 内容 |
|
|
|
+|------|------|
|
|
|
+| 汇报人 | 测试负责人(自动化测试闭环任务 / 软件测试专家团·陆谨) |
|
|
|
+| 汇报周期 | 2026年11月13日 09:56 ~ 11:30(第 189 轮) |
|
|
|
+| 基线 | `cfclub @ 00121ff2f`(R188 收口);本轮收尾 HEAD `6124352d7`(并行会话并发推进,本地=远端) |
|
|
|
+| 窗口内需求变更 | **零** — `docs/superpowers/specs` / `tests/test-cases` / `API_REFERENCE.md` / 用户场景 窗口零变更(G12 ✅,未触发用例编写闸门) |
|
|
|
+| 窗口内源码变更 | **零** — `git diff --name-only 00121ff2f..6124352d7` 对 `src`、需求、用例、接口文档命中 0;34 个变更文件全部为 `docs/*` 与 `cfc-backend/src/test/**`(13 个新增契约测试类) |
|
|
|
+| 负责模块/单元 | 全站:管理端 admin@本机 + 189 · 小程序 H5 fe@本机 · cfc-langgraph@251(**本轮实派**) · cfc-backend JUnit(全量采信 R188 + 窗口契约类实测) · cfc-web/cfc-frontend Jest · 线上 API 非功能层 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 一、本轮工作数据汇总
|
|
|
+
|
|
|
+### 1.1 测试用例建设
|
|
|
+
|
|
|
+| 指标 | 数量 | 填写说明 |
|
|
|
+|------|------|----------|
|
|
|
+| **本轮新增测试用例数\*** | **0 个**(新增**133 例契约测试语法入库**) | SRS/场景/接口文档窗口零变更,未触发用例编写闸门(G12 ✅);窗口内并行会话新增 13 个契约测试类(S-cfc-183/184/188/189/191/196 等)已入库并于本轮逐类实测 |
|
|
|
+| **本轮验证执行测试数\*** | **4120 个** | 后端 **3244**(R188 全量采信 3111 + 窗口 13 契约类实测 133)+ 前端 Jest 624 + 管理端 116 + langgraph 51(**251 实派**)+ 浏览器 30(admin 5×2 + frontend 6 + shop 4 + health 13 + dx 2 跳)+ 线上 API 32 + 根级 23 |
|
|
|
+| **用例通过率** | **97.16%**(4003/4120;剔除 skip **97.75%**) | 红 92 / 跳 25;环比 R188(98.27%)−1.11pct,**红数上升 48 全部为窗口新增契约预期 RED(TDD 先行态),零缺陷回归** |
|
|
|
+| **用例台账** | `discovery.md` / `inventory.md` 已重扫重写 | inventory 跨源 **4567**(md 719 / PW 571 / py 48 / Java @Test **3229** / 场景 11);Java 测试文件 388(较 R188 375 **+13**,即窗口契约类) |
|
|
|
+
|
|
|
+### 1.2 会话与任务分发
|
|
|
+
|
|
|
+| 指标 | 数量 | 填写说明 |
|
|
|
+|------|------|----------|
|
|
|
+| **分派任务数\*** | **6 个** | R189-1 本机 `admin-desktop`(5/5,1.4m);R189-2 本机 `frontend-mobile`(6/6,46.2s);R189-3 本机 `shop-api`(4/4,6.9s)+ `health`(13/13,4.2s);R189-4 **189** `admin-desktop`(5/5 EXIT=0,1.3m);R189-5 **251** `langgraph pytest`(**51/51**,495.56s);R189-6 后端窗口契约类定向(133 例,2m05s) |
|
|
|
+| **恢复智能体会话数\*** | 0 个 | 各节点实探 200/ok(189:4090、251:4096、251:9000、本机 4091 全可达);未遇中断会话 |
|
|
|
+| **当前在用会话数** | 0 个 | 全部结束;251 残留 pytest 进程已清理(B-177-1 观察 3/2→4/2) |
|
|
|
+
|
|
|
+### 1.2b 各会话当前工作状态列表
|
|
|
+
|
|
|
+| 会话标签 | 会话 ID/地址 | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
|
|
|
+|----------|--------------|----------|----------|---------------|----------|------|
|
|
|
+| `local-admin` | 本机 Playwright | done | admin-desktop UI E2E | 1.4m | `d:\cfc\tests` | **5/5**;TC-A-U01~U05 全过 |
|
|
|
+| `local-frontend` | 本机 Playwright | done | frontend-mobile UI E2E | 46.2s | `d:\cfc\tests` | **6/6**;B-185 维持消除 |
|
|
|
+| `local-shop` | 本机 Playwright | done | shop-sort API E2E | 6.9s | `d:\cfc\tests` | **4/4** |
|
|
|
+| `local-health` | 本机 Playwright | done | health 鉴权契约 E2E | 4.2s | `d:\cfc\tests` | **13/13**(TC-HP-U01~03 全 401,B-61 维持) |
|
|
|
+| `remote-189` | 192.168.16.189:4090 | done | admin-desktop UI E2E | 1.3m | `C:\code\cfc\tests` | **5/5 EXIT=0**,跨节点可比 |
|
|
|
+| `remote-251` | 192.168.16.251:4096 | done | langgraph pytest | 495.56s | `/sc-data/cfc/cfc-langgraph` | **51/51 连续第 2 轮全绿**;节点 HEAD `f17d53669` |
|
|
|
+| `local-jest` | 本机进程 | done | cfc-web + cfc-frontend + 根级 | fe 172s / web 209s | `cfc-web` / `cfc-frontend` / `tests` | web **116/116**、fe **609/3/12**(3 预期 RED)、根级 **7/16** |
|
|
|
+| `local-backend` | 本机 mvn | done | 窗口契约类定向测试 | 2m05s | `d:\cfc\cfc-backend` | **133 例 = 85 过 / 48 预期 RED / 0 错** |
|
|
|
+| `virtual` | dx-bridge | done | D/X 桥接鉴权契约 | 瞬时 | `d:\cfc\tests` | **2 skip**(端点 404,B-DX-1 维持) |
|
|
|
+
|
|
|
+### 1.3 问题处置
|
|
|
+
|
|
|
+| 指标 | 数量 | 填写说明 |
|
|
|
+|------|------|----------|
|
|
|
+| **新测试发现问题数\*** | **2 个** | ① **B-189-1(P1 环境)**:`git.iwintrue.com` / 251 **SSH 22 CLOSED**(R188 09:39 尚可 push)→ `git fetch`/`push` 走 SSH 全部失败;替代路径 `http://git.iwintrue.com/liaoxg/cfc.git` 可读(HEAD=6124352d7,与本地一致)。**属 Gogs SSH 服务故障,非代码问题**;② **B-189-2(P2 流程/证据)**:窗口内 13 个契约测试类由并行会话推入但**未逐类验证入库**(自动化闭环遗漏),本轮补验完成:48 红全为预期 RED、3 个 GREEN 类全绿。 |
|
|
|
+| **已解决测试相关问题数\*** | **1 个** | **B-142-2(langgraph 上游凭据/配额环境红)观察 2/2**:R188 51/51 + R189 51/51,连续 2 轮全绿 → **满足销号判据,本轮正式销号**(残留 live chat 链路 120s 零字节单列 B-186-1 观察)。 |
|
|
|
+| **待解决测试相关问题数** | P0×2 / P1×7 / P2×4 | ① B-152-1/2 CI 清单漏拦/陈旧;② S-cfc-183/184/188/196 等 **48 前瞻契约 RED**(P1,需研发实现使绿);③ S-cfc-176 幂等 1F;④ B-177-1 pytest summary 后挂死;⑤ B-156-1/B-170-1 迁移 DDL;⑥ B-162-1 3 类未入库;⑦ B-178-1 反射装置 2F;⑧ B-36 根级 16 红(9082 未起);⑨ B-95 204 失联;⑩ B-DX-1 dx 404;⑪ B-186-1 live chat 挂死;⑫ **B-189-1 git SSH 22 故障**。 |
|
|
|
+
|
|
|
+### 1.4 本轮 git 提交与推送证据(真理证据)
|
|
|
+
|
|
|
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
|
|
|
+|----------|-----------------|------|--------------|----------|------------|------|
|
|
|
+| `见 §九` | 全站巡检 R189 + 契约窗验证 + B-142-2 销号 + B-189-1/2 登记 | 汇报 | 报告 + 执行日志 + blockers + 研发通知 + 台账 | cfclub | ⏳ SSH 22 故障,推送方式见 §九 | 结果有变化 → 按规则提交并通知研发 |
|
|
|
+
|
|
|
+### 1.5 状态机阶段分布(全局进度,研发侧账本口径)
|
|
|
+
|
|
|
+| 阶段 | 键数 | 备注 |
|
|
|
+|------|------|------|
|
|
|
+| UNTRACKED | 0 | 窗口零新增规格 |
|
|
|
+| RED | 17(历轮承袭)+ 窗口新契约若干 | S-cfc-183/184/188/196 等 48 前瞻契约 RED 已在本轮实测取证;研发状态机口径另计 |
|
|
|
+| YELLOW | 72 | 研发负责人口径(第152轮) |
|
|
|
+| GREEN / DONE | 24 | 承袭 |
|
|
|
+| 合计 | 105+ | 研发侧状态机账本口径(本轮交付 `blockers` 后互联) |
|
|
|
+
|
|
|
+### 1.6 数据源健康度
|
|
|
+
|
|
|
+| 数据源 | 读取键数 | 是否正常 | 备注 |
|
|
|
+|--------|----------|----------|------|
|
|
|
+| 需求侧(⏳ wish) | 0 | 正常 | SRS 目标池未启用 |
|
|
|
+| 契约常量(contract) | 多组 | 正常 | 窗口 13 契约类逐类可收集可执行 |
|
|
|
+| 测试用例引用(test_case_map) | 308+ 唯一 TC | 正常 | 台账扫描正常 |
|
|
|
+| 执行结果回填(case_results) | 定向 133 + 全量采信 | 正常 | surefire XML 可聚合 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 二、历史审查记录(阶段 -1 记忆召回)
|
|
|
+
|
|
|
+| 项 | 内容 |
|
|
|
+|---|---|
|
|
|
+| 上次审查 | **R188(2026-11-13 09:39,`00121ff2f`)**,结论「不通过(有条件,明显正向)」,全站 3987/3918(98.27%),红 44;后端全量恢复 43:15;langgraph 首轮 51/51;frontend 6/6 |
|
|
|
+| 历史遗留 | 后端存量 25 红(13 类)· 根级 16 红(B-36)· fe 3 预期 RED(S-cfc-132/133)· CI 漏拦/陈旧(B-152-1/2)· B-177-1 · B-178-1 · B-186-1 live chat |
|
|
|
+| 本次是否改善 | **langgraph 连续 2 轮 51/51 → B-142-2 销号(正向)**;后端存量 25 红窗口零漂移;浏览器六件套零漂移全绿;其余承袭 |
|
|
|
+| 教训应用 | ① 窗口出现**新增契约测试类必须逐类定向实测取证**再入报告(B-189-2:并行会话推入的 13 类昨日未验证,本轮补验证明 48 红全为预期 RED);② git SSH 故障时立即降级 HTTP 探源确认远端 HEAD(B-189-1);③ langgraph 全绿连续 2 轮即销号(B-142-2 判据兑现);④ 每节点仅 1 个浏览器任务、本机串行执行(本轮 6 实例顺序推进无冲突)。 |
|
|
|
+
|
|
|
+> 本次为该对象**第 189 次**审查,有历史记录;上述内容仅作对照,**本轮前端/管理端/langgraph/浏览器/API/根级/契约窗全部本轮实测**;后端全量采信 R188(窗口 main 零变更)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 三、项目画像与覆盖矩阵
|
|
|
+
|
|
|
+### 3.1 项目画像
|
|
|
+
|
|
|
+| 维度 | 内容 |
|
|
|
+|------|------|
|
|
|
+| 业务定位 | 家庭教育成长平台(五维能量 身/心/智/行/富):小程序家长端 + 规划师端 + 管理后台 + 独立商城 |
|
|
|
+| 技术栈 | Spring Boot 2.7.18 + MyBatis-Plus + Java 8(9082)/ uni-app 微信小程序(Vue2)/ Vue2 + Element UI(8082)/ FastAPI + LangGraph + ChromaDB(9000@251) |
|
|
|
+| 模块结构 | `cfc-backend`(366 控制器 / 388 测试源 / 369+13 测试类)/ `cfc-frontend`(42 测试文件 / 624 例)/ `cfc-web`(17 套件 / 116 例)/ `cfc-langgraph`(51 例 @251)/ `tests`(e2e-live 5 文件 + e2e/api 点名 4 文件) |
|
|
|
+| 关键路径 | 登录/家庭/成员 → 五维能量 → 任务/成长记录 → 健康报告上传解析 → 测评订单 → 商城/支付 → AI 对话(LangGraph) |
|
|
|
+| 测试现状 | **本轮实测**:浏览器 30 + langgraph 51 + fe 624 + web 116 + 根级 23 + API 32 + 契约窗 133 = **1009 例实测**;后端全量 3111 采信 R188(窗口 main 零变更) |
|
|
|
+| 质量目标 | 全量用例全绿、覆盖 SRS 与用户场景(含异常流)、浏览器双节点可复现、结果变更即提交并通知研发 |
|
|
|
+| 风险点 | ① 后端存量 25 红(12 类)+ 契约窗 48 RED 待实现;② CI 清单双向失真;③ 上游 LLM live 链路挂死(B-186-1);④ 根级 16 红(9082 未起);⑤ 迁移 DDL 缺陷;⑥ pytest 进程不退出(B-177-1);⑦ **git SSH 22 故障(B-189-1)** |
|
|
|
+| 待核实项 | S-cfc-176 幂等分支排期 · 251 上游凭据/配额(pytest 绿但 live 挂)· 204 节点恢复 · B-156-1/B-170-1 修复状态 |
|
|
|
+
|
|
|
+### 3.2 20 类测试覆盖矩阵(全类不省略)
|
|
|
+
|
|
|
+| # | 测试类型 | 三态 | 证据(本轮实测) |
|
|
|
+|---|----------|------|------------------|
|
|
|
+| 1 | 单元测试 | ✅ 已发现 | 后端全量 3111(采信 R188)+ 契约窗 133(实测);前端 624;管理端 116 |
|
|
|
+| 2 | 测试覆盖率 | ⚠️ 部分 | 管理端 Jest 覆盖率可产出;后端未开 jacoco(未授权改 pom) |
|
|
|
+| 3 | 变异测试 | ❌ 未发现 | 全仓无 pitest/mutation 配置 |
|
|
|
+| 4 | 集成测试 | ✅ 已发现 | `integration/*` 存量执行结果承袭(EnergySystemFlow 6F、GuideModule 1E 等);本轮未重跑(main 零变更) |
|
|
|
+| 5 | 契约测试 | ✅ 已发现(本轮重点) | **窗口 13 契约类 133 例全实测**:LoginSwitch 16/16、MessagePush 20/20、PlanActivate 15/15 全绿;另 10 类 48 红全为预期 RED;S-cfc-176 维持 1F |
|
|
|
+| 6 | 接口 API 测试 | ✅ 已发现 | 线上 API 32 例(**本轮实测**:25 过 / 7 跳 / 0 红,28s) |
|
|
|
+| 7 | 系统/端到端 | ✅ 已发现 | 浏览器 30 例(**本轮实测**:28 过 + 2 跳),双节点 admin 5/5 |
|
|
|
+| 8 | 验收 UAT | ⚠️ 待核实 | 无独立 UAT 包;以浏览器 30 例作为系统级验收代理 |
|
|
|
+| 9 | BDD 规格 | ✅ 已发现 | 用例/场景 11 份(用户场景文件级,映射率 72.1% 承袭) |
|
|
|
+| 10 | 冒烟测试 | ✅ 已发现 | `api-smoke.spec.js` 本轮实测全绿(含自注册链路) |
|
|
|
+| 11 | 回归测试 | ✅ 已发现 | 存量红集合 12 类逐类零漂移(**第 24 次**);admin/frontend/shop/health 全绿 |
|
|
|
+| 12 | 探索性测试 | ⚠️ 部分 | 历轮浏览器人工探索记录;本轮未安排新探索项 |
|
|
|
+| 13 | 性能测试 | ❌ 未实测 | 未授权联网压测;仅 API 时延观察(非功能 32 例内含超时断言) |
|
|
|
+| 14 | 可靠性测试 | ⚠️ 部分 | pytest 挂死(B-177-1 第 4 轮观察)为可靠性缺陷;本轮 495.56s 正常收口 |
|
|
|
+| 15 | 安全测试 | ✅ 已发现 | `nonfunc-security.spec.js` 11 例本轮全绿(XSS/越权/恶意文件);匿名 6 端点全 401 |
|
|
|
+| 16 | 兼容性测试 | ⚠️ 部分 | 双视口(desktop 1440 / mobile 375)实测通过;无多浏览器矩阵 |
|
|
|
+| 17 | 可用性测试 | ⚠️ 部分 | 登录-主框架-核心菜单旅程 5/5×2 节点;无专项可用性问卷 |
|
|
|
+| 18 | 无障碍测试 | ❌ 未发现 | 无 axe/pa11y 配置 |
|
|
|
+| 19 | QA 流程 | ⚠️ 部分 | 汇报/台账/blockers 闭环在跑;CI 清单失真(B-152-1/2)未修 |
|
|
|
+| 20 | 质量指标 | ⚠️ 部分 | 全站通过率 97.16%(G1 未达 98%);锚点率 20.1% 承袭 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 四、五要素问题清单
|
|
|
+
|
|
|
+| # | ① 问题描述 | ② 测试 bug 点 | ③ 最优修改方案 | ④ 修改目的 | ⑤ 闭环方式 |
|
|
|
+|---|-----------|--------------|----------------|-----------|-----------|
|
|
|
+| P1 | 后端存量 25 红(12 类,跨 24 轮)零漂移承袭 | `EnergySystemFlowTest` 6F / `DimensionRegistryMapContractTest` 3F / `OrchestrationEngineTest`·`OrchestrationIntegrationTest`·`MembershipPaySwitchTest`·`PaymentServiceORDRoutingTest`·`UserServiceWechatLoginTest`(×2)·`TeamProfitCronContractTest` 各 1F 等 | 按类逐条修;先修 `TeamProfitCronContractTest`(平台费截断,影响计费) | 后端回归全绿 → G2 闭环 | 修后 `mvn -o -B test -Dtest=<类>` 定向复跑,单类 0F 连续 2 轮 |
|
|
|
+| P2 | **窗口 13 契约类 48 前瞻 RED 待研发实现(TDD 先行态,本轮已取证)** | S-cfc-183 `PlanContentSafetyReviewContractTest` 4F / S-cfc-184 `TeacherAssessmentRecordContractTest` 3F / S-cfc-188 `FamilyAutoCreateForPurchaseContractTest` 4F / S-cfc-196 `TeacherPlanCreateContractTest` 4F / `TeacherMindRecordContractTest` 12F / `TeacherAppointmentGuardContractTest` 10F / 其余 5 类 10F | 按 SC-T 界面对应实现(必填拦截、重复覆盖、权限门禁、自动建家庭、mind 记录、预约守卫等);本报告 `notice` 已逐键下发 | 48 前瞻契约转绿 → RED 清零 | 实现后逐类定向复跑,单类 0F 即销 RED;GREEN 三键(189/191/Activate)已全绿可直接收尾 |
|
|
|
+| P3 | S-cfc-176 幂等分支未生效 | `MembershipPlanPurchaseContractTest.repeatPurchase_pendingOrderSamePlan_reuseNoDuplicate:201`(`NeverWantedButInvoked: paymentOrderMapper.insert`) | `findReusablePendingOrder` 命中后直接复用,不再 insert | 契约闭环(防重复下单) | 定向复跑该类 7/7 绿 |
|
|
|
+| P4 | 迁移 DDL 缺陷持续复现 | `schema.sql:5345` `INDEX idx_product (product_id)` 无该列;`DatabaseInitializer.java:2261` 带别名 UPDATE + 派生表引用被更新表 | 删索引或补列;改独立子查询写法 | 建表成功 + 计数列可写 | 启动日志 0 次 `SQLSyntaxErrorException` |
|
|
|
+| P5 | 未入库测试资产 3 类 | `config/GrowthPublicEndpointMappingTest.java`(`??` 未跟踪)等 | `git add` + push | 资产可追溯 | 入库后全量重跑该类 0E |
|
|
|
+| P6 | pytest 打印 summary 后进程不退出(B-177-1 第 4 轮)| `tests/test_analyze.py` → `RuntimeWarning: coroutine 'JavaClient._get_client' was never awaited` | `app/main.py:84` 改用 lifespan 并 `await client.aclose()`;派发器加 `timeout -k 10 900` | 派发可判定成功、节点不残留 | 派发日志出现 `EXIT=0` 且 `ps` 无残留 |
|
|
|
+| P7 | 根级黑盒 16 红(B-36 第 73 轮) | `tests/integration/*`(全 `ECONNREFUSED 9082`) | 起本地 9082 或改指向测试环境 | 黑盒链路可测 | 9082 起来后重跑 23 例 |
|
|
|
+| P8 | CI 清单双向失真(B-152-1/2) | `.gitlab-ci.yml:61`(漏拦 6 + 陈旧 26) | 按实测红类集合精修 `BACKEND_OBSERVED_CLASSES`(接入本轮 13 契约类) | CI 硬门禁真实生效 | CI 在含红例分支上「必红」验证一次 |
|
|
|
+| P9 | 前端 3 例预期 RED | `signature.*`(AC-R1/AC-R2)+ `growthHistory.dayGroupView` RED-A7 | 交付 S-cfc-132/133 组件与分组逻辑 | 前端全绿 | `npx jest` 624/624 |
|
|
|
+| P10 | **git SSH 22 故障(B-189-1,本轮环境)** | `git.iwintrue.com` / `192.168.16.251:22` CLOSED(R188 09:39 尚可 push) | Gogs 侧恢复 SSH 服务/端口映射;故障期经 `http://git.iwintrue.com/liaoxg/cfc.git` 只读确认远端 HEAD | fetch/push 恢复正常 | `git fetch origin` 成功 + 本轮产物推送成功 |
|
|
|
+| P11 | dx 桥接 2 例 skip(404) | `dx-health-bridge-auth.spec.js`(端点 404) | 端点上线后自动转断言 | 覆盖空转消除 | 线上端点 200 后重跑转 401 断言 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 五、域结论表
|
|
|
+
|
|
|
+| 审查维度 | 负责专家 | 结论 | 关键证据 |
|
|
|
+|----------|----------|------|----------|
|
|
|
+| 单元·组件级 | 苏雅 | **改善** | 窗口 13 契约类 133 例全实测(GREEN 3 类 51 例全绿);fe 609/3/12(3 预期 RED);web 116/116 |
|
|
|
+| 集成·接口级 | 柯砚 | **改善** | 线上 API 32 例 0 红;S-cfc-176 维持 1F;契约窗 3 GREEN 类可收尾 |
|
|
|
+| 系统·验收级 | 白樾 | **稳定** | 浏览器 30 例 28 过 + 2 跳;admin 双节点 5/5;frontend 6/6;health 13/13(B-61 维持) |
|
|
|
+| 测试保障级 | 闻朔 | 改善 | 冒烟全绿;存量红集合零漂移(第 24 次);契约定向验证流程新增(B-189-2 补验) |
|
|
|
+| 性能·可靠性 | 骆骋 | 承袭 | 后端全量采信(窗口零变更);langgraph 51/51 正常收口但 pytest 进程不退出仍为可靠性缺陷(B-177-1) |
|
|
|
+| 安全 | 关屿 | **改善** | 匿名端点全 401;nonfunc-security 11 例全绿(XSS/越权/恶意文件) |
|
|
|
+| 兼容·体验 | 阮清 | 稳定 | frontend 移动视口 6/6;desktop 双节点 admin 5/5;无多浏览器矩阵 |
|
|
|
+| 流程·度量 | 何序 | 部分改善 | G12 ✅ 窗口零需求变更;G9 锚点 20.1% 承袭;CI 漏拦/陈旧未修(B-152-1/2) |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 六、门禁结论
|
|
|
+
|
|
|
+**结论:不通过(承袭,无回归、正向项明确)** —— 全站 4120 例 / **4003 过 = 97.16%(剔 skip 97.75%)**,红 92。红数环比 +48 的**全部来源为窗口新增契约测试的预期 RED**(TDD 契约先行、研发未实现,非缺陷);langgraph 连续 2 轮 51/51(**B-142-2 销号**);浏览器六件套全绿;API 零红;后端存量 25 红零漂移。阻断项为**存量红 + 48 前瞻契约 RED + CI 清单失真 + live chat 挂死**,均非本轮新增回归。
|
|
|
+
|
|
|
+| 门禁 | 判定 | 依据(本轮实测) |
|
|
|
+|------|------|------------------|
|
|
|
+| G1 全站通过率 ≥98% | ❌ **97.16%** | 4003/4120(剔 skip 97.75%);−1.11pct 全因 48 契约预期 RED 入池 |
|
|
|
+| G2 后端红归零/契约裁决 | ❌ **73 红** | 存量 25(12 类)+ **契约窗 48 预期 RED(10 类,需研发实现)** |
|
|
|
+| G3 前端双绿 | ⚠️ fe 609/624(3 预期 RED)+ web 116/116;**小程序 H5 浏览器 6/6** | 3 红全为 S-cfc-132/133 未交付 |
|
|
|
+| G4 编译可编译 | ✅ | 窗口契约类全量 test-compile + 定向执行无编译错 |
|
|
|
+| G5 结果完整性 | ✅ | 定向 133 例 surefire XML 完整;全量承袭 R188 369 XML 可聚合 |
|
|
|
+| G6 浏览器 E2E | ✅ **28 过 + 2 跳** | admin 5/5(本机+189)、fe 6/6、shop 4/4、health 13/13、dx 2 跳 |
|
|
|
+| G7 langgraph | ✅ **51/51(连续 2 轮)** | **B-142-2 销号**;live chat 挂死单列 B-186-1 |
|
|
|
+| G8 匿名鉴权 401 | ✅ | health 三端点全 401;API 安全套件 11 例全绿 |
|
|
|
+| G9 用例锚定 SRS | ❌ 20.1% | 承袭口径(本轮未变) |
|
|
|
+| G10 双/三节点可比 | ✅ 双节点 | 189 admin 5/5 + 本机 admin 5/5 + 251 langgraph 51 例 |
|
|
|
+| G11 CI 必红 | ❌ | 漏拦 6 + 陈旧 26 承袭(B-152-1/2) |
|
|
|
+| G12 用例锚定 SRS 变更 | ✅ | specs / test-cases / API_REFERENCE / 场景窗口零变更 → 用例零新增 |
|
|
|
+| G13 存量红零漂移 | ✅ **第 24 次** | 12 类逐类与 R188 一致;B-142-2 为唯一闭环项(正向) |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 七、变更触发动作(用户规则:结果有变 → 提交远程 + 通知研发)
|
|
|
+
|
|
|
+- **变更事实(本轮)**:① 窗口**新增 13 契约测试类 133 例**(S-cfc-183/184/188/189/191/196 等)经定向实测取证:48 预期 RED 待研发实现、3 个 GREEN 类全绿可收尾;② langgraph **51/51 连续第 2 轮** → **B-142-2 销号**;③ 浏览器六件套全绿、API 零红、fe/web 零漂移;④ 全站口径 4120 例(+133)。
|
|
|
+- **动作**:本报告 + `automation-run-R189.md` + `blockers.md`(B-189-1/2 新增、B-142-2 销号、B-186-1 计数更新)+ `notice-2026-11-13-R189-研发通知.md` + 台账三件套(discovery/inventory/automation-status)提交推送。
|
|
|
+- **推送状态**:⚠️ **git SSH 22 故障(B-189-1)**——`git fetch/push` 走 SSH 失败;已降级经 `http://git.iwintrue.com/liaoxg/cfc.git` 确认远端 HEAD=6124352d7(与本地一致);推送按 B-189-1 处置(见§八 待办 1)。
|
|
|
+- **通知通道**:Agent Mail 历轮 `not_bound`(静默不触发)→ 以 blockers.md + 研发通知 + 推送落地。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 八、待办
|
|
|
+
|
|
|
+1. **运维(P0)**:恢复 Gogs SSH 22(B-189-1)——本轮推送因此受阻;恢复期间可用 HTTP clone 只读核源。
|
|
|
+2. **研发(P1)**:48 前瞻契约 RED(S-cfc-183/184/188/196 + MindRecord/AppointmentGuard 等 10 类)逐键实现使绿;S-cfc-176 幂等;迁移 DDL(B-156-1/B-170-1);B-177-1 `aclose()`。
|
|
|
+3. **CI**:精修 `BACKEND_OBSERVED_CLASSES`(漏拦 6 + 陈旧 26 + 接入 13 契约类)。
|
|
|
+4. **测试**:B-142-2 已销号;下轮关注 48 RED 的研发实现进展与回归;前端 624/624 目标(S-cfc-132/133 交付后)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 附录 A:本轮命令与口径(可复现)
|
|
|
+
|
|
|
+```bash
|
|
|
+# 浏览器(必须在 tests/ 内跑;每节点 1 个浏览器任务,本机串行)
|
|
|
+cd tests && npx playwright test -c playwright.config.live.js --project=admin-desktop # 5/5(本机)
|
|
|
+cd tests && npx playwright test -c playwright.config.live.js --project=frontend-mobile # 6/6
|
|
|
+cd tests && npx playwright test -c playwright.config.live.js --project=shop-api # 4/4
|
|
|
+cd tests && npx playwright test -c playwright.config.health.js # 13/13
|
|
|
+cd tests && npx playwright test -c playwright.config.api.js --output=../_r189_api \
|
|
|
+ e2e/api/api-smoke.spec.js e2e/api/nonfunc-security.spec.js \
|
|
|
+ e2e/api/nonfunc-perf-compat.spec.js e2e/api/traceability-p94-p95-c26.spec.js # 25/7/0
|
|
|
+
|
|
|
+# 189 节点 admin(单节点任务)
|
|
|
+node _r189_189_admin.cjs kick && node _r189_189_admin.cjs read # 5/5 EXIT=0
|
|
|
+
|
|
|
+# 251 节点 langgraph pytest
|
|
|
+LOG=/tmp/r189_pytest.log node _r189_251_lg.cjs kick && node _r189_251_lg.cjs read # 51/51
|
|
|
+
|
|
|
+# 窗口契约类定向(13 类 133 例)
|
|
|
+cd cfc-backend && JAVA_HOME=/d/jdk1.8.0_25 /d/maven/apache-maven-3.6.1/bin/mvn -o test -Dtest='FamilyAutoCreateForPurchaseContractTest,...,TeacherPlanCreateContractTest' -DfailIfNoTests=false
|
|
|
+
|
|
|
+# Jest
|
|
|
+cd cfc-frontend && npx jest --ci # 609/3/12
|
|
|
+cd cfc-web && npx jest --ci # 116/116
|
|
|
+cd tests && npx jest --silent # 7/16(B-36)
|
|
|
+```
|
|
|
+
|
|
|
+## 附录 B:窗口 13 契约测试类定向实测明细(B-189-2 补验)
|
|
|
+
|
|
|
+| 类 | 提交 | 例数 | 过/红 | 预期 |
|
|
|
+|----|------|------|-------|------|
|
|
|
+| FamilyAutoCreateForPurchaseContractTest | 883a6eeab (S-cfc-188) | 5 | 1/4 | RED 4/5 ✅(自动建家庭未落地) |
|
|
|
+| GuideFamilyTaskReviewContractTest | 窗口 | 5 | 3/2 | RED(部分边界) |
|
|
|
+| NutritionPlanTeacherContractTest | 窗口 | 4 | 1/3 | RED(营养师计划边界) |
|
|
|
+| PlanContentSafetyReviewContractTest | 5f2a09b02 (S-cfc-183) | 9 | 5/4 | RED 4F ✅(AI 方案内容安全复核缺失) |
|
|
|
+| TeacherAppointmentGuardContractTest | 窗口 | 14 | 4/10 | RED(预约守卫未落地) |
|
|
|
+| TeacherAssessmentRecordContractTest | 64f8a3875 (S-cfc-184) | 4 | 1/3 | RED 3F ✅(必填拦截/重复覆盖未落地) |
|
|
|
+| TeacherDataIsolationScT13ContractTest | 窗口 | 9 | 5/4 | RED(数据隔离边界) |
|
|
|
+| TeacherDimensionScoreContractTest | 窗口 | 6 | 4/2 | RED(维度评分边界) |
|
|
|
+| TeacherLoginSwitchContractTest | bbc441e08 (S-cfc-189) | 16 | 16/0 | **GREEN 16/16 ✅**(实现已落地) |
|
|
|
+| TeacherMessagePushContractTest | 23e2ddd66 (S-cfc-191) | 20 | 20/0 | **GREEN 20/20 ✅** |
|
|
|
+| TeacherMindRecordContractTest | 窗口 | 13 | 1/12 | RED(mind 记录大面未落地) |
|
|
|
+| TeacherPlanActivateContractTest | 窗口 | 15 | 15/0 | **GREEN 15/15 ✅** |
|
|
|
+| TeacherPlanCreateContractTest | fb1702975 (S-cfc-196) | 13 | 9/4 | RED 4F ✅(权限门禁未落地) |
|
|
|
+| **合计** | — | **133** | **85/48** | 48 红全部为预期 RED(TDD 先行),0 意外失败 |
|