8b75d5eb25(需求闸门基线 c83c4eb25)| 模块 | 命令 | 状态 |
|---|---|---|
| cfc-backend | mvn -o -DskipTests=false test(本地 Maven 3.9.9,离线) |
✅ 已实跑(全量) |
| cfc-web | npm test(Jest,axios-mock-adapter mock API) |
✅ 已实跑 |
| 内部 E2E | Playwright 1.63.0 → cfc.iwintrue.com/admin、/frontend |
⚠️ 部分实跑(/frontend 通过;/admin 脚本缺口降级) |
| 覆盖率 | JaCoCo | ⛔ 未实测(pom 无覆盖率插件) |
| 依赖漏洞/压测/langgraph 解析 | 需联网 | ⛔ 未授权未执行 |
注:本环境 Maven 在 08:21 曾缺失、10:50 恢复;本轮确认
/d/tools/apache-maven-3.9.9/bin/mvn可用,后端全量实跑成功。
| 维度 | 用例总数 | 通过 | 失败 | 错误 | 跳过 | 说明 |
|---|---|---|---|---|---|---|
| cfc-backend(单测/集成/契约) | 1649 | 1525 | 71 | 49 | 4 | 37 个红类;BUILD FAILURE 仅因测试失败(非构建中断),结果有效 |
| cfc-web(Jest 单测/组件) | 90 | 90 | 0 | 0 | 0 | 12 套件全绿,mock API,不断言真实服务端 |
| E2E /frontend | 1 探测 | 1 | 0 | 0 | 0 | HTTP 200,标题「首页」,SPA 正常渲染 |
| E2E /admin | — | — | — | — | — | 登录脚本缺口,未实测(降级为测试设计,见 §8) |
后端红类分类(37 类)
AdminFamilyOverviewControllerTest、FamilyAdminOverviewServiceTest、UserServiceFamilyNameLinkTest:Failed to load ApplicationContext,根因硬编码 127.0.0.1:3306 连不上本地无 DB 的 CI 环境。AuthControllerTest 期望 500 实得 410、StatsControllerTest 期望 500 实得 5001)、术语漂移(WishControllerTest childId→memberId)、文案漂移(ArticleWorkflowTest 仅已驳回/已撤回)、Mockito 误用(ProductControllerTest 参数匹配器非法、DailyCheckinStreakFlowTest doNothing() 用于非 void、ProductOrderServiceUpdateExpressFieldTest 参数不符)、NPE/上下文加载等。| 指标 | 10:50 基线 | 本轮(15:14) | 变化 |
|---|---|---|---|
| 用例总数 | 1634 | 1649 | +15(新增绿测) |
| 通过 | 1510 | 1525 | +15 |
| 失败 | 71 | 71 | 0 |
| 错误 | 49 | 49 | 0 |
| 跳过 | 4 | 4 | 0 |
| 红类 | 37 | 37 | 0 |
结论:自 10:50 基线以来无新增回归。 期间仅一处后端变更 a9f283d25(新增 MembershipControllerPlansLevelOrderTest + MembershipController 返回 levelOrder 修复),该新增测试本轮通过,未引入任何新失败。失败/错误/红类画像与历史完全一致,属长期存在的测试源码↔生产契约漂移,被本次全量实跑再次确认(此前 08:21 因 mvn 缺失导致该基线失效,本轮已修复)。
未实测。 cfc-backend/pom.xml 未配置 JaCoCo(历史上亦无覆盖率插件,且本角色不擅改构建配置)。行/分支覆盖率无数据,不臆造。如需阈值门禁,须先引入 JaCoCo 并配置 CI 跑通(见 §8 复评条件)。
@playwright/test 1.63.0 期望 chromium_headless_shell-1243,本机仅 chromium-1228/1234。本轮用 chromium-1234 全量 chrome 兜底,/frontend 实跑成功;但该方式属临时绕过,非可持续方案(详见 §8)。本次无需求变更 → 跳过编写(仓库零抖动)。
docs/tdd/SRS.md(mtime 2026-11-01)、docs/需求分析/、docs/superpowers/specs/、docs/superpowers/api/API_REFERENCE.md 自基线 c83c4eb25 起 git 零提交。a9f283d25 已由研发侧自带测试 MembershipControllerPlansLevelOrderTest(本轮通过),非 SRS 触发,不在本角色编写范围。cfc-frontend/__tests__/*、docs/tdd/test/blockers.md 等,非 SRS 触发,标注待核实,未触碰。① 问题描述:3 个测试类在 CI/无本地 DB 环境下 Failed to load ApplicationContext,导致 8 例 Error,长期拖累后端套件通过率。
② 测试 bug 点:AdminFamilyOverviewControllerTest / FamilyAdminOverviewServiceTest / UserServiceFamilyNameLinkTest(均 @SpringBootTest,数据源写死 127.0.0.1:3306)。
③ 最优修改方案:将 DB 地址改为可配置(@Value("${test.db.host:127.0.0.1}") 或 test profile + application-test.yml),CI 注入内网只读库或 H2 内存库。
④ 修改目的:消除环境耦合,使后端套件在 CI 可跑通(对应质量目标:可重复执行的全量回归)。
⑤ 问题闭环:修改后 CI 重跑该 3 类应 0 Error;通过标准 = 后端全量 BUILD SUCCESS 且 Error=0。
① 问题描述:34 类共 112 例失败/错误,断言约定停留在旧版(状态码 500↔410/403/5001、术语 childId→memberId、文案「仅已驳回」→「仅已驳回或已撤回」)。
② 测试 bug 点:如 AuthControllerTest(期望 500 实得 410)、WishControllerTest(childId→memberId)、StatsControllerTest(500 vs 5001)、ArticleWorkflowTest(文案漂移)。
③ 最优修改方案:以 API_REFERENCE.md 现行约定为准,二分修订断言;对「废弃状态码 5001」等需先与研发确认是改生产还是改测试。
④ 修改目的:测试资产真实反映生产契约,恢复信号可信度(对应质量目标:测试即文档)。
⑤ 问题闭环:逐类修订后对应用例转绿;通过标准 = 该 34 类 failures+errors 归零或仅剩 B-13 环境红。
① 问题描述:参数匹配器使用不当使测试直接抛异常,掩盖真实逻辑。
② 测试 bug 点:ProductControllerTest(Invalid use of argument matchers,3 期望 1 记录)、DailyCheckinStreakFlowTest(Only void methods can doNothing())、ProductOrderServiceUpdateExpressFieldTest(Wanted/Actual 参数不符)。
③ 最优修改方案:doNothing() 仅用于 void 方法;混用 any() 与具体实参须统一为匹配器;verify 参数须与调用一致。
④ 修改目的:消除测试自身缺陷,避免误报。
⑤ 问题闭环:修复后该类 Error→0;通过标准 = 该类全绿。
① 问题描述:自动化登录 /admin 时提交按钮(「登 录」,含空格)保持 disabled,因 el-select.identity-select 身份项(「超级管理员」)需显式点选后才解锁按钮;现有 auth.js/探测脚本未处理该下拉,致登录无 token。
② 测试 bug 点:tests/e2e/helpers/auth.js loginAs('admin')(约 L127–205);探测脚本 _e2e_admin_login2.cjs 已确认身份 el-select 出现但未被点选。
③ 最优修改方案:在 loginAs 的 admin 分支中,填手机号后显式 page.locator('.identity-select').click() 并选择角色项,再 button:has-text("登 录") 点击;必要时 waitForEnabled。
④ 修改目的:打通 /admin 端到端真实登录,使内部 E2E 管控台可被自动化覆盖。
⑤ 问题闭环:修复后重跑探针应取得 token 且 /admin 仪表盘可渲染;通过标准 = /admin E2E 探测 tokenLen>0 且 hasSidebar>0。
① 问题描述:pom 无 JaCoCo,行/分支覆盖率无法采集,闭环只能看用例红绿,无法设阈值。
② 测试 bug 点:cfc-backend/pom.xml(无 jacoco-maven-plugin)。
③ 最优修改方案:引入 jacoco-maven-plugin,mvn test 后生成 jacoco.exec/site,配置 CI 覆盖率阈值卡点(需研发/测试负责人确认阈值,不擅改构建)。
④ 修改目的:使覆盖率成为可量化门禁,补齐非功能度量(对应质量目标:可度量质量)。
⑤ 问题闭环:配置后采集首份覆盖率基线;通过标准 = 覆盖率数据产出且达约定阈值。
el-select 未点选、按钮含空格「登 录」),非服务端凭据缺陷;修复 P4 后重验。nonfunc-security.spec.js(:75/77 后台未授权返 500 应 401/403;:121/131 上传非 PDF 未返 4xx)、nonfunc-perf-compat.spec.js(:99 46003 会员专享)仍待环境修复后重跑。health.report.createReport/dan.assessment.getActiveMaterial/guide.trainingPlan.getPlanDetail 契约测试 16/16 全绿,但状态机仍滞 RED(研发未 --mark-yellow),属跨轮遗留卡点,非本测试闭环可解。| 项 | 为何未执行 | 给出的测试设计 |
|---|---|---|
| 依赖漏洞扫描(OWASP DC/SCA) | 需联网拉取漏洞库 | 引入 dependency-check / snyk,CI 门禁阻断高危 CVE |
| 性能/可靠性压测 | 需联网或打到目标环境,未授权 | 对 /api 关键路径做 k6/JMeter 基线+阈值;本机仅冒烟 |
| Playwright 公网装浏览器 | 外部公网下载被禁 | 预置匹配版本 chromium_headless_shell-1243 到镜像;当前用 1234 兜底仅够 /frontend |
| langgraph 报告解析真实链路 | 需联网/远端 AI | 以 cfc-langgraph 本地最小服务 + 回退 opencode 验证 |
| E2E 真实登录态(/admin) | 脚本缺口(见 P4),非授权问题 | 修复 auth.js 身份选择后实跑(不涉联网) |
裁决依据:后端全量实跑 1649 例中仍有 71 失败 + 49 错误(37 红类),未达「全量 BUILD SUCCESS、零失败/错误」门禁;E2E /admin 未实测(脚本缺口);覆盖率未实测(缺 JaCoCo)。但本轮已确认无任何新增回归(与 10:50 基线画像完全一致,+15 新测全绿),问题均为历史遗留契约漂移与环境红。
复评条件(满足任一即可推进):
BUILD SUCCESS 且 failures=0、errors=0;/admin 与 /frontend 均取得真实登录态与渲染;c83c4eb25 起有新提交)时,按 §6 闸门触发测试用例编写。本角色仅做只读审查与(需求变更时的)测试编写,不修改/提交/推送生产源码;上述修复由研发/测试团队协作实施。