_test_closure_report_2026-11-05_1944.md 12 KB

测试闭环报告 — 2026-11-05 19:44 (GMT+8)

  • 执行档:review 档(内网 cfc.iwintrue.com→192.168.16.251 已授权;不联网;不修改/不提交/不推送生产源码;仅在测试目录写入)
  • 触发:定时自动化(@skill TDD 多智能体研发测试调度;角色=测试负责人/陆谨;CFC 仅启用 review 档)
  • 基线:HEAD = a96bd0848(含 19:19 兄弟轮提交的契约复验报告);全量后端基线 8b75d5eb25(15:14)本轮因源码变更已失效→重跑;SRS 闸门基线 9daeaa660(17:45,未变)
  • 测试负责人:陆谨(软件测试专家团主理人)

1. 执行范围

模块 技术栈 实际执行的命令 说明
cfc-backend Spring Boot 2.7 + MyBatis-Plus /d/tools/apache-maven-3.9.9/bin/mvn -o -DskipTests=false test(离线,全量) 源码自 15:14 基线已变更 → 按本任务铁律「源码变更→重跑」执行全量,得当前真实数据
cfc-web Vue2 + Jest npx jest --ci(离线,mock API) 12 套件全跑
内网 E2E Playwright(chromium-1234,executablePath 兜底) 只读渲染探针 _e2e_probe_1944.cjs /frontend、/admin 可达性 + 登录页渲染冒烟

约束重申:未访问外部公网;未安装依赖;未执行仓库内脚本;未修改/提交/推送生产源码;敏感凭据不入库、不回显(E2E 仅达登录页,未注入明文口令)。


2. 用例总数 · 通过 · 失败

维度 总数 通过 失败 错误 跳过 备注
cfc-backend 全量套件(本轮实跑) 1664 1538 71 51 4 BUILD FAILURE 仅因测试失败(非构建中断),结果有效
└ B-13 环境红(硬编码 127.0.0.1:3306) — — 0 8 — 3 类:AdminFamilyOverviewControllerTest(E3)/FamilyAdminOverviewServiceTest(E3)/UserServiceFamilyNameLinkTest(E2)
└ 契约漂移 — — 71 43 — 35 个红类(含 SC-X-22 新增 15 例全绿,未计入漂移)
cfc-web Jest 90 90 0 0 0 12 套件,axios-mock-adapter mock API,不断言真实服务端
内网 E2E /frontend 探针 1 1 0 0 0 HTTP 200 / 最终 /frontend/#/ / SPA 外壳可达
内网 E2E /admin 探针 1 1 0 0 0 HTTP 200 / 重定向 /admin/login / 标题「浠艾福管理后台」(登录页渲染正常)

回归判定(vs 15:14 全量基线 1649/1525/71/49/4,37 红):

  • 总数 +15(SC-X-22 生产 + 15 例契约测试,全部绿);
  • 失败 71→71(持平);错误 49→51(+2);红类 37→38(+1 漂移类)。
  • 因 SC-X-22 15 例已证全绿(17:45 实测 + 本轮绿灯),+2 错误 / +1 红类并非 SC-X-22 引入,而源自 15:14 之后并入的其它源码变更(JwtInterceptor +5、ProductController +33、GuideFamilyTaskController +6、TaskController +8、实体 +8/+8)——属新引入的契约漂移,需逐类复核定位具体 2 例。
  • Jest 12/90 与近 10+ 轮一致,零回归。

3. 覆盖率

  • cfc-backend:pom.xml 无 JaCoCo 插件 → 覆盖率未实测(历史缺口,延续);测试侧不擅自改构建配置。
  • cfc-web:Jest 未配置 --coverage → 覆盖率未实测。
  • SC-X-22 新增类:surefire 计为新增用例,未单独计覆盖率。

4. 新增风险

  • 后端源码自 15:14 基线已实质变更(SC-X-22 生产 + JwtInterceptor/Product/GuideFamilyTask/Task 等),15:14 的 1649 例基线已失效;本轮已重跑全量得到真实值 1664/1538/71/51/4。
  • 新引入的次要回归:错误 49→51(+2)、漂移红类 34→35(+1),与 SC-X-22 无关,疑似上述非 SC-X-22 源码变更触发的契约漂移(如 GuideFamilyTaskControllerTest F3/E2、TaskControllerReviewTest E2 等),待逐类复核定位具体 2 例(15:14 逐类基线已被本次 surefire 覆盖,无法回放)。
  • B-21 复发(兄弟轮 19:19 实证):SC-P-11 契约复验 17→15/17,根因 f14e46f84;本轮全量红类含 DimensionRegistryMapContractTest F3,与 B-21/S-cfc-8 一致。
  • 后端全量复跑耗时 ~30min(19:49→20:19),下一轮若源码无变更应复用本轮基线,避免冗余重跑。

5. 测试用例编写产出(SRS 闸门)

闸门判定:SRS/specs/需求分析/API_REFERENCE 自 gate 基线 9daeaa660 起零提交(git 核实 9daeaa660..HEAD 仅 1 个 docs(tdd) 报告提交,无 SRS/需求变更)→ 闸门未触发,跳过编写,零仓库抖动。

  • 循环 gate 基线维持 9daeaa660(不变)。
  • 工作树存在未提交改动(cfc-frontend/__tests__/api/api.test.js、tests/e2e/helpers/auth.js 等),非 SRS 触发,列「待核实」,本轮不纳入、不提交。
  • 历史已闭环的 SC-X-22 用例(17:45 轮写入,15 例全绿)本轮随全量复跑再次验证为绿,持续有效。

6. 五要素问题清单

Q1 · SC-X-22 契约测试缺口(已闭环 GREEN,本轮复验持续有效)

① 问题描述:SC-X-22 生产先于契约测试合入,预估接口缺回归防护(17:45 轮已补写)。 ② 测试 bug 点:原 cfc-backend/src/test 无 RewardEstimateController 相关测试。 ③ 最优修改方案:新增 2 类 15 例契约测试(controller 11 + service 4),standalone MockMvc + mock 依赖,DB-free。 ④ 修改目的:保障预估/降级/权限契约不被回归破坏。 ⑤ 问题闭环:已绿;本轮全量复跑仍绿(15/15)。复测 = mvn -o -Dtest='RewardEstimateControllerEstimateTest,RewardRuleServiceEstimateTest' test 全绿。

Q2 · B-13 环境红(3 类 / 8 错误,硬编码 127.0.0.1:3306)

① 问题描述:3 类测试硬编码本地 MySQL,无本地 DB 的 CI/沙箱环境 → 环境红,掩盖真实结果。 ② 测试 bug 点:AdminFamilyOverviewControllerTest(E3) / FamilyAdminOverviewServiceTest(E3) / UserServiceFamilyNameLinkTest(E2) 连接 127.0.0.1:3306。 ③ 最优修改方案:DB 地址/账号改为可配置(@TestPropertySource/环境变量)或改 Testcontainers/H2 内存库。 ④ 修改目的:消除环境红,使结果可信、可在无本地 3306 环境复跑。 ⑤ 问题闭环:需研发改造 + CI 注入配置;复测 = CI(无本地 3306)下 8 例转绿。本轮 8E 与历史完全一致,无改善。

Q3 · 契约漂移(35 类 / 71F + 43E = 114 例)

① 问题描述:测试按旧契约断言(状态码 500↔410/403/400/5001、术语 childId→memberId、文案漂移、Mockito 误用),长期被掩盖。 ② 测试 bug 点:分散在既有 controller/service 集成测试(本轮 35 个红类,surefire 报告为准)。 ③ 最优修改方案:逐类二分,对齐生产当前契约后修正断言;属测试侧漂移,非生产缺陷。 ④ 修改目的:达 BUILD SUCCESS、零失败/错误,建立可信基线。 ⑤ 问题闭环:逐类修订后对应用例转绿;复测 = mvn -o -DskipTests=false test 全量 0 失败 0 错误。本轮较 15:14 多 1 红类 +2 错误(见 Q6)。

Q4 · /admin E2E 登录脚本缺口(el-select 身份未点选)

① 问题描述:/admin 登录流程 el-select 身份项未编程点选,致登录按钮 disabled,无法进入管理端断言。 ② 测试 bug 点:tests/e2e/helpers/auth.js / admin-*.spec.js 登录步骤缺身份下拉选择。 ③ 最优修改方案:在 auth.js 登录序列补 el-select 选项点选(machine.json 已配 admin 凭据,不回显)。 ④ 修改目的:使 /admin 端到端用例可真实执行。 ⑤ 问题闭环:修正后复跑 admin-*.spec.js 全绿;复测 = /admin 登录成功并渲染管理面板。本轮探针仅达登录页(200),真实登录断言仍被脚本缺口阻断。

Q5 · cfc-web Jest 口径差异(12/90 vs 历史 296)

① 问题描述:本轮 12 套件 90 例,与历史 296 口径不一致,疑似部分套件未纳入或历史含其它目录。 ② 测试 bug 点:cfc-web/package.json jest config 与历史台账范围不一致。 ③ 最优修改方案:统一 Jest roots/include,对齐 discovery 台账;核对是否漏跑 e2e/组件套件。 ④ 修改目的:口径一致,便于回归对比。 ⑤ 问题闭环:核对后使 Jest 全量套件与台账一致;复测 = 全量套件纳入。

Q6 · 新引入的次要回归(+2 错误 / +1 漂移红类,待复核定位)

① 问题描述:本轮全量较 15:14 基线错误 +2、漂移红类 +1,且非 SC-X-22 引入(SC-X-22 15 例全绿),疑似 JwtInterceptor/ProductController/GuideFamilyTaskController/TaskController 变更触发契约漂移。 ② 测试 bug 点:候选 GuideFamilyTaskControllerTest(F3/E2)、TaskControllerReviewTest(E2)、GuideRolePermissionTest(F4/E1) 等;精确 2 例因 15:14 逐类基线已被覆盖无法回放,待核实。 ③ 最优修改方案:对候选红类逐类 git diff 8b75d5eb25..HEAD -- <对应生产类> 比对契约,修正断言/桩。 ④ 修改目的:消除本轮新引入的漂移,使回归画像收敛至仅剩历史遗留项。 ⑤ 问题闭环:修正后复跑该红类转绿;复测 = 全量错误回落至 49、红类回落至 37。


7. 待核实项

  • Q6 精确 2 例新增错误:15:14 逐类基线已被本次 surefire 覆盖,需重新二分定位(建议对 GuideFamilyTaskController/TaskController/GuideRolePermission 等候选类 git diff 比对);
  • 后端覆盖率(JaCoCo 缺失,pom 未配);
  • /admin 真实登录后断言(脚本缺口 Q4 未修);
  • cfc-web Jest 296 口径来源(Q5);
  • 历史 E2E 3 红(nonfunc-security/nonfunc-perf-compat 等)未重验;
  • machine.json 凭据仅机级共享、未入库未回显;工作树未提交 E2E/前端测试改动非 SRS 触发,未纳入。

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

  • 依赖漏洞扫描(OWASP/Dependency-Check,需联网拉库)→ 未授权未执行;测试设计:CI 加 dependency-check:check 阻断高危 CVE。
  • 性能压测(打 cfc.iwintrue.com 或本地后端,需联网/打到目标)→ 未授权未执行;测试设计:k6/JMeter 对 /api/reward/estimate 阶梯压测,关注 P95 < 3s(契约 §8 超时红线)。
  • Playwright 从公网安装浏览器 → 禁止(不联网);本地 chromium-1234 已就绪(本次探针已用其 executablePath 兜底),仅 chromium_headless_shell-1243 缺失,/admin 全量脚本需确认浏览器完备。
  • 全量后端复跑:本轮已执行(源码变更触发),无需授权;下一轮若源码无变更应复用本轮 1664 基线。

9. 结论

不通过(有条件)。

  • 本轮正向增量:后端全量在源码变更后重跑得到真实值(1664/1538/71/51/4),SC-X-22 15 例契约测试持续绿;Jest 12/90 连绿;/frontend+/admin 探针均 200 可达、/admin 登录页正常渲染。
  • 仍阻断整体放行的遗留项:B-13 环境红 8 例、35 类契约漂移(114 例)、覆盖率缺失(JaCoCo)、/admin E2E 登录脚本缺口、历史 E2E 3 红。
  • 本轮新增关注:Q6 次要回归(+2 错误 / +1 红类),非 SC-X-22 引入,需复核定位(待核实具体 2 例);B-21 复发(兄弟轮 19:19 实证,SC-P-11)。

复评条件(任一满足即提升 verdict):

  1. 修 B-13 + 二分修 114 例漂移(含 Q6 新 2 例)→ mvn -o -DskipTests=false test BUILD SUCCESS 且 0 失败 0 错误;
  2. 引入 JaCoCo 并使行/分支覆盖率达阈值(建议 ≥ 60%);
  3. 修 auth.js 身份选择,使 /admin + /frontend 端到端全绿;
  4. 对齐 cfc-web Jest 口径至台账 296 套件;
  5. 提供联网授权以执行依赖漏洞/压测(如需纳入);
  6. 研发对 TDD 3 红键执行 --mark-yellow(O-1,跨轮遗留卡点)。

注:本轮报告与新增测试未提交、未推送(依指令);如需纳入版本控制请显式授权,我可 git add -f 仅测试相关文件后提交(不碰生产源码)。


报告文件:d:/cfc/_test_closure_report_2026-11-05_1944.md