report-test-2026-11-11-R155.md 10 KB

测试闭环报告 · 第 155 轮(2026-11-11 ~23:01 GMT+8)

执行档 review(离线 + 内网已授权):未访问外部公网;未安装依赖;未改生产源码/测试。 授权内网范围:cfc.iwintrue.com(hosts→192.168.16.251)/admin、/frontend;192.168.16.189、192.168.16.251 opencode 节点。 零漂移轮策略:本轮窗口源码零变更 → 浏览器+langgraph 真跑;后端/前端/管理端采信 R153/R154 基线。 仓库写入范围:本报告 + blockers/notice/automation-run(均落 docs/tdd/),生产源码零改动。


1. 历史审查记录(对照,非本次结论依据)

  • 对象:周期性自动化闭环 R148–R155 连续稳态轮。上一轮 R154 @ 22:19 结论 ⛔有条件通过(G7 langgraph 4 红 + EXIT=124 挂起 B-154-1 新增)。
  • 遗留缺口(逐轮沿用,本次未新增):后端 17 红未连库核实、cfc-web 覆盖率<20%(G7)、B-142-2 langgraph LLM 上游抖动、B-154-1 pytest 挂起、安全/性能/依赖扫描未授权、CI 未固化(G11)、admin.referral(TR-25)零覆盖。
  • 本次非首次审查,结论以本轮实际取证为准。

2. 项目画像速览(只读)

  • 业务:浠艾福 XAF 家庭成长平台(家长/孩子/规划师三端 + 管理端 + 商城 + AI 解析)。
  • 技术栈:cfc-backend(Spring Boot 2.7.18/Java8/MyBatis-Plus, 9082)、cfc-web(Vue2/ElementUI 管理端 8082)、cfc-frontend(uni-app 微信小程序)、cfc-langgraph(Python/FastAPI/LangGraph, 9000)。
  • 关键路径:JWT 鉴权 /api/**、统一 @PostMapping、AiGateway 调 LangGraph、健康报告 PDF 上传解析、五维能量、测评订单、家庭关系。
  • 本次可测范围:cfc-web/cfc-frontend Jest(本地可跑)、后端离线编译、内网 E2E(189 admin + 本机 fe/shop/health)、langgraph@251 pytest。

3. 20 类测试覆盖矩阵(三态)

# 测试类型 状态 本轮证据
1 单元测试 已实测(引用) cfc-web 116/116、cfc-frontend 602/617(采信 R154)
2 组件测试 已实测(引用) cfc-web/cfc-frontend __tests__ 组件用例
3 集成测试 已发现(引用) 后端契约/集成测试 R154 基线 2946 例
4 接口 API 测试 已发现 API_REFERENCE.md + 后端契约
5 系统/端到端 已实测 浏览器 28/28 全绿(189 admin 5/5 + 本机 fe 6/shop 4/health 13)
6 冒烟测试 已实测 langgraph@251 51 例 131.86s 正常收尾
7 回归测试 已实测 浏览器 28/28 零漂移;langgraph 红例 −1
8 探索性测试 待核实 无现成脚本/环境
9 契约测试 已发现 后端 Controller 契约
10 性能测试 未授权未执行 execute 档未授权
11 可靠性测试 已发现(风险) langgraph 3 红环境性
12 安全测试 未授权未执行 公网/依赖下载未授权
13 依赖漏洞扫描 未授权未执行 同 12
14 兼容性测试 待核实 无矩阵
15 可用性测试 待核实 无指标
16 无障碍测试 待核实 未覆盖
17 测试覆盖率 已实测(未达标) cfc-web 9.95% / cfc-frontend 53.57% lines(R154)
18 质量指标 已实测 全量 98.49%(见 §4)
19 QA 流程 待核实 CI(G11)未固化
20 全项目代码审查 待核实 本次只读未深度审查

4. 执行范围 / 用例总数·通过·失败

模块 命令 总数 通过 失败 跳过 结果
浏览器 admin playwright test -c playwright.config.live.js admin-live 5 5 0 0 EXIT 0 ✅ 1.3m
浏览器 frontend playwright test -c playwright.config.live.js frontend-live 6 6 0 0 EXIT 0 ✅ 48.6s
浏览器 shop playwright test -c playwright.config.live.js shop-sort-api 4 4 0 0 EXIT 0 ✅ 6.6s
浏览器 health playwright test -c playwright.config.health.js health-contract 13 13 0 0 EXIT 0 ✅ 5.2s
langgraph@251 .venv/bin/python -m pytest -q --ignore=tests/qna --ignore=tests/test_chat.py 51 48 3 0 3 failed, 48 passed in 131.86s
cfc-web (Jest) 采信 R154 116 116 0 0 EXIT 0 ✅ 零漂移
cfc-frontend (Jest) 采信 R154 617 602 3 12 3 红=预期 RED 非回归 S-cfc-30/52/53
cfc-backend 编译 采信 R153 test-compile — — — — EXIT 0 ✅ GREEN
cfc-backend 全量 采信 R153 强制实跑 2946 2925 17 4S 99.29%,源码零变更→零漂移第 12 次
内网 E2E dx-bridge 采信 R154 2 0 0 2 404 未部署 B-DX-1

全量口径(沿用历史计算方式):

  • 总例数 = 5+6+4+13+51+116+617+2946+2 = 3760
  • 过 = 5+6+4+13+48+116+602+2925+0 = 3719
  • 红 = 3lg + 3fe + 17be + 2dx = 25
  • 通过率 = 3719/3760 = 98.91%(红 25 / 跳 18)
  • ⚠️ 与 R154 报告数字口径差异:R154 全量 3783/3725=98.47% 为当轮实跑口径(fe 617 实跑、后端 2946);本轮为采信+实跑混合口径,同比应看红例变化:langgraph 红 4→3(−1)为唯一变化,其余零漂移。

5. 关键变化(vs R154)

维度 R154 R155 变化
langgraph 通过/红 47/4 48/3 ✅ +1 绿 −1 红
langgraph 收尾 EXIT=124 挂起(B-154-1) EXIT=0 正常(131.86s) ✅ 挂起未复现(观察 1/2)
langgraph 红例 auto_tag 2 + intent 2 auto_tag 3(content_relevance/short_content/empty_content) auto_tag 3 环境性
浏览器 28/28 28/28 零漂移 ✅
后端全量 99.29%(采信) 99.29%(采信) 零漂移 ✅
前端 Jest 602/617 602/617(采信) 零漂移
cfc-web Jest 116/116 116/116(采信) 零漂移
dx-bridge 2 skip 2 skip 零漂移

6. SRS/需求变更感知(G12)

  • 变更检测窗口:5ee173916..e81e978a6(R154→HEAD)。
  • git log --oneline 对 docs/superpowers/specs | docs/tdd/SRS.md | API_REFERENCE.md | tests/test-cases | tests/user-scenarios 零命中。
  • 唯一变更:cfc-web package bump + 研发汇报 docs(零源码差异)。
  • 结论:零 SRS/需求/PRD 变更 → 不编写新测试用例(G12 合规)。既有浏览器套件(admin/frontend/shop/health 共 28 例)+ langgraph 51 例 + 后端契约 2946 例已覆盖现有需求。

7. 五要素问题清单(承袭,未新增)

P-1 · langgraph@251 LLM 上游抖动(B-142-2 / B-154-1 延续) ① 问题描述:本轮 langgraph 51 例 3 红全在 test_auto_tag.py(content_relevance/short_content/empty_content),根因为 LLM 上游(AgnesAI)返回异常内容——与 R153/R154 同源(429/401 环境性)。 ② 测试 bug 点:tests/test_auto_tag.py::test_auto_tag_content_relevance / test_auto_tag_short_content / test_auto_tag_empty_content。 ③ 最优修改方案:① 稳定 LLM 上游凭据(B-142-2 运维 P0);② 连续 2 轮全绿观察销号(B-142-2 观察 0/2);③ B-154-1 pytest 挂起修复(pytest-timeout + teardown 协程泄漏)。 ④ 修改目的:G7 langgraph ≥ 90% 门禁 + 契约测试与 LLM 抖动解耦。 ⑤ 问题闭环:连续 2 轮 51/51 全绿或红例 ≤1 且为预期 flaky → 销号。本轮红 3(较 R154 改善)+ EXIT=124 未复现 → B-142-2 观察 0/2、B-154-1 观察 1/2。

P-2 · cfc-web 覆盖率不足(G7 存量) ① cfc-web lines 9.95% < 20% 目标。 ② 测试 bug 点:cfc-web/src/__tests__/api/config.test.js(P-9)。 ③ 方案:补 admin 端核心业务组件/接口单测(FamilyCouponManage、review 模块)。 ④ 目的:G7 覆盖率门禁 ≥20%。 ⑤ 闭环:npm test --coverage 且 lines ≥20%。

8. 门禁矩阵(14 条)

门 阈值 本轮实测 状态
G1 全量通过率 ≥95% 98.91% ✅
G2 红例数 ≤20 25(lg 3 + fe 3 + be 17 + dx 2) ❌
G3 前端预期 RED 已知 3 3 ✅
G4 cfc-web 零红 0 0(采信) ✅
G5 编译 EXIT 0 EXIT 0(采信) ✅
G6 浏览器 E2E ≥26/28 28/28 ✅
G7 langgraph ≥46/51 48/51 ⚠️ 改善但未达全绿
G8 契约 历史基线 与 R154 同 ✅
G9 安全/依赖 SCA ≥ 中危 0 未授权未执行 ❌
G10 节点派发 ≥1 189 + 本机 + 251 = 3 ✅
G11 CI 固化 有 无(B-152-2 未修) ❌
G12 SRS 变更→用例更新 合规 零变更→零写入 ✅
G13 后端红例 ≤17 17(采信) ⚠️ 临界
G14 dx-bridge 已部署 404 未部署 ❌

门禁结论:⛔ 有条件通过——正向 G1/G3/G4/G5/G6/G8/G10/G12;阻断 G2/G9/G11/G14,G7 改善未达全绿。

9. 变化点与推送决策

  • 测试结果有变化:langgraph 红例 4→3(改善)+ EXIT=124 消失(B-154-1 观察项 1/2)+ 浏览器 28/28 连续零漂移。
  • 决策:按「测试结果有变化时提交到远程」约定 → commit + push + 通知研发(notice 随 commit 入库)。

10. 复评条件

  1. G7 全绿:B-142-2 修复后 langgraph 连续 2 轮 51/51 全绿(销号)+ B-154-1 连续 2 轮 <300s 正常收尾(销号)。
  2. G13 后端:研发修 17 红存量(含 UserServiceWechatLoginTest 等 CI 必红类)。
  3. G11 CI:研发修 B-152-2(CI 排除清单补 3 类)+ B-152-1(陈旧 26 绿类解禁)。
  4. G14 dx-bridge:部署 dx 2 端点后复跑。
  5. G2 红例 ≤20:随 1–4 同步收敛。

11. 未实测项

  • cfc-web/cfc-frontend Jest 全量重跑(采信 R154,源码零变更)
  • 后端全量 surefire(采信 R153 39:42 强制实跑基线)
  • dx-bridge 2 例(404 未部署)
  • 安全/依赖扫描(SCA/DAST/依赖审计)——execute 档未授权
  • 性能/压力测试——同上
  • JaCoCo/PIT 变异——无工具
  • 204 节点浏览器任务——B-95 第 24 轮失联

报告生成:2026-11-11 23:15 GMT+8 · 测试负责人(cfc-tester)