汇报轮次:CFC 闭环自动化测试 · 自动化闭环第 111 轮(测试负责人角色) 主理人:陆谨(软件测试专家团)· 本机浏览器直跑 + 189/251 节点派发 仓库:D:/cfc,主分支
origin/cfclub;执行档:review(内网授权cfc.iwintrue.com只读 E2E + 189/251 派发)
| 项目 | 内容 |
|---|---|
| Git HEAD(起点) | 9cf76eeb7(本地,R110 提交未推)→ 本轮一并推送 |
| 执行方式 | 浏览器 E2E 本机串行(每节点单任务)+ 189 节点派发 admin 套件 + 251 节点派发 langgraph pytest |
| 实测套件 | 浏览器 E2E 28 + langgraph 43(189 实派 + 本机复跑) |
| SRS/场景变更 | ✅ S-cfc-115 新需求识别(2026-11-09 01:07 入库 2026-11-09-diet-recommendation-health-questionnaire-adjust.md)→ 已更新测试用例(TC-P-26-A / TC-P-26-A-E) |
核心结论:浏览器 E2E 28/28 全绿(复验 189 的 1 FAIL 为环境噪声);langgraph 251 实派 32/43 零漂移承袭(B-65×2 + B-74×5 + B-82×4)。本轮实质推进:① 189 节点恢复派发(B-89 失联 11 轮后复通,admin 套件 4 PASS/1 FAIL 且 FAIL 判定为截图超时环境噪声);② S-cfc-115 需求变更 → 用例补登落地;③ 台账重扫 4130 用例入库。
| 套件 | 执行通道 | 结果 | 备注 |
|---|---|---|---|
| admin-desktop 5 例 | 189 节点实派 + 本机复跑 | 189: 4 PASS/1 FAIL;本机复跑 5/5 ✅ | TC-A-U01 截图超时(TimeoutError 20s),页面 DOM 已正常渲染(标题/双输入框/登录按钮均在),判定环境噪声非回归;U02 8.7s、U04 20.3s、U05 57.9s 均 PASS |
| frontend-mobile 6 例 | 本机 | 6/6 ✅ | — |
| shop-api 4 例 | 本机 | 4/4 ✅ | — |
| health-contract 13 例 | 本机 | 13/13 ✅ | 含 B-61 对应 3 端点均 401 拒访 |
189 节点经
4090端口探活 200 恢复可用(B-89 状态更新:失联 11 轮后复通);每个节点单任务纪律守约。
| 结果 | 明细 | 对比 R110 |
|---|---|---|
| 32 过 / 11 红 | test_analyze 2(B-65,assert 500 == 200)、test_auto_tag 5(B-74,LLM 401)、test_intent 4(B-82,分类降级 chat) |
零漂移 ✅ |
251 派发通道:
4096:/api/shell(B-94/R101 模式)。B-101 通道怪癖延续:client fetch POST 报 204 空体/连接中断,但服务端已接受并执行 → 用 curl 轮询/api/shell/<id>+/output取回结果(本人已确认 exited 且取回 pytest 输出)。251:9000 langgraph 服务在线(health ok)。
| 用例 | 类型 | 覆盖点 | 登记状态 |
|---|---|---|---|
TC-P-26-A |
正常流 | 6 步验证:blocked/warning/boost 提示条 + suitable Tab blocked 沉底 + 报告快照不变(§3-B B1~B3 + §4 判据) | ✅ 已登记 tests/test-cases/parent.md |
TC-P-26-A-E |
异常流 | 非法 JSON / lifestyle 非对象 / 部分维度 / 报告快照不被污染(§4 判定 1/2/3/4) | ✅ 已登记 |
tests/e2e/diet-recommendation-health-adjust.spec.js(100 行,B1/B2/B3 三用例)待入库(本轮随提交入库)。MACHINE_JSON_PATH(client 获取 admin 凭据)+ 目标成员预置问卷数据;globalSetup reset-db.sh 连 251:3306 报 Access denied for 'cfc'@'192.168.16.204'(测试环境数据重建权限限制)→ 执行受登录态/问卷数据预置门控,本轮仅登记不执行,非测试代码缺陷。diet.food.healthAdjust(ba9fd2837 已合入)+ 前端 diet.food.healthAdjustUi(b1898394f 已合入)均已入库对应实现,用例可追溯。test_inventory.py --project d:/cfc)| 来源类型 | 用例/方法数 | 已自动化 | 待自动化 |
|---|---|---|---|
| 结构化测试用例 (md) | 682 | 62 | 620 |
| 用户场景 (md) | 11 | 0 | 11 |
| Playwright | 566 | 96 | 0 |
| Python (pytest) | 48 | 11 | 0 |
| Java 后端测试 | 2834 | 343 | 0 |
| 合计 | 4130 | 512 | 631 |
docs/tdd/test/inventory.md + automation-status.md 已重写(含 TC-P-26-A / TC-P-26-A-E 两条登记)。
docs/superpowers/specs 自 R110 基线后检出 1 项新需求变更:2026-11-09-diet-recommendation-health-questionnaire-adjust.md(404f9f74d 入库 2026-11-09 01:07,S-cfc-115)→ 已更新测试用例(TC-P-26-A + TC-P-26-A-E 登入 parent.md,见 §2.3)。tests/user-scenarios、tests/test-cases 其余文件无新 mtime(除本轮 parent.md 登记外)。| 提交 | 内容 | 触及文件 |
|---|---|---|
<本轮 A> |
S-cfc-115 E2E 规格入库 | tests/e2e/diet-recommendation-health-adjust.spec.js |
<本轮 B> |
S-cfc-115 用例登记(TC-P-26-A + TC-P-26-A-E) | tests/test-cases/parent.md |
<本轮 C> |
台账重扫 + 场景缺口工单 | docs/tdd/test/inventory.md、automation-status.md、scenario-gap-backlog.md/.csv |
<本轮 D> |
第 111 轮汇报 + 通知 | 本报告 + notice-r111-round.md |
<本轮 E> |
R110 提交补推(9cf76eeb7,R110 汇报时提交中断遗留) |
见 R110 报告 §四 |
① 问题描述:251 实派 test_analyze.py 2 例 assert 500 == 200,连续 17 轮稳定复现。
② 测试 bug 点:cfc-langgraph/app/analysis_graph.py:96(MemorySaver())+ app/analyze.py:35(ainvoke 未传 config={"configurable":{"thread_id":...}})。
③ 最优修改方案:ainvoke 调用补 thread_id config,或改无状态 checkpointer。
④ 修改目的:analyze 接口可用性(质量目标:核心 AI 链路零 500)。
⑤ 问题闭环:251 复跑 test_analyze.py 2/2 绿即闭环。
① 问题描述:test_auto_tag 5 例 + test_intent 4 例红,日志 401 invalid api key。
② 测试 bug 点:251 节点 app/agents/intent_classifier.py:62 分类降级 chat;auto_tag 无有效 LLM key。
③ 最优修改方案:251 注入内网有效 LLM 凭据;intent 分类器校准(B-82 研发侧)。
④ 修改目的:langgraph 全链路可测(质量目标:分类/打标可信)。
⑤ 问题闭环:251 复跑 9 例全绿即闭环。
① 问题描述:diet-recommendation-health-adjust.spec.js 执行需 DB 重置 + 目标成员预置问卷数据。
② 测试 bug 点:reset-db.sh 连 251:3306 报 Access denied for 'cfc'@'192.168.16.204'(cfc 账号来源 IP 白名单)。
③ 最优修改方案:运维开放 204/本机 IP 的 3306 数据重建权限;或测试环境提供已预置问卷数据的测试成员。
④ 修改目的:健康问卷个性化调整链路可端到端验证。
⑤ 问题闭环:251/本机 DB 权限放通后于 189 or 本机实跑三用例全绿即闭环。
① 问题描述:此前「98 个场景无用例」口径过严。
② 测试 bug 点:口径按总览 §十二·3 TC ↔ SC 一一对应规则复核后:显式锚点 143/241=59.3%,含隐式映射 236/241=97.9%,真实无用例 5/241=2.1%(SC-P-94/95/96、SC-C-26、SC-A-27,其中 SC-A-27 与 TC-A-27 编号冲突需改号)。
③ 最优修改方案:按 A 组 5 项 P0 真缺口补三流用例模板 + 验收判据;SC-A-27 冲突改号 TC-A-28;B 组 93 项补 SC 回链列。
④ 修改目的:覆盖口径可信(质量目标:SRS/场景全覆盖可核验)。
⑤ 问题闭环:工单清单已交付 docs/tdd/test/scenario-gap-backlog.md;A 组补用例后更新台账即闭环。
⛔ 有条件通过(延续)——本轮较 R110 有实质推进但仍未达「通过」门槛:
| 门禁 | 判据 | 实测 | 结论 |
|---|---|---|---|
| G6 浏览器 E2E | 全绿 | 28/28(admin5/frontend6/shop4/health13) | ✅ |
| G10 节点派发 | 189/204/251 实派 | 189 恢复实派成功 + 251 实派成功(204 被研发会话占用未派) | ✅ |
| G7 langgraph | 0 红 | 32/43(11 红 = B65×2+B74×5+B82×4) | ❌ |
| G12 用例入库 | SRS 变更即更新 | S-cfc-115 → TC-P-26-A + TC-P-26-A-E 已登记 | ✅ |
| G1 后端全量 | ≥98% | 承袭 R110 98.36%(本机 3306 未启,待复跑) | ⚠️ 待复验 |
升级「通过」门槛:① langgraph 11 红归零(B-65/B-74/B-82);② 后端全量重跑 ≥98% 且红例归零;③ S-cfc-115 E2E DB 权限放通后可执行;④ SRS-TC 锚点 ≥80% + 场景缺口 A 组补齐;⑤ /api/mind/** 强鉴权。
本报告为只读审查 + 本机/189/251 节点受控执行 + 测试目录内自处置产物;生产源码未改动(S-cfc-115 实现由研发合入 ba9fd2837/b1898394f 本轮复核)。