|
@@ -0,0 +1,291 @@
|
|
|
|
|
+# 测试负责人工作汇报(R192 轮)
|
|
|
|
|
+
|
|
|
|
|
+> 本汇报按《测试负责人工作汇报模板》填写。R192 为**API 全量口径升级轮**:R191 收尾 `5ad781a00` 后,远程推入 auto bump(零源码)+ 合入 S-cfc-201 契约类;本轮通过 HTTP 兜底 fetch 快进至 **`7558d8cf4`**。
|
|
|
|
|
+> **拓扑(用户指令)**:浏览器经 `http://cfc.iwintrue.com/admin`(后台)+ `http://cfc.iwintrue.com/frontend`(小程序);189 / 本机为浏览器节点(**每节点仅 1 个浏览器任务**,本机四套件串行);langgraph 部署 251 → **本轮实派并实跑**。
|
|
|
|
|
+> **★ 本轮关键事实**
|
|
|
|
|
+> ① **API 全量首测 990 例**(历史仅 32 例子集):175 过 / 795 跳 / **20 红**,20 红跨 9 域**同根因**为 `tests/e2e/api/helpers/api.js` `direct-register` 前置注册返回 `body.code=undefined` → **B-192-2(P1,契约链/装置级)**,复验 badge 单文件 1F 证实。
|
|
|
|
|
+> ② **S-cfc-201 定向实测 24 例 6 红 18 绿,与提交声明完全一致**(`AdminArticleManageContractTest`,TDD-RED 落预期)。
|
|
|
|
|
+> ③ **后端承袭 R191 同源码基线(窗口 main/test 源码零变更)**:386 类 / 3315 例 / 3232 过 / 73F+6E+4S + 收尾增量 52(13 过 39 红);存量 13 类 24 红零漂移第 27 次。
|
|
|
|
|
+> ④ **langgraph@251 47/51**:4 红为 `test_auto_tag` ×2 + `test_intent` ×2(**例集较 R191 漂移**),根因仍是 429 AgnesAI 配额 + 401 key `****ab12` — 环境型;live `/health` 200/0.9ms 但 `chat/analyze` **000/20s** → B-186-1 第 6 轮延续。
|
|
|
|
|
+> ⑤ **浏览器六件套全绿**:本机 fe 6/6 + shop 4/4 + health 13/13(串行)+ **189 admin 5/5**;dx 2 跳承袭(B-DX-1)。
|
|
|
|
|
+> ★ **全站口径:5225 例 / 4245 过 = 81.24%(含 skip;剔 skip 96.22%),红 167**。环比 R191(4254/4088/96.67% 剔 skip):例 +971(API 全量 +958 / S-cfc-201 +24 / 浏览器 −11)、红 +26 全为 **S-cfc-201 前瞻 6 + API 首测探测 20**,**零缺陷回归**。
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 基本信息
|
|
|
|
|
+
|
|
|
|
|
+| 项目 | 内容 |
|
|
|
|
|
+|------|------|
|
|
|
|
|
+| 汇报人 | 测试负责人(自动化测试闭环任务 / 软件测试专家团·陆谨) |
|
|
|
|
|
+| 汇报周期 | 2026年11月13日 14:33 ~ 15:05(第 192 轮) |
|
|
|
|
|
+| 基线 | 起点 `cfclub @ 5ad781a00`(R191 收尾);HTTP 兜底 fetch → `--ff-only` 快进至 **`7558d8cf4`**(+auto bump 零源码;S-cfc-201 契约类先前已合入) |
|
|
|
|
|
+| 窗口内需求变更 | **零** — specs / test-cases / user-scenarios / API_REFERENCE 窗口 diff 命中 0 → **G12 ✅,未触发用例编写闸门** |
|
|
|
|
|
+| 窗口内源码变更 | **零功能源码** — `cfc-backend/src/main`、`cfc-frontend`、`cfc-langgraph` 窗口 diff 命中 0;唯一变更为 **S-cfc-201 契约类(+540 行)** + cfc-web 版本号 bump + docs |
|
|
|
|
|
+| 负责模块/单元 | 全站:管理端 admin@189 · 小程序 H5 fe/shop/health@本机 · cfc-langgraph@251(实派) · cfc-backend JUnit(承袭 + S-cfc-201 定向) · cfc-web/cfc-frontend Jest · 线上 API **全量 990 例** |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 一、本轮工作数据汇总
|
|
|
|
|
+
|
|
|
|
|
+### 1.1 测试用例建设
|
|
|
|
|
+
|
|
|
|
|
+| 指标 | 数量 | 填写说明 |
|
|
|
|
|
+|------|------|----------|
|
|
|
|
|
+| **本轮新增测试用例数\*** | **24 例(S-cfc-201 契约类,研发侧先行编写,本轮实测取证)** | SRS/场景/接口文档窗口零变更 → 未触发用例编写闸门(G12 ✅);窗口合入契约类 `AdminArticleManageContractTest` 24 例,**本轮定向实测 6 红 18 绿与提交声明一致** |
|
|
|
|
|
+| **本轮验证执行测试数\*** | **5225 个** | 后端 **3391**(承袭 3315 + 承袭增量 52 + S-cfc-201 定向 24)+ 前端 Jest 740(fe 624 + web 116)+ langgraph 51(**251 实派**)+ 浏览器 30(28 过 + dx 2 跳)+ **线上 API 全量 990** + 根级 23 |
|
|
|
|
|
+| **用例通过率** | **81.24%**(4245/5225;剔除 skip **96.22%**) | 红 167 / 跳 813;环比 R191 剔 skip 96.67% −0.45pct,红 +26 全为 **S-cfc-201 前瞻 RED(6)+ API 全量首测探测(20,即 B-192-2)**;**零缺陷回归** |
|
|
|
|
|
+| **用例台账** | `tests/test-cases` 16 份 / 表行 1168 / 唯一 TC 618 | 与 R191 一致;锚点命中率口径见 §附录 C(B-124 并存) |
|
|
|
|
|
+
|
|
|
|
|
+### 1.2 会话与任务分发
|
|
|
|
|
+
|
|
|
|
|
+| 指标 | 数量 | 填写说明 |
|
|
|
|
|
+|------|------|----------|
|
|
|
|
|
+| **分派任务数\*** | **6 个** | R192-1 本机 `frontend-mobile`(6/6,55.0s)+ `shop-api`(4/4)+ `health`(13/13)+ `dx`(2 跳,串行);R192-2 **189** `admin-desktop`(**5/5**,1.2m);R192-3 **251** `langgraph pytest`(**47/51**,123.28s)+ live 三端点;R192-4 cfc-web Jest(116/116, 114.3s);R192-5 cfc-frontend Jest(609/3/12, 86.7s)+ 根级 Jest(7/16);R192-6 **线上 API 全量**(990:175/20/795)+ S-cfc-201 定向(24:18/6) |
|
|
|
|
|
+| **恢复智能体会话数\*** | 0 个 | 各节点实探:`189:4090`=200、`251:4096`=200、`251:9000`=health 200、本机 9082=closed(B-36 预期);git SSH 22 不可用 → HTTP 兜底 |
|
|
|
|
|
+| **当前在用会话数** | 0 个 | 全部结束;251 残留 pytest 进程(bash+pytest 2 个,存活 07:26)已 `kill -9` 清理并 `ps` 复核 0 |
|
|
|
|
|
+
|
|
|
|
|
+### 1.2b 各会话当前工作状态列表
|
|
|
|
|
+
|
|
|
|
|
+| 会话标签 | 会话 ID/地址 | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
|
|
|
|
|
+|----------|--------------|----------|----------|---------------|----------|------|
|
|
|
|
|
+| `remote-189` | 192.168.16.189:4090 | done | admin-desktop UI E2E | 1.2m | `C:\code\cfc\tests` | **5/5**;TC-A-U01~U05 全过 |
|
|
|
|
|
+| `local-frontend` | 本机 Playwright | done | frontend-mobile UI E2E | 55.0s | `d:\cfc\tests` | **6/6**;B-185 维持 |
|
|
|
|
|
+| `local-shop` | 本机 Playwright | done | shop-sort API E2E | 12.4s | `d:\cfc\tests` | **4/4** |
|
|
|
|
|
+| `local-health` | 本机 Playwright | done | health 鉴权契约 E2E | 4.2s | `d:\cfc\tests` | **13/13**(全 401) |
|
|
|
|
|
+| `virtual` | dx-bridge | done | D/X 桥接鉴权契约 | 瞬时 | `d:\cfc\tests` | **2 skip**(B-DX-1 第 34 轮) |
|
|
|
|
|
+| `remote-251` | 192.168.16.251:4096 | done | langgraph pytest + live 探针 | 123.28s | `/sc-data/cfc/cfc-langgraph` | **47/51**;4 红例集漂移(auto_tag 2 + intent 2),429/401 环境 |
|
|
|
|
|
+| `local-jest` | 本机进程 | done | cfc-web + fe + 根级 | web 114.3s / fe 86.7s / root 7.1s | `cfc-web`/`cfc-frontend`/`tests` | web 116/116、fe 609/3/12、根级 7/16 |
|
|
|
|
|
+| `local-api` | 本机 Playwright | done | **线上 API 全量** | 13.1m | `d:\cfc\tests` | **990:175/20/795**;20 红同根因 direct-register(B-192-2) |
|
|
|
|
|
+| `local-backend` | 本机 mvn | done | S-cfc-201 契约定向 | 1m23s | `d:\cfc\cfc-backend` | **24 例 6 红 18 绿,与声明一致**(承袭 R191 全量) |
|
|
|
|
|
+
|
|
|
|
|
+### 1.3 问题处置
|
|
|
|
|
+
|
|
|
|
|
+| 指标 | 数量 | 填写说明 |
|
|
|
|
|
+|------|------|----------|
|
|
|
|
|
+| **新测试发现问题数\*** | **2 个** | ① **B-192-2(P1 工具/契约链)**:API 全量首测 990 例暴露 **20 红** 跨 9 域(badge 4 / wish-flow 6 / task-checkin 3 / coach-food 2 / task-frequency/task-c14/incentive/energy/wechat-login 各 1)**同根因**:`helpers/api.js` `direct-register` 前置注册返回 `body.code=undefined`(线上未回 200)→ 断言链连锁失败;复验 badge 单文件 1F(C-09 断链)证实装置/契约链级;② **B-192-1(P1 观测)**:langgraph 红例集由 R191 全 `test_auto_tag`(4 红)漂移为 auto_tag 2 + intent 2,429/401 双因未变 |
|
|
|
|
|
+| **已解决测试相关问题数\*** | **1 个** | **S-cfc-201 前瞻确认**:24 例 6F/18G 与提交声明完全一致(TDD-RED 落预期,非回归) |
|
|
|
|
|
+| **待解决测试相关问题数** | P0×1 / P1×9 / P2×4 | ① B-142-2 key/配额(P0,直接拖累 G1/G7);② B-192-2 direct-register 契约链;③ B-186-1 live 挂死;④ B-177-1 pytest 不退出(第 14 轮);⑤ B-152-1/2 CI 清单漏拦/陈旧;⑥ 存量 24 红(13 类);⑦ 前瞻契约 100 红(含 S-cfc-201 6 + 承袭 94);⑧ B-156-1/B-170-1 DDL;⑨ B-162-1 未入库;⑩ B-189-1 SSH 22;⑪ B-178-1/B-36/B-DX-1 等 |
|
|
|
|
|
+
|
|
|
|
|
+### 1.4 本轮 git 提交与推送证据(真理证据)
|
|
|
|
|
+
|
|
|
|
|
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
|
|
|
|
|
+|----------|-----------------|------|--------------|----------|------------|------|
|
|
|
|
|
+| `4b0b8ea34` | 全站巡检 R192 + API 全量首测 + S-cfc-201 定向 + B-192-1/2 + B-186-1/B-177-1 延续 | 汇报 | 报告 + 执行日志 + blockers + 研发通知 | cfclub | ✅ 推送 `http://git.iwintrue.com/liaoxg/cfc.git`(**SSH 22 仍故障,B-189-1 第 3 轮 HTTP 兜底**) | 结果有变化 → 已提交并推送,同时出研发通知 |
|
|
|
|
|
+
|
|
|
|
|
+### 1.5 状态机阶段分布(全局进度,研发侧账本口径)
|
|
|
|
|
+
|
|
|
|
|
+| 阶段 | 键数 | 备注 |
|
|
|
|
|
+|------|------|------|
|
|
|
|
|
+| RED | S-cfc-201 **6 红 18 绿**(本轮定向取证);承袭前瞻 94 红(12 类) | 研发侧 `sc-key-map.md` 事件口径另计 |
|
|
|
|
|
+| YELLOW | 承袭 | 待研发登记 |
|
|
|
|
|
+| GREEN | 承袭(S-cfc-197 37/37 等) | 测试侧已取证,转 YELLOW 前有效 |
|
|
|
|
|
+
|
|
|
|
|
+### 1.6 数据源健康度
|
|
|
|
|
+
|
|
|
|
|
+| 数据源 | 读取键数 | 是否正常 | 备注 |
|
|
|
|
|
+|--------|----------|----------|------|
|
|
|
|
|
+| 需求侧(⏳ wish) | 0 | 正常 | SRS 目标池未启用;specs 201 份可读 |
|
|
|
|
|
+| 契约常量(contract) | S-cfc-201 1 类 | 正常 | **本轮定向实测 24 例** |
|
|
|
|
|
+| 测试用例引用(test_case_map) | 618 唯一 TC | 正常 | 台账扫描正常 |
|
|
|
|
|
+| 执行结果回填(case_results) | 承袭 386 XML + 本轮 1 XML | 正常 | **API 全量 990 例上 H 新口径**(B-192-2 已登记) |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 二、历史审查记录(阶段 -1 记忆召回)
|
|
|
|
|
+
|
|
|
|
|
+| 项 | 内容 |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| 上次审查 | **R191(2026-11-13 14:35,`5ad781a00`)**,结论「不通过(有条件)」,全站 4254/4088(96.10%),红 141;后端全量实跑 1:01h;langgraph 47/51;B-95 销号 |
|
|
|
|
|
+| 历史遗留 | 存量 24 红(13 类)· 前瞻契约 94 · 根级 16 红(B-36)· fe 3 预期 RED · CI 漏拦 18/陈旧 26(B-152-1/2)· B-177-1 · B-178-1 · B-186-1 · B-189-1 · B-142-2 |
|
|
|
|
|
+| 本次是否改善 | **API 覆盖口径升级**(32 → 990 例全量首测,暴露 B-192-2);**S-cfc-201 契约落预期**;存量 13 类零漂移第 27 次;浏览器任务级全绿(189 admin 5/5 + 本机 23/23) |
|
|
|
|
|
+| 本次是否回退 | **无缺陷回归**。红 +26 = S-cfc-201 前瞻 6 + API 首测探测 20;langgraph 红例集漂移但根因同(429/401);剔 skip 96.67% → 96.22%(API 20 红拖累) |
|
|
|
|
|
+| 教训应用 | ①「同源码沿用 + 增量定向」(R185 修 B-184-1)→ 本轮窗口 main 零变更,后端承袭 R191 全量 + S-cfc-201 定向,**省 1:01h**;② 历史「32 例子集」曾掩盖 9 域契约链问题 → 本轮全量 990 例直出 B-192-2;③ 251 派发沿用 `setsid nohup` + 单次读;④ B-177-1 用 `ps | grep pytest` 按 PID kill,禁用 pkill 自伤 |
|
|
|
|
|
+
|
|
|
|
|
+> 本次为该对象**第 192 次**审查,有历史记录;后端全量按「同源码承袭 + 增量实跑」口径(R185 纪律),其余维度全部本轮实测。
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 三、项目画像与覆盖矩阵
|
|
|
|
|
+
|
|
|
|
|
+### 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`(386 执行类)/ `cfc-frontend`(42 文件 624 例)/ `cfc-web`(17 套件 116 例)/ `cfc-langgraph`(51 例 @251)/ `tests`(e2e-live 5 文件 + e2e/api 27 文件) |
|
|
|
|
|
+| 关键路径 | 登录/家庭/成员 → 五维能量 → 任务/成长记录 → 健康报告上传解析 → 测评订单 → 商城/支付 → AI 对话(LangGraph) |
|
|
|
|
|
+| 测试现状 | **5225 例**(后端承袭 3391 + fe 624 + web 116 + lg 51 + 浏览器 30 + **API 全量 990** + 根级 23) |
|
|
|
|
|
+| 质量目标 | 全量用例全绿、覆盖 SRS 与用户场景(含异常流)、浏览器双节点可复现、结果变更即提交并通知研发 |
|
|
|
|
|
+| 风险点 | ① API 契约链 `direct-register` 前置注册失效(B-192-2,20 红);② 上游 LLM 凭据/配额(B-142-2 + B-186-1);③ 前瞻契约 100 红;④ CI 清单双向失真;⑤ 存量装置红 24;⑥ B-177-1 进程不退出;⑦ git SSH 22 故障 |
|
|
|
|
|
+| 待核实项 | direct-register 线上契约(路径/请求体/返回结构是否变更)· 251 key 轮换(****ab12)与配额 · B-156-1/B-170-1 DDL 修复 · S-cfc-201 实现排期 |
|
|
|
|
|
+
|
|
|
|
|
+### 3.2 20 类测试覆盖矩阵(全类不省略)
|
|
|
|
|
+
|
|
|
|
|
+| # | 测试类型 | 三态 | 证据(本轮) |
|
|
|
|
|
+|---|----------|------|------------------|
|
|
|
|
|
+| 1 | 单元测试 | ✅ 已发现 | 后端承袭 386 类 3315 例 + S-cfc-201 定向 24 例实测;前端 624;管理端 116 |
|
|
|
|
|
+| 2 | 测试覆盖率 | ⚠️ 部分 | cfc-web Jest 覆盖率可产出;后端未开 jacoco(未授权改 pom) |
|
|
|
|
|
+| 3 | 变异测试 | ❌ 未发现 | 全仓无 pitest/mutation 配置 |
|
|
|
|
|
+| 4 | 集成测试 | ✅ 已发现 | 承袭 R191 集成类结果(同源码);本轮无窗口变更 |
|
|
|
|
|
+| 5 | 契约测试 | ✅ 已发现(本轮重点) | **S-cfc-201 24 例 6F/18G 与声明一致**;承袭前瞻 94 红 12 类 |
|
|
|
|
|
+| 6 | 接口 API 测试 | ✅ 已发现(**本轮升级**) | **线上 API 全量 990 例首测**:175 过/795 跳/**20 红**(B-192-2) |
|
|
|
|
|
+| 7 | 系统/端到端 | ✅ 已发现 | 浏览器 30 例(**28 过 + 2 跳**):admin 5@189、fe 6、shop 4、health 13 |
|
|
|
|
|
+| 8 | 验收 UAT | ⚠️ 待核实 | 无独立 UAT 包;以浏览器 28 例为系统级验收代理 |
|
|
|
|
|
+| 9 | BDD 规格 | ✅ 已发现 | 用户场景 11 份 / SC 唯一 244;台账引用 152 = **62.3%** |
|
|
|
|
|
+| 10 | 冒烟测试 | ✅ 已发现 | `api-smoke.spec.js` 含自注册链路(本轮全量 990 例内通过) |
|
|
|
|
|
+| 11 | 回归测试 | ✅ 已发现 | 存量 13 类逐类零漂移(**第 27 次**) |
|
|
|
|
|
+| 12 | 探索性测试 | ⚠️ 部分 | 历轮人工探索记录;本轮无新探索项 |
|
|
|
|
|
+| 13 | 性能测试 | ❌ 未实测 | 未授权联网压测;后端全量耗时劣化承袭观察(B-191-2) |
|
|
|
|
|
+| 14 | 可靠性测试 | ⚠️ 部分 | **B-177-1 第 14 轮复现**(summary 后进程不退出,已 kill);**B-186-1** live 挂死 000/20s |
|
|
|
|
|
+| 15 | 安全测试 | ✅ 已发现 | 匿名 6 端点 **6/6 = 401**(B-142-1 维持销号) |
|
|
|
|
|
+| 16 | 兼容性测试 | ⚠️ 部分 | 双视口(desktop 1440 / mobile 375)实测通过;无多浏览器矩阵 |
|
|
|
|
|
+| 17 | 可用性测试 | ⚠️ 部分 | admin 登录-主框架-核心菜单 5/5@189;无专项问卷 |
|
|
|
|
|
+| 18 | 无障碍测试 | ❌ 未发现 | 无 axe/pa11y 配置 |
|
|
|
|
|
+| 19 | QA 流程 | ⚠️ 部分 | 汇报/台账/blockers 闭环在跑;**B-192-2 为 API 全量口径升级的新发现** |
|
|
|
|
|
+| 20 | 质量指标 | ⚠️ 部分 | 全站剔 skip 96.22%(G1 阈值 98% 未达);锚点 17.2%(口径见 §附录 C) |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 四、五要素问题清单
|
|
|
|
|
+
|
|
|
|
|
+### P1-1 B-192-2 线上 API 全量首测 20 红 — direct-register 前置注册契约链失效
|
|
|
|
|
+
|
|
|
|
|
+| 要素 | 内容 |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| ① 问题描述 | 本轮首次全量运行 `playwright.config.api.js`(990 例),**20 例失败跨 9 域**(badge 4 / wish-flow 6 / task-checkin 3 / coach-food 2 / task-frequency / task-c14 / incentive / energy / wechat-login 各 1);历史 32 例子集因只点名 4 个 spec 从未覆盖这些域 |
|
|
|
|
|
+| ② 测试 bug 点 | `tests/e2e/api/helpers/api.js:32` `direct-register`:`expect(body.code, 'direct-register 应当成功(code=200)').toBe(200)` 收到 **undefined** → 前置注册失败 → 该文件后续用例连锁失败;复验 badge 单文件仅 1F(C-09 断链)确认 20 红非独立缺陷 |
|
|
|
|
|
+| ③ 最优修改方案 | 研发核对线上注册接口(`direct-register` 路径/请求体/返回结构是否变更或下线);测试侧同步 helper 请求与断言;两者对齐后重跑 9 域 spec |
|
|
|
|
|
+| ④ 修改目的 | 恢复 API 契约层的真实覆盖,消除 20 例装置级红对 G1/G2 的噪声;使该层契约可继续守护 |
|
|
|
|
|
+| ⑤ 修改后能否闭环 | 能。重跑任一下游 spec(如 badge):前置注册成功且用例 0F 连续 1 轮即闭环;20 红随 helper 修复整体回绿 |
|
|
|
|
|
+
|
|
|
|
|
+### P1-2 langgraph 环境故障(B-142-2 升级 + B-186-1 + B-192-1)
|
|
|
|
|
+
|
|
|
|
|
+| 要素 | 内容 |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| ① 问题描述 | langgraph@251 pytest **47/51**:红例集漂移为 auto_tag 2 + intent 2(R191 为 auto_tag 4);日志 429 AgnesAI 免费配额 + 401 key `****ab12` invalid;live `/api/v1/chat` 与 `/api/v1/analyze` **000/20s 挂死**(用正确 schema:query / report_id+user_id 仍挂) |
|
|
|
|
|
+| ② 测试 bug 点 | `app/agents/intent_classifier.py:62`(429 后默认 chat 静默兜底)、`app/graphs/chat_graph.py`(401 不快速失败);`app/main.py:84` shutdown 未 aclose(B-177-1) |
|
|
|
|
|
+| ③ 最优修改方案 | 运维轮换 key `****ab12` + 升级 AgnesAI 配额(P0);研发侧意图分类兜底显式降级 + 可观测;shutdown 补 `await client.aclose()` |
|
|
|
|
|
+| ④ 修改目的 | 使「单测绿」与「链路可用」一致,G7/G1 可信 |
|
|
|
|
|
+| ⑤ 修改后能否闭环 | 能。key/配额生效后 51/51 连续 2 轮 → 销号 B-142-2;live chat/analyze 返回非 000 → B-186-1 闭环 |
|
|
|
|
|
+
|
|
|
|
|
+### P1-3 B-152-1/2 CI 清单双向失真(承袭,第 23 轮)
|
|
|
|
|
+
|
|
|
|
|
+| 要素 | 内容 |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| ① 问题描述 | `.gitlab-ci.yml` `BACKEND_OBSERVED_CLASSES` 33 类 vs 实测红类(含新增 S-cfc-201 等)→ 漏拦 ≥18、陈旧 26 |
|
|
|
|
|
+| ② 测试 bug 点 | CI 配置漂移(非用例缺陷) |
|
|
|
|
|
+| ③ 最优修改方案 | 按本轮实测红类重写清单,加「红类↔清单自动差集」步骤 |
|
|
|
|
|
+| ④ 修改目的 | 硬门禁真实生效 |
|
|
|
|
|
+| ⑤ 修改后能否闭环 | 能。CI 必红且红因准确即闭环 |
|
|
|
|
|
+
|
|
|
|
|
+### P2-1 B-177-1 pytest 进程不退出(第 14 轮)
|
|
|
|
|
+
|
|
|
|
|
+| 要素 | 内容 |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| ① 问题描述 | summary 已打印,bash+pytest 2 进程存活 07:26,`EXIT=` 不落盘 |
|
|
|
|
|
+| ② 测试 bug 点 | `app/main.py:84 @app.on_event("shutdown")` 未 `await client.aclose()` |
|
|
|
|
|
+| ③ 最优修改方案 | shutdown 补 aclose + 派发器加 `timeout -k 10 900` |
|
|
|
|
|
+| ④ 修改目的 | 消除派发侧残留进程与取证不确定性 |
|
|
|
|
|
+| ⑤ 修改后能否闭环 | 能。EXIT= 落盘即闭环(1 轮) |
|
|
|
|
|
+
|
|
|
|
|
+### P2-2 B-184-1 后端全量耗时劣化(承袭观察)
|
|
|
|
|
+
|
|
|
|
|
+| 要素 | 内容 |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| ① 问题描述 | R191 同源码全量 **1:01h**;慢类 `ArticleCategoryControllerTest` 493.97s 等 |
|
|
|
|
|
+| ② 测试 bug 点 | controller 全 `@SpringBootTest` + 缺 `application-test.yml` + B-156-1/B-170-1 DDL |
|
|
|
|
|
+| ③ 最优修改方案 | 增 `application-test.yml`(禁 `@EnableScheduling`)+ 慢类改 `@WebMvcTest` + 修迁移语法 |
|
|
|
|
|
+| ④ 修改目的 | 全量回到 45m 内,缩短闭环节拍 |
|
|
|
|
|
+| ⑤ 修改后能否闭环 | 能。≤45m 连续 2 轮销号 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 五、域结论表
|
|
|
|
|
+
|
|
|
|
|
+| 审查维度 | 负责专家 | 结论 | 关键证据 |
|
|
|
|
|
+|----------|----------|------|----------|
|
|
|
|
|
+| 单元·组件级 | 苏雅 | 通过(承袭 + 定向) | 后端承袭 3315(386 类)+ S-cfc-201 24 例 6F/18G 与声明一致 |
|
|
|
|
|
+| 集成·接口级 | 柯砚 | 有条件通过 | **API 全量 990 例首测 20 红(B-192-2 装置级)**;承袭集成类零漂移 |
|
|
|
|
|
+| 系统·验收级 | 白樾 | 通过 | 浏览器 28/28(189 admin 5/5 + 本机 fe/shop/health 23/23)+ dx 2 跳 |
|
|
|
|
|
+| 测试保障级 | 闻朔 | 通过(零漂移) | 存量 13 类零漂移第 27 次;fe 3 预期 RED 零漂移 |
|
|
|
|
|
+| 性能·可靠性 | 骆骋 | 未实测(环境受制) | 未授权联网压测;B-186-1 live 挂死(第 6 轮) |
|
|
|
|
|
+| 安全 | 关屿 | 通过 | 匿名 6 端点全 401(B-142-1 维持销号第 22 轮) |
|
|
|
|
|
+| 兼容·体验 | 阮清 | 通过(部分) | desktop/mobile 双视口 OK;无多浏览器矩阵 |
|
|
|
|
|
+| 流程·度量·代码 | 何序 | 不通过(承袭) | G1 98% 未达(剔 skip 96.22%);CI 清单漏拦/陈旧;B-192-2 为新口径发现项 |
|
|
|
|
|
+
|
|
|
|
|
+## 六、门禁结论
|
|
|
|
|
+
|
|
|
|
|
+- **结论:不通过(承袭,零缺陷回归)**
|
|
|
|
|
+- 量化总账:**5225 例 / 4245 过 / 167 红 / 813 跳 = 81.24%(含 skip;剔 skip 96.22%)**
|
|
|
|
|
+- ✅ G4 编译 0 错 / G5 XML 无沉默 / G6 浏览器 28 过 + 2 跳 / G8 匿名 6 端点 401 / G10 节点可比 / G12 SRS 零变更 / G13 存量零漂移第 27 次
|
|
|
|
|
+- ⚠️ G3 fe 609-624(3 预期 RED)/ G14 62.3%
|
|
|
|
|
+- ❌ G1 剔 skip 96.22%(<98%)/ G2 167 红(<阈值)/ G7 47/51 / G9 锚点覆盖率 / G11 CI 清单漏拦/陈旧
|
|
|
|
|
+- **复评条件**:① B-142-2 key/配额轮换(G1/G7);② B-192-2 direct-register 修复(G1/G2);③ CI 清单重写(G11);④ 前瞻契约实现推进(G2)
|
|
|
|
|
+
|
|
|
|
|
+## 七、变更触发动作(结果有变化 → 提交远程 + 通知研发)
|
|
|
|
|
+
|
|
|
|
|
+| 动作 | 状态 |
|
|
|
|
|
+|------|------|
|
|
|
|
|
+| 提交报告/执行日志/blockers/研发通知 | ✅ `4b0b8ea34` 已推送 `http://git.iwintrue.com/liaoxg/cfc.git` cfclub |
|
|
|
|
|
+| 研发通知 | ✅ `docs/tdd/test/notice-2026-11-13-R192-研发通知.md`(B-192-2 / S-cfc-201 / B-142-2 / B-186-1 / B-177-1) |
|
|
|
|
|
+
|
|
|
|
|
+## 八、待办(下轮)
|
|
|
|
|
+
|
|
|
|
|
+1. **B-192-2** 研发归因 direct-register → helper 修复 → 9 域 spec 重跑验证闭环
|
|
|
|
|
+2. **B-142-2** key 轮换 + 配额升级后 51/51 连续 2 轮观察
|
|
|
|
|
+3. **S-cfc-201** 全量纳入基线(下轮后端合计数 = 3315 + S-cfc-201 24);研发实现后定向复验
|
|
|
|
|
+4. **B-177-1** aclose 修复验证(EXIT= 落盘判据)
|
|
|
|
|
+5. **B-191-2** 慢类降级方案推进与否(application-test.yml)
|
|
|
|
|
+6. 各承袭项第 N 轮观察(B-36 第 77、B-DX-1 第 35、B-152-1/2 差集脚本)
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 附录 A:本轮命令与口径(可复现)
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+# 环境探针
|
|
|
|
|
+curl -s http://192.168.16.189:4090/admin/login -o /dev/null -w "%{http_code}" # 189:200
|
|
|
|
|
+curl -s http://192.168.16.251:9000/health # {"status":"ok"}
|
|
|
|
|
+# HTTP 兜底 fetch(SSH 22 故障 B-189-1)
|
|
|
|
|
+git fetch http://git.iwintrue.com/liaoxg/cfc.git cfclub && git merge --ff-only FETCH_HEAD
|
|
|
|
|
+# S-cfc-201 定向
|
|
|
|
|
+cd cfc-backend && JAVA_HOME=/d/jdk1.8.0_25 /d/maven/apache-maven-3.6.1/bin/mvn -o -B -Dtest=AdminArticleManageContractTest test
|
|
|
|
|
+# 浏览器(tests/ 内;每节点 1 个任务,本机串行)
|
|
|
|
|
+npx playwright test -c playwright.config.live.js --project=frontend-mobile --reporter=line --output=_r192/pw_fe
|
|
|
|
|
+npx playwright test -c playwright.config.live.js --project=shop-api --project=dx-bridge --reporter=line --output=_r192/pw_shop
|
|
|
|
|
+npx playwright test -c playwright.config.health.js --reporter=line --output=_r192/pw_health
|
|
|
|
|
+node _r192_189_admin.cjs kick && node _r192_189_admin.cjs read # 189 admin
|
|
|
|
|
+# langgraph(251 派发:setsid nohup + 单次读)
|
|
|
|
|
+node _r192_251_lg.cjs kick && node _r192_251_lg.cjs read
|
|
|
|
|
+# Jest
|
|
|
|
|
+cd cfc-web && npx jest --ci --silent
|
|
|
|
|
+cd cfc-frontend && npx jest --ci --silent
|
|
|
|
|
+cd tests && npx jest --ci --testPathPatterns='_root_|root|blackbox'
|
|
|
|
|
+# 线上 API 全量(本轮口径升级:990 例)
|
|
|
|
|
+cd tests && npx playwright test -c playwright.config.api.js --reporter=list --output=_r192/pw_api
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+## 附录 B:B-192-2 20 红明细(9 域)
|
|
|
|
|
+
|
|
|
|
|
+| spec | 红例 | 计数 |
|
|
|
|
|
+|------|------|------|
|
|
|
|
|
+| badge-sc-c09-c10-a05 | A-05 创建/更新/删除勋章、A-05-E 无效/删除不存在、A-05-P 权限 | 4 |
|
|
|
|
|
+| wish-flow-sc-p13-p14-c04 | C-04 正常、P-13 正常、P-14 正常、P-13-E 幂等、P-13-P 审批、P-13-P 越权 | 6 |
|
|
|
|
|
+| task-checkin-sc-c05 | 列表/详情、无效参数、跨家庭权限 | 3 |
|
|
|
|
|
+| coach-food-sc-b07 | 索引读取、越权受限 | 2 |
|
|
|
|
|
+| task-frequency-sc-p12 | 提醒配置读取保存 | 1 |
|
|
|
|
|
+| task-c14-reject-recycle | C-02-P 他人家庭完成被拒 | 1 |
|
|
|
|
|
+| incentive-loop-sc-x05 | X-05 正常闭环 | 1 |
|
|
|
|
|
+| energy-sc-p87-p88-c24 | P-87 触发能量读数 | 1 |
|
|
|
|
|
+| wechat-login | G-02 首次登录自动建档 | 1 |
|
|
|
|
|
+
|
|
|
|
|
+> 全部同根因:`tests/e2e/api/helpers/api.js:32` `direct-register` 前置注册 `expect(body.code).toBe(200)` 收到 undefined → 后续链式断言失败。
|
|
|
|
|
+
|
|
|
|
|
+## 附录 C:度量口径声明(B-124 并存)
|
|
|
|
|
+
|
|
|
|
|
+全站剔 skip 96.22% / 锚点命中 106/618 = 17.2%(口径见 R191 附录 C);后端全量按「同源码承袭 + 增量定向」口径(R185 修 B-184-1),不重复 1:01h 全量。
|
|
|
|
|
+
|
|
|
|
|
+## 附录 D:本轮遗留取证文件(未入库,供复核)
|
|
|
|
|
+
|
|
|
|
|
+`_r192_sc201.log` · `_r192_fe.log` · `_r192_api.log` · `_r192_189_kick.log` · `_r192_251_kick.log` · `_r192/*`(浏览器产物目录)
|