automation-run-2026-11-13-R180.md 12 KB

测试闭环报告 · 每小时 · R180 @ 2026-11-13 01:10 (GMT+8)

执行档:review 档(内网 cfc.iwintrue.com 已授权,未联网公网) 主理人:陆谨(软件测试专家团 · 测试负责人闭环) 被审查对象:浠艾福 XAF(d:/cfc,多模块:cfc-backend / cfc-web / cfc-frontend / cfc-langgraph / dan/danshop) 本轮 HEAD:935aefea1(R179 汇报提交 @ 0055,与本运行零新提交)


1. 执行范围(Execution Scope)

模块 技术栈 本轮动作 数据来源
cfc-web Vue2 + Jest 29 ✅ 实跑 npx jest --ci 本小时真实执行
cfc-frontend uni-app Vue2 + Jest 26 ✅ 实跑(排除 P-9 公网 api/config.test.js) 本小时真实执行
cfc-backend Spring Boot 2.7 + Java8 + Maven 3.6.1 ✅ mvn -o test-compile 实跑;全量 mvn test 引用基线 编译实跑 + 基线引用
cfc-langgraph Python FastAPI ⛔ 降级(需 251 节点 + AI 凭据) 基线引用
内网 E2E Playwright 1.63.0 (chromium) ✅ 无登录冒烟 /admin+/frontend 实跑 本小时真实执行
安全/性能/依赖漏洞 SAST/DAST/SCA/压测 ⛔ 降级(execute 档,需公网授权) 测试设计 + 缺口诊断

约束遵守:未访问外部公网;未安装依赖(Maven 走离线 -o);未修改/提交/推送生产源码或被审查代码;Jest 测试为 axios-mock-adapter mock API,不据其断言真实服务端行为;公网外联用例 api.test.js/config.test.js 已显式排除以守「不访问公网」约束。


2. 用例总数 · 通过 · 失败(本小时真实数据)

套件 总数 通过 失败 跳过 结论
cfc-web Jest 116 116 0 0 ✅ 全绿(零漂移 vs R179)
cfc-frontend Jest(排除 P-9 公网套件) 474 459 3 12 ⚠️ 3 红 = 已知 TDD 预期红(非回归)
cfc-backend mvn -o test-compile — 375 测试源码编译通过 0 — ✅ BUILD SUCCESS(GREEN,1:05 min)
内网 E2E 无登录冒烟 2 2 0 — ✅ /admin 200 + /frontend 200 均渲染
cfc-backend 全量 mvn test+JaCoCo 3103* 3059* 40* — ⛔ 引用 R178 基线(MySQL3306 不可达,未重跑,未实测)
cfc-langgraph 9000 51* 49* 2* — ⛔ 引用 R179 基线(2 红 = 401 环境型,需 251 节点+AI 凭据)

* 标注 * 为基线引用值,非本轮重跑实测。

cfc-frontend 3 个失败定位(均为预期 RED,非代码回归):

  • signature.consignee.test.js:172 — 期望模板含 <hand-signature(收件人手签名契约,实现未交付)
  • growthHistory.dayGroupView.test.js:287 — RED-A7 无有效业务日期记录被跳过(期望 6 实得 7,契约新增待实现)

该 3 红与 R159/R171/R179 基线逐字段一致,红例差集为空 → 零新增回归。


3. 覆盖率(Coverage)

模块 语句 分支 函数 行 门禁(≥20%) 说明
cfc-web ~10.1%* ~6.1%* ~7.5%* ~10.0%* ❌ 未达标 引用 R171/R179 基线(本轮未实时采集,规避共享 runner 超时);mock API 不反映真实服务端
cfc-frontend 53.6%* — — — ⚠️ 部分达标 引用 R155 基线(排除公网套件后本次 474 例未带 coverage)
cfc-backend — — — — ❌ JaCoCo N/A 全量测试未重跑,JaCoCo 报告未生成

* 引用值,非本轮实测。


4. 新增风险(New Risks)

  • 本轮零新增风险:所有可实跑套件与 R179 逐字段一致,HEAD 自 R179 后无新提交,无新增代码回归;SRS 闸门闭合,仓库零写入。
  • 持续风险(承袭):
    • P-9:cfc-frontend api.test.js/config.test.js 对公网 cfc.etotem.com.cn 发真实 POST(离线约束缺口),本轮已显式排除。
    • G7:后端 40 红(R178 基线)未连库核实(MySQL 3306 不可达)。
    • G9:cfc-web 覆盖率 ~10% < 20% 门禁。
    • G11:项目无 CI 固化门禁。
    • admin.referral(TR-25):AdminReferralController/TreeService 零覆盖,且未同步 SRS。
    • LangGraph:2 红为 401 环境型(需 251 节点恢复 + 有效 AI 凭据)。

5. 测试用例编写产出(Test Authoring Output)

  • 闸门判定:对 docs/tdd/SRS.md、docs/需求分析/、docs/superpowers/specs/、docs/superpowers/api/API_REFERENCE.md 做 git log 8916ced73..HEAD + find -newermt "2026-11-12 21:18" 双重校验 → 零命中。
  • 结论:本次无需求/接口变更,跳过测试用例编写(严守「仅当检测到 SRS/需求文档自上次运行有新增或修改时才编写」规则),仓库零写入(未新增/修订任何测试文件,未改生产源码,未提交未推送)。
  • 21 commits(R176–R179)均为 TDD 台账/闭环汇报与契约测试资产,未触及上述 SRS/需求/接口文档,故不触发编写闸门。

6. 五要素问题清单(Five-Element Problem List)

问题①:前端契约测试对公网真实外联(P-9)

  • ① 问题描述:cfc-frontend 的 api.test.js/config.test.js 在离线约束下仍向公网 cfc.etotem.com.cn 发起真实 HTTP 请求,违反「不访问外部公网」铁律。
  • ② 测试 bug 点:cfc-frontend/src/__tests__/api.test.js、cfc-frontend/src/__tests__/config.test.js(用例内 axios 直连公网域名,无离线开关)。
  • ③ 最优修改方案:引入 CFC_OFFLINE 环境变量守卫,命中时以 axios-mock-adapter 拦截公网请求;或将两文件并入 testPathIgnorePatterns 直至离线化完成。
  • ④ 修改目的:满足离线执行约束,避免每小时循环误打公网、造成数据外传与偶发超时。
  • ⑤ 问题闭环:在 CI/本机置 CFC_OFFLINE=1 重跑 Jest,断言 network request to cfc.etotem.com.cn 次数为 0;通过标准 = 0 外联且 116/116(web)+474(fe)全绿。

问题②:后端全量测试未连库核实 + JaCoCo 缺位(G7)

  • ① 问题描述:后端基线 40 红(R178)未经 MySQL 真实连接核实,且 JaCoCo 覆盖率报告缺失,无法判定真红/环境红。
  • ② 测试 bug 点:cfc-backend 集成测试依赖本地 MySQL 3306(当前 CLOSED);pom.xml 未稳定挂 JaCoCo agent。
  • ③ 最优修改方案:启动时拉起 MySQL(或指向可达实例)→ 跑 mvn test 收集真红;pom.xml 配置 jacoco-maven-plugin 输出 target/site/jacoco/index.html。
  • ④ 修改目的:区分真红与环境红,建立覆盖率门禁证据(G7)。
  • ⑤ 问题闭环:连库重跑后「真红 = 0」且 JaCoCo 行/分支 ≥ 80% 视为通过;否则逐项列真红清单。

问题③:cfc-web 覆盖率低于门禁(G9)

  • ① 问题描述:cfc-web 语句覆盖率约 10%,远低于 20% 门禁。
  • ② 测试 bug 点:cfc-web/src/**/__tests__/* 仅覆盖少量组件/API 封装,业务视图与 store 大片未测。
  • ③ 最优修改方案:基于 tests/e2e 与既有 __tests__ 补齐关键视图(家庭/测评/健康报告)渲染与交互用例;引入 jest --coverageThreshold 强制门禁。
  • ④ 修改目的:将覆盖率提升至 ≥20%,达成 G9。
  • ⑤ 问题闭环:重跑 --coverage 后四项指标均 ≥20% 视为通过。

问题④:admin.referral 零测试覆盖(TR-25)

  • ① 问题描述:AdminReferralController + TreeService + 前端 Users.vue 团队按钮自 feat(admin) 合入后无测试资产,且未同步 SRS。
  • ② 测试 bug 点:cfc-backend/.../controller/AdminReferralController.java、cfc-backend/.../service/TreeService.java;前端 cfc-web/src/.../Users.vue。
  • ③ 最优修改方案:补后端契约测试(/api/admin/referral/{summary,members,tree})+ 前端组件渲染测试;同步 SRS 需求条目。
  • ④ 修改目的:消除零覆盖盲区,闭合 TR-25。
  • ⑤ 问题闭环:新增契约测试 ≥2/2 通过 + SRS 条目补齐后视为闭合。

问题⑤:登录态 E2E 业务流无法执行(待核实)

  • ① 问题描述:授权内网仅支持无登录冒烟,登录后业务流(家庭/测评/商城)因无凭据无法实测。
  • ② 测试 bug 点:E2E 脚本依赖 MACHINE_JSON_PATH 注入的登录凭据(当前未配置)。
  • ③ 最优修改方案:提供仅内环境可用的测试账号凭据(经环境变量/本地配置注入,不写入提示词/报告/日志明文),编写登录态业务流 E2E。
  • ④ 修改目的:将 E2E 从「可达性冒烟」升级为「业务流验收」。
  • ⑤ 问题闭环:注入凭据后跑通核心业务流 ≥ 关键路径 90% 视为通过。

7. 待核实项(Unverified / 待核实)

  • 后端 40 红是否均为环境红(MySQL 不可达,未连库核实)—— 待核实。
  • 后端 JaCoCo 真实覆盖率 —— 待核实(未生成报告)。
  • 登录态 E2E 业务流 —— 待核实登录态(无凭据,降级为测试设计)。
  • LangGraph 9000 全量对账(真实代码红 vs 环境红)—— 待核实(需 251 节点 + AI 凭据)。
  • admin.referral 覆盖缺口与 SRS 同步状态 —— 待核实(闸门未触发,仅测试设计)。
  • cfc-web 真实覆盖率(引用 R171 ~10%)—— 待核实(本轮未实时采集)。

8. 需用户单独授权才能继续的项(未授权未执行 + 测试设计)

项 为何需授权 测试设计(降级产出)
依赖漏洞扫描(SCA,如 mvn dependency-check / npm audit) execute 档,需联网下载漏洞库/访问公网 设计:在 CI 中离线缓存 NVD 镜像后跑 dependency-check:check;门禁 = 0 High/Critical。当前 未授权未执行。
性能压测(如 JMeter/Locust 打 cfc-backend) execute 档,会打到目标环境(公网/生产) 设计:在预发内网构建压测脚本,指标 = P95<500ms、错误率<1%;当前 未授权未执行。
DAST/渗透(如 ZAP 扫 /admin /frontend) execute 档,需公网/外部服务 设计:内网授权范围内对 /api/** 跑被动/主动扫描,重点鉴权绕过与注入;当前 未授权未执行。
后端全量 mvn test+JaCoCo 连库重跑 MySQL 3306 当前不可达(环境),且全量 ~60min > 单小时预算 设计:夜间窗口拉起 MySQL 后跑全量 + JaCoCo,固化门禁;当前 降级引用 R178 基线(未实测)。
LangGraph 9000 复验 需 251 节点 + AI 凭据(联网) 设计:配齐凭据后跑 cfc-langgraph/tests 全量,分离 401/429 环境红与代码红;当前 降级引用基线。

9. 门禁结论(Verdict)

结论:⛔ 有条件通过(承袭 R179 稳态,零漂移)

可执行维度(本小时真实实测)全部绿:cfc-web 116/116、后端 test-compile GREEN、内网 E2E 2/2 可达渲染、cfc-frontend 3 红均为已知预期 RED(非回归)。但下列硬门禁未达成,故整体为「有条件通过」而非「通过」:

  • G7:后端真红未连库核实(MySQL3306 不可达),JaCoCo 缺失 → 不准许判「通过」。
  • G9:cfc-web 覆盖率 ~10% < 20% 门禁。
  • G11:项目无 CI 固化门禁。
  • P-9:公网外联用例尚未离线化。

复评条件(满足后转「通过」):

  1. 连库 mvn test 真红 = 0 且 JaCoCo 行/分支 ≥ 80%(G7);
  2. cfc-web 覆盖率 ≥ 20%(G9);
  3. 修 P-9(CFC_OFFLINE 守卫,0 公网外联);
  4. 授权并执行安全(SAST/DAST/SCA)+ 性能压测,零高危;
  5. 登录态 E2E 凭据注入跑通核心业务流 ≥ 90%;
  6. admin.referral(TR-25)补测试并同步 SRS;
  7. 固化 CI 门禁(G11)。

本产物状态:报告文件本地生成,未提交未推送;仓库零写入(未改生产源码/测试、未编写新用例);遵守「不访问公网 / 不提交推送 / 不输出敏感信息」全部约束。


执行明细日志见本运行各套件 stdout;临时 E2E 探针脚本已清理。下轮(R181)将于整点触发,届时若 SRS/需求/接口文档出现变更将自动开启测试用例编写闸门。