自动化任务:
0f6cf699-7aa0-4315-b7ed-414efa7e06dd(TDD 多智能体研发测试调度) 主理人:陆谨(软件测试专家团 · 测试架构师) 执行档:review(内网cfc.iwintrue.com→192.168.16.251已授权;不联网;不提交、不推送) 当前 HEAD:b32d99e18(继承 22:13 轮基线)| 需求闸门基线:9daeaa660工具链:Maven 3.9.9 / Java 1.8.0_25 / Node 22 / Playwright 1.63.0(chromium 本地就绪)
本对象非首次审查——自 2026-10-28 起已持续每小时闭环。关键历史结论与遗留缺口(仅作对照,本次结论须重新取证):
| 项 | 历史稳定基线 | 最近一轮(22:13, b32d99e18) |
|---|---|---|
| cfc-web Jest | 12 套件 / 90 用例 长期全绿 | 同左,连绿 |
| cfc-backend 全量套件 | 19:44 轮:1664/1538 通过 / 71 失败 / 51 错误 / 4 跳过(38 红类) | 契约复验 79 例 74 绿/3 红/2 错;维度合并首验 28 例 26 绿/2 红(B-18) |
| 内网 E2E | /frontend 200 可达;/admin 登录脚本缺口(el-select 身份未点选) |
同左,整跑仍被沙箱批量删除守卫阻断 |
| 已知遗留 | B-13 环境红 8 例(硬编码 127.0.0.1:3306)、112 例契约漂移(34 类)、JaCoCo 缺失、历史 E2E 3 红、Jest 覆盖口径差异 |
同上 + B-18 新增 |
上次(22:13)结论:不通过(有条件)。本轮在其基础上推进,结论见第十二节。
cfc-backend(Spring Boot 2.7.18 + MyBatis-Plus + Java 8,端口 9082)、cfc-web(Vue2 + Element UI 管理端 8082)、cfc-frontend(uni-app 微信小程序)、cfc-langgraph(Python FastAPI + LangGraph)、dan/danshop(独立商城)。@PostMapping;JWT 拦截 /api/**;DB 迁移唯一入口 DatabaseInitializer.runMigrations();pom.xml 默认 skipTests=true(须 -DskipTests=false)。axios-mock-adapter mock API,只验组件/工具逻辑,不断言真实服务端行为。@Test;其中 integration 包为 @SpringBootTest 需真实 DB/Redis,common/config/controller 多为纯单元或 Mockito。tests/:Playwright E2E(69 个 spec)+ integration + unit(node)套件;globalSetup 会执行 reset-db.sh(对目标库做重置,破坏性)。BUILD SUCCESS 且零失败/零错误;真实服务端行为须 E2E 验证;Jest 仅作组件级回归。| # | 类别 | 状态 | 证据 |
|---|---|---|---|
| 1 | 单元测试 | 已发现 | backend 220 类/1716@Test;cfc-web 12 jest |
| 2 | 组件测试 | 已发现 | cfc-web ProductPicker.radio/ProductSkuEditor.mode 等组件测试 |
| 3 | 集成测试 | 待核实 | backend integration 包存在,但本沙箱无测试 DB,不可执行 |
| 4 | 接口 API 测试 | 已发现 | tests/integration/plan-chain、mini-games-api;历史接口冒烟 543 例 |
| 5 | 系统/端到端 E2E | 已发现(执行降级) | tests/e2e 69 spec;本轮仅做只读探针,未整跑 |
| 6 | 冒烟测试 | 已发现 | 历史接口冒烟脚本 543 例;playwright.config.smoke.js |
| 7 | 回归测试 | 已发现 | 每小时闭环复跑即回归机制 |
| 8 | 探索性测试 | 未发现 | 仓库未见探索性测试资产 |
| 9 | 契约测试 | 已发现 | DimensionRegistryMapContractTest、AuthWechatLoginContractTest、SC-X-22 契约测试 |
| 10 | 性能测试 | 未授权未执行 | 需联网压测,超出 review 档 |
| 11 | 可靠性测试 | 待核实 | 未实测(依赖真实环境长稳观测) |
| 12 | 安全测试 | 已发现(部分) | nonfunc-security.spec.js 2 红;SAST 未跑 |
| 13 | 兼容性测试 | 未发现 | 待核实 |
| 14 | 可用性测试 | 未发现 | 待核实 |
| 15 | 无障碍测试 | 未发现 | 待核实 |
| 16 | 测试覆盖率 | 已发现(部分) | cfc-web jest --coverage 9.5%/5.3%/7.2%;backend 无 JaCoCo,覆盖率不可测 |
| 17 | 变异测试 | 未发现 | 未跑 |
| 18 | 静态代码分析 SAST | 未发现 | 未跑 |
| 19 | 依赖漏洞扫描 | 未授权未执行 | 需联网,超出 review 档 |
| 20 | QA 流程 / 代码审查 | 已发现 | 本专家团全项目代码审查;gitlab-ci.draft.yml 仅 when:manual,CI 未启用 |
/admin、/frontend)。| 维度 | 本轮实测 | 说明 |
|---|---|---|
| cfc-web Jest | 12 套件 / 90 用例,全部通过 | CI=true npx jest --ci,约 206s;mock API,不断言真实服务端 |
| └ 覆盖率 | 语句 9.5%(211/2215)、分支 5.3%(136/2578)、函数 7.2%(83/1157) | 来自 coverage-final.json;仅 12 文件被覆盖(全仓 239 文件) |
| cfc-backend 纯单元(本轮实跑) | 43 用例 / 43 通过 | AdminRolesTest/ResultCodeFactoryTest/TestRoles/AttributionStage1FoundationTest/FamilyAccessInterceptorTest/JwtInterceptorLoginRequiredTest;离线 -o,BUILD SUCCESS |
| cfc-backend 全量套件(继承基线) | 契约 79 例 74 绿/3 红/2 错;维度合并 28 例 26 绿/2 红(B-18);全量 1664/1538/71/51/4(38 红) | 取自 22:13 契约复验 + 19:44 全量基线(源码自 19:44 后仅增量,22:13 已复验) |
| 内网 E2E 探针 | /admin=302、/frontend=302 均可达 |
hosts 解析 192.168.16.251 确认;未做整跑(见第十一节降级) |
| SRS 闸门 | 触发 | 自 9daeaa660 起新增 specs(见第六节) |
注:backend 纯单元仅覆盖可离线运行的 6 个类;占绝大多数的
@SpringBootTest集成测试因本沙箱无测试 DB/资源(src/test/resources为空)不可执行,遵循降级规则标注「未实测」。
闸门触发判定:自需求闸门基线 9daeaa660(17:45 设定)起,检测到需求文档新增/修订:
aa6ccb2dd 统一维度体系合并(21:07,P0 增量 + P1 + P2 多级混排/评分口径)abc0b932d T41 成长页小游戏入口设计定稿(21:13,spec 文档)编写决策(仅测试目录,绝不改生产源码;本轮未提交、未推送):
| 需求/变更 | 编号 | 现有测试资产 | 本轮动作 | 理由 |
|---|---|---|---|---|
| SC-X-22 CF 值获取预估 | SC-X-22 | 已闭环(RewardEstimateControllerEstimateTest 11 例 + RewardRuleServiceEstimateTest 4 例,17:45 落库,持续绿) |
不重复 | 已覆盖,无缺口 |
| 统一维度体系合并 | aa6ccb2dd |
DimensionRegistryMapContractTest 等已存在;22:13 首验 28 例(26 绿/2 红 = B-18) |
不新增,标记 B-18 红 | 缺口为「已知红」而非「缺失用例」;避免重复落库造成仓库抖动 |
| T41 成长页小游戏入口 | T41 | 无(cfc-frontend 为 uni-app,本工作树无 jest/单测 harness;tests/ 仅 Web Playwright,小程序页面无可执行单测载体) |
产出测试设计,标待核实,本轮不落库 | 无安全可执行的测试载体;不臆造断言 |
本轮新增/修订可执行测试用例文件:无(闸门触发但无安全可落库的载体)。 本轮产出测试设计:见第七、十一节(T41 小程序测试设计、E2E 执行设计、JaCoCo 引入设计)。
| # | 缺口类型 | 现状 | 风险 | 建议测试设计 | 优先级 | 闭环方式 |
|---|---|---|---|---|---|---|
| G1 | T41 小程序无自动化测试载体 | uni-app 无 jest;无小程序 E2E harness | 入口卡/死链回归无守护 | 引入 uni-app 单测(@vue/test-utils + jest)或微信小程序自动化;先补「入口卡渲染 + 死链修复」用例 | P1 | owner 评估小程序测试 harness 后落库 |
| G2 | B-13 环境红 8 例 | 3 类测试硬编码 127.0.0.1:3306 |
非代码缺陷,污染套件结果 | 配置化 DB 地址(test profile / env),CI 可跑 | P0 | 改 3 类测试读环境变量后复跑零错误 |
| G3 | 112 例契约漂移(34 类) | 状态码 500↔410/403/400、术语 childId→memberId、Mockito 误用 | 掩盖真实回归 | 按 SC 逐一二分修正断言/Mock | P0 | 达 BUILD SUCCESS 零失败/错误 |
| G4 | JaCoCo 缺失 | cfc-backend pom 无 jacoco 插件 | 后端覆盖率不可度量 | 引入 jacoco 并设阈值门禁(不擅改构建,需 owner 确认) | P1 | 出覆盖率报告并对齐阈值 |
| G5 | /admin 登录脚本缺口 |
el-select 身份未点选 → 按钮 disabled |
E2E /admin 不可断言 |
修正 tests/e2e/roles/admin/login.spec.js 身份选择步骤 |
P1 | 重跑 /admin 得真实通过/失败 |
| G6 | 历史 E2E 3 红未重验 | nonfunc-security.spec.js:75/:121 等 |
安全面风险未闭环 | 凭据就绪后整跑 E2E 复核 | P2 | 复验转绿或登记缺陷 |
| G7 | cfc-web Jest 覆盖低(9.5% 语句) | 仅 12 文件,239 文件大量 0% | 组件回归盲区 | 按业务优先级扩充 jest 用例(重点 admin 关键页) | P2 | 覆盖率逐步抬升 |
| 审查维度 | 负责专家 | 结论 | 关键证据 |
|---|---|---|---|
| 单元·组件(cfc-web Jest) | 苏雅 | 通过 | 12 套件/90 用例全绿;覆盖率 9.5%/5.3%/7.2%(mock API) |
| 单元·组件(cfc-backend 纯单元) | 苏雅 | 通过 | 43/43 绿(6 类,离线可执行) |
| 集成·接口(backend 全量/E2E 接口) | 柯砚 | 有条件通过 | 全量 1664/1538/71/51/4;E2E 仅探针未整跑 |
系统·验收(E2E /admin /frontend) |
白樾 | 待核实(降级) | 302 可达;登录脚本缺口 + reset-db 风险 → 未整跑 |
| 测试保障(冒烟/回归) | 闻朔 | 通过(机制) | 每小时复跑;Jest 连绿、后端契约复验无新增回归 |
| 性能·可靠性 | 骆骋 | 未实测 | 需联网压测,未授权 |
| 安全 | 关屿 | 部分通过 | nonfunc-security 2 红待复核;SAST 未跑 |
| 兼容·体验·无障碍 | 阮清 | 未发现/待核实 | 无对应资产 |
| 度量·流程·代码审查 | 何序 | 有条件通过 | JaCoCo 缺失(G4);CI 未启用;全项目审查沿用历史缺口 |
① 问题描述:3 类集成测试启动即因无法连接 127.0.0.1:3306 报 Error,污染套件结果、掩盖真实回归。
② 测试 bug 点(用例名):AdminFamilyOverviewControllerTest、FamilyAdminOverviewServiceTest、UserServiceFamilyNameLinkTest(硬编码 127.0.0.1:3306)。
③ 最优修改方案:将 DB 地址改为从测试环境变量/test profile 读取,提供可指向内网测试库的配置,避免写死回环地址。
④ 修改目的:消除环境红,使集成测试可在 CI/内网稳定执行,恢复对真实回归的灵敏度。
⑤ 问题闭环:修改后 mvn -o -DskipTests=false test 该 3 类由 ERROR→PASS;通过标准:全量套件 ERROR 归零。
① 问题描述:统一维度体系合并(aa6ccb2dd)后,HealthDimensionControllerTest 2 例失败,22:13 首验定位为 currentMemberId 兜底传参不符预期。
② 测试 bug 点(用例名):HealthDimensionControllerTest(2 红,根因 currentMemberId 兜底传参)。
③ 最优修改方案:核对维度合并后 HealthDimensionController 的成员解析契约,修正测试用例的入参/期望值或修正生产兜底逻辑(依规格定责任归属)。
④ 修改目的:闭环维度合并带来的回归,确保五维健康接口契约稳定。
⑤ 问题闭环:修正后该 2 例转绿;通过标准:22:13 基线 28 例全绿。
/admin 登录脚本缺口① 问题描述:E2E /admin 登录步骤未点选 el-select 身份,导致提交按钮 disabled,无法完成登录断言。
② 测试 bug 点(用例名):tests/e2e/roles/admin/login.spec.js(身份选择步骤缺失)。
③ 最优修改方案:在登录流程中显式选择管理员身份(el-select 选项),再点击登录。
④ 修改目的:打通 /admin E2E 真实登录断言,覆盖后台关键路径。
⑤ 问题闭环:修正后整跑 /admin 得到真实通过/失败数;通过标准:登录→关键页可达断言通过。
① 问题描述:cfc-backend pom.xml 无 JaCoCo 插件,后端行/分支覆盖率无法采集。
② 测试 bug 点(文件):cfc-backend/pom.xml(build/plugins 无 jacoco-maven-plugin)。
③ 最优修改方案:引入 jacoco-maven-plugin 并在 verify 阶段生成报告 + 设阈值(需 owner 确认,不擅改构建)。
④ 修改目的:使后端覆盖率可度量、可设门禁,对齐质量目标。
⑤ 问题闭环:引入后 mvn test 产出 coverage 报告;通过标准:报告可见且达约定阈值。
① 问题描述:T41(成长页小游戏入口卡 + 死链修复)已合入生产,但 cfc-frontend 为 uni-app,工作树无 jest/单测 harness,小程序页面无可执行单测。
② 测试 bug 点(文件):cfc-frontend(缺测试 harness);docs/superpowers/specs/2026-11-05-miniapp-games-entry.md(需求编号 T41)。
③ 最优修改方案:搭建 uni-app 组件单测(@vue/test-utils + jest)或微信小程序自动化,优先覆盖「入口卡渲染 + 死链修复」路径。
④ 修改目的:为小程序高频入口提供回归守护,防止死链/入口回归。
⑤ 问题闭环:harness 就绪后落库 T41 用例并接入定时闭环;通过标准:T41 用例绿且接入本轮。
9195a4b37 T41 前端、750f3d8b2 健康报告成员选择)影响——22:13 已复验契约 79 例,全量未重跑,待复核。nonfunc-security.spec.js:75/:121 等)是否仍红——需凭据整跑复核。| 项 | 现状 | 未授权未执行原因 | 测试设计(若授权) |
|---|---|---|---|
内网 E2E 整跑(/admin、/frontend) |
仅只读探针(302 可达) | ① globalSetup 执行 reset-db.sh 会重置目标库(破坏性),需 owner 确认是否对授权内网目标执行;② /admin 登录脚本缺口未修;③ 历史被沙箱批量删除守卫阻断 |
授权后:先禁 reset-db 或指向隔离测试库 → 注入 machine.json 凭据(MACHINE_JSON_PATH)→ 修登录脚本 → 跑 playwright.config.func.js 得真实通过/失败 |
| 依赖漏洞扫描(OWASP DC/Snyk) | 未执行 | 需联网拉取漏洞库 | 授权后离线镜像或联网扫描 cfc-backend/cfc-web 依赖 |
| 性能压测(JMeter/k6 打到内网) | 未执行 | 需联网且会打到目标环境 | 授权后对内网目标做受控压测,设 RPS/阈值 |
| Playwright 公网安装浏览器 | 未执行 | 需公网下载 chromium_headless_shell | 授权后 npx playwright install 补齐缺省浏览器 |
| JaCoCo 引入(改 pom) | 未执行 | 改动构建配置,需 owner 确认 | 见第九节问题 4 |
凭据处理说明:本环境凭据存于
machine.json(机级,不入 git),报告与日志不回显明文口令/令牌;本轮未触发 E2E 整跑,故未注入。
裁决依据:
/admin、/frontend 可达。/admin 脚本缺口、历史 E2E 3 红、T41 无测试载体。BUILD FAILURE(仅因测试失败,非编译阻断),不符合「BUILD SUCCESS 零失败/零错误」质量目标。复评条件(满足任一即向「通过」靠拢):
mvn -o -DskipTests=false test BUILD SUCCESS 且零失败/零错误;/admin 登录脚本缺口 → E2E /admin+/frontend 整跑得到真实结果(须先确认 reset-db 不对授权内网目标执行);本轮回合未提交、未推送任何文件(含测试产出),遵守「仅写入测试目录、不改动生产源码、不提交不推送」约束。下次定时轮将复用本基线并复评上述条件。