automation-run-2026-11-09-R97.md 10 KB

全栈测试执行记录 · R97(2026-11-09 04:56 起跑)

自动化闭环第 97 轮。执行档:review(离线)——未联网装依赖、未启停任何服务、未修改生产代码;仅修改测试侧装置(tests/e2e-live/admin-live.spec.js)。 汇报正文:docs/tdd/orchestration/report-test-2026-11-09-0610.md;台账:docs/tdd/test/blockers.md。


一、历史审查记录

项 内容
上次审查 R96(2026-11-09 04:31),结论不通过
R96 遗留 后端 2753/115 红(承袭未实测)、前端 49 红(预期 RED)、langgraph 本机 44/32/12、251 派发不可用、B-65/B-69 续催、B-83 新增
本次改善 ①后端首次实测(推翻「无 Maven」);②251 派发达成(G10 首次通过);③浏览器零 skip(B-76/B-59 闭环);④B-65 定性升级(非「已修」而是「依赖版本侥幸」);⑤B-69 定位到 PUBLIC_PATHS
历史教训应用 B-28(分支切换带走工作区)→ 跑前/跑后双查 branch+HEAD;B-32(口径漂移)→ 本轮所有度量给出可复算口径并剔除生成物(B-86);B-67(假红三证)→ U04 失败执行「2 次独立复跑 + 接口 curl 5 连测」后才定性

二、项目画像

维度 内容
业务定位 家庭教育成长平台「浠艾福(XAF / CFC)」:家长端/规划师端/孩子端小程序 + 管理后台 + 商城 + AI 服务
技术栈 cfc-backend Spring Boot 2.7.18 + MyBatis-Plus + Java 8;cfc-frontend uni-app(Vue2);cfc-web Vue2+Element UI;cfc-langgraph FastAPI+LangGraph+ChromaDB;dan/danshop 独立商城
模块规模 后端 2110 生产源 / 249 控制器 / 333 测试类;前端 26 测试套件;管理端 17 套件;langgraph 44 用例
关键路径 微信登录 → 家庭/成员 → 五维能量 → 健康报告上传解析 → 测评订单 → 成长任务 → 商城 → AI 管家
测试现状 后端单测/集成较厚(2802 例);前端用例集中在 diet/signature 改版;E2E 仅 live 28 例;无覆盖率/变异/压测/SAST/无障碍资产
质量目标 用户口径:全部用例通过 + 覆盖全部 SRS 与用户场景(含异常流)
主要风险 ①TDD 契约红态堆积(94 例)导致通过率长期 <96%;②A 类装置红 37 例污染门禁信号;③SRS→可执行锚点仅 11.5%;④CI 仍为两级软门禁

三、20 类测试覆盖矩阵

三态:已发现=取得可执行资产与实测数据;未发现=扫描未命中(≠不存在);待核实=扫描截断/无法判定。

3.1 功能层次(5 类)

# 类型 状态 证据
1 单元测试 已发现 333 类 / 2802 例,1:00h 实跑
2 测试覆盖率 未发现 无 jacoco 报告产物(target/site/jacoco 不存在)
3 变异测试 未发现 无 PIT/pitest 配置
4 集成测试 已发现 EnergySystemFlowTest/PlannerBindInviteFlowTest 等 40+ 类,13 例红
5 契约测试 已发现 Guhe*ContractTest 13 类 85 例(预期 RED)+ health 契约 13/13

3.2 功能保障(4 类)

# 类型 状态 证据
6 冒烟测试 已发现 playwright.config.smoke.js 存在;live 15/15 承担冒烟职能
7 回归测试 已发现 后端全量 + 前端 423 + 管理端 116 每轮复跑
8 探索性测试 未发现 无 charter/记录
9 验收测试(UAT) 未发现 无用例与签署记录

3.3 非功能(6 类)

# 类型 状态 证据
10 性能测试 未发现 无 k6/jmeter;仅 nonfunc-perf-compat.spec.js 轻量探针
11 可靠性测试 待核实 无故障注入/混沌;251 两次断连(B-55)为被动观测
12 安全测试(SAST) 未发现 无 semgrep/codeql 产物
13 依赖漏洞(SCA) 未发现 无 OWASP DC/trivy 产物(离线档亦不允许联网拉库)
14 兼容性测试 已发现 admin-desktop + H5-mobile 两档(playwright.config.live.js projects)
15 无障碍测试 未发现 无 axe 断言

3.4 度量与流程(5 类)

# 类型 状态 证据
16 QA 流程 已发现 docs/tdd/ 台账 + 双负责人轮次 + blockers 编号体系
17 质量指标 已发现 本轮首次给出可复算全量口径(3435/3210=93.45%)
18 缺陷管理 已发现 blockers.md B-1~B-86
19 全项目代码审查 待核实 抽样(控制器 249/接口 2110 源);@GetMapping 8 处违规
20 变更影响分析 已发现 SRS 3 份 ↔ 用例映射(§五)

缺口统计:已发现 11 / 未发现 8 / 待核实 1。


四、测试方案(本轮实际执行)

项 内容
目标 ①取得可复算全量通过率;②定位 143 红例分层归因;③langgraph 派 251;④浏览器零 skip
范围 后端全量 JUnit、前端/管理端/根级 jest、langgraph 251 实派、浏览器 live+health
排除 覆盖率/变异/压测/SAST/SCA/UAT/BDD/无障碍(无工具或无资产,标未实测)
执行档 review(离线);251 派发走内网 opencode 通道(禁装依赖、禁启停服务)
优先级 P0 analyze thread_id → P1 装置 37 例 → P1 产品 12 例 → P1 契约 94 例

五、执行结果明细

5.1 后端(JDK1.8.0_25 + IDEA Maven 3.9.9,mvn -o -B clean test,1:00:34)

Tests run: 2802, Failures: 132, Errors: 11, Skipped: 4
passed=2655  pass_rate=94.75%  (excl_skip 94.89%)
classes=333  red_classes=34  red_cases=143
恒等式: @Test 2792 + 参数化展开 26 − @Disabled 4 − 早退截断 12 = 2802(误差 0)
testCompile: 339 源 0 错;XML 完整性 333/333;无静默丢失

红类 TOP10:GuheEvidenceIsolateContractTest 11、GuheNoPathMapContractTest 10、DietFoodHealthAdjustContractTest 9、GuheKbVersionSenseContractTest 9、GuheLowSideRuleLoadContractTest 9、CfCommissionServiceSettleTest 8、GuheReportPersonalAssertContractTest 7、EnergySystemFlowTest 6、GuheKbQueryLowSidePatchContractTest 6、GuheV2RouteContractTest 6。

三层归因:预期 RED 94 / A 类 37 / B 类 12。

5.2 前端与管理端

套件 结果 红例分布
cfc-frontend 423 / 371 / 49 / 3 skip recommendation.uiRework 25、signature.canvas2d 9、recommendation.healthAdjustUi 8、recommendation.participantSelect 8(全为预期 RED,源码能力键命中 0)
cfc-web 116 / 116 / 0 —
tests/ 根级 23 / 7 / 16 B-36 黑盒环境依赖(零漂移)

5.3 langgraph(251 实派,权威口径)

251 仓库: /sc-data/cfc/cfc-langgraph  HEAD 4f1cf92ec  branch cfclub
命令: timeout 720 .venv/bin/python -m pytest tests --ignore=tests/qna --ignore=tests/test_chat.py -q
结果: 10 failed, 33 passed, 6 warnings in 183.67s
红例分组 例数 归因
test_analyze.py 2 B-65 源码级(thread_id),251 pytest 可复现
test_auto_tag.py 4 B-74 装置(ASGITransport 不触发 startup)
test_intent.py 4 环境(251 模型/凭据对意图分类不稳定;R95 曾 4/4 绿)
test_chat.py 1 B-84 新增:真实 LLM 无超时,>10min 不收敛 → 本轮排除执行

251 live 端到端(权威能力验证):/api/v1/chat 200(28.44s,完整 answer)、/api/v1/analyze 200(15.77s)、/health 200、/docs 200、OpenAPI 40 paths。

5.4 浏览器自动化(本机单节点串行,workers=1)

套件 结果 耗时
live(admin 5 + frontend 6 + shop 4) 15/15,0 skip 1.6m
health-contract 13/13 ~20s

装置修复(B-76/B-59 闭环):admin-live.spec.js 新增 waitLoginFormReady()、fillPhoneAndAwaitRoles()(等 account-roles XHR 返回并断言 200),TC-A-U05 的 test.skip 改硬断言。修复前首跑 U04 红/U05 skip;修复后 5/5、全套件零 skip。

5.5 节点分派实测

节点 端口 结果
192.168.16.251 9000 / 4096 / 22 全部可达;9000 服务正常(40 paths)、4096 opencode 可用 → pytest 实派成功
192.168.16.251 4090 / 8000 CLOSED
192.168.16.189 4090 / 22 Connection refused(B-56 延续:节点失联)
本机(204) Chromium-1228 浏览器单任务串行 ✅

六、覆盖缺口清单

缺口类型 现状 风险 建议测试设计 优先级 闭环方式
SRS→可执行锚点 95/824 = 11.5% 需求变更无法被用例守护 每份 SRS 的验收点必须落 1 个可执行 TC 锚点注释 P0 新 SRS 合并时 CI 校验「新增 spec 含 TC-* 注释」
异常流执行级验证 设计 496 条(60.2%),执行锚点极少 异常分支回归无守护 对 -E/-P 用例按控制器分组补 MockMvc 负向用例 P1 每控制器 ≥3 条负向用例
覆盖率 无 jacoco 产物 无法判定测试有效性 引入 jacoco + 行覆盖 ≥60% 门禁 P1 mvn test 出 HTML 报告并入库
变异测试 无 断言强度未知 引入 pitest 对 service 层抽样 P2 变异存活率 ≤40%
性能/可靠性 无压测 慢查询/抖动无基线 对 live 关键 API 做 p95 基线采集 P2 每轮采集 p95 并对比
SAST/SCA 无 漏洞不可见 引入 semgrep + dependency-check(需联网授权) P2 CI 增 security job
无障碍/多浏览器 仅 2 档 体验缺保障 增 firefox/webkit + axe 断言 P3 projects 扩展
UAT/BDD 无资产 业务验收无记录 每迭代 1 份 Gherkin 场景 P3 与产品共签

七、门禁结论

不通过(详见汇报正文 §八)。本轮结构性改善:G10 节点派发首次通过、G6 浏览器零 skip、首份可复算全量口径。

八、未实测项(如实登记)

  1. 覆盖率、变异测试、性能压测、SAST、SCA —— 无工具/离线档不允许联网。
  2. tests/test_chat.py 1 例 —— 真实 LLM 无超时,两节点均不收敛(B-84)。
  3. UAT、BDD、探索性、无障碍、多浏览器 —— 无资产。
  4. 192.168.16.189 浏览器派发 —— 节点 22/4090 全拒。
  5. 后端 A 类 37 例的转绿 —— 测试侧下轮处置,本轮仅归因未修改(除浏览器装置)。