执行档:review(内网 cfc.iwintrue.com 已授权;不访问外部公网) 主理人:软件测试专家团·陆谨(测试负责人)| 被审查对象:d:/cfc(浠艾福 XAF) 本轮回合 HEAD
4db4362e8(17:04 Merge 并发合入 S-cfc-169);上次本对象记忆轮 = R169(16:05)
automations/0f6cf699…/memory.md(1911 行)连续记录 R159→R170 多轮稳态闭环,本对象历史结论与遗留缺口已带入本次。| 模块 | 命令(离线/内网) | 状态 |
|---|---|---|
| cfc-web | npx jest --coverage(axios-mock-adapter,不访真实服务) |
✅ 实测 |
| cfc-frontend | npx jest(排除公网 api.test.js+config.test.js) |
✅ 实测 |
| cfc-backend | mvn -o test-compile(离线编译门) |
✅ 实测 |
| cfc-backend 全量 | mvn test + JaCoCo |
⛔ 降级(≈60min > 小时预算,引用基线) |
| 浏览器 E2E | Playwright 1.63.0 无登录冒烟 /admin、/frontend |
✅ 实测(探活) |
| 浏览器 E2E 业务流 | 登录态深度 E2E | ⛔ 降级(无凭据,待核实登录态) |
| 安全/性能/依赖漏洞(公网) | SAST/DAST/SCA/压测 | ⛔ 未授权未执行 |
| LangGraph 9000 | pytest | ⛔ 未授权未执行(需 251 节点+AI 凭据) |
| 套件 | 总数 | 通过 | 失败 | 跳过 | 说明 |
|---|---|---|---|---|---|
| cfc-web Jest(17 套件) | 116 | 116 | 0 | 0 | 全绿,EXIT0,85s |
| cfc-frontend Jest(42 套件,已排除公网 2 文件) | 624 | 609 | 3 | 12 | EXIT1 |
后端 mvn -o test-compile |
— | — | — | — | 编译门 GREEN(exit0),非用例执行 |
| E2E 无登录冒烟 | 2 | 2 | 0 | 0 | admin/frontend 均 200 渲染 |
| 本轮合计(前端+web) | 740 | 725 | 3 | 12 | — |
后端全量用例(R170 基线 363 类/3057 例/3030 过/17F+6E/99.12%)本轮未重跑,仅引用基线,不计入本轮合计以防重叠。
失败用例明细(均为已知基线红,非回归):
cfc-frontend/__tests__/pages/signature/signature.consignee.test.js — 1 红(基线 signature.consignee)cfc-frontend/__tests__/pages/growth-main/growthHistory.dayGroupView.test.js:287 — 2 红(RED-A7 预期红:groupByDate 装配逻辑,实现未交付)| 指标 | cfc-web(本轮实测) | cfc-frontend(引用基线) | 后端(引用基线) |
|---|---|---|---|
| 语句/Stmts | 10.09% | ~53.57% | R170 行级未单列;全量 99.12% 通过率 |
| 分支/Branch | 6.12% | — | — |
| 函数/Func | 7.5% | — | — |
| 行/Lines | 9.97% | — | — |
cfc-web 覆盖率与 R169(10.1/6.1/7.5/9.95)零漂移;后端 JaCoCo 因全量未跑 → N/A。
| # | 测试类型 | 状态 | 证据 |
|---|---|---|---|
| 1 | 单元测试 | 实测 | cfc-web 116/116;后端 test-compile GREEN |
| 2 | 组件测试 | 实测 | cfc-frontend 42 套件含组件用例 |
| 3 | 测试覆盖率 | 实测(web)/降级(后端) | web 10.09%;后端 JaCoCo N/A |
| 4 | 变异测试 | 不适用(方案排除) | 未纳入本小时范围 |
| 5 | 集成测试 | 降级 | 后端全量未跑;契约 RED 测试仅编译通过未连库 |
| 6 | 契约测试 | 实测(编译)/降级(执行) | 新增 RED 契约编译通过;未连库执行 |
| 7 | 接口 API 测试 | 降级 | 公网+登录态 API 未实跑;仅无登录 401 鉴权探针历史已覆盖 |
| 8 | 系统/端到端 | 实测(冒烟)/降级(业务流) | 无登录 E2E 2/2;登录态 E2E 无凭据 |
| 9 | 验收 UAT | 不适用(方案排除) | — |
| 10 | BDD 规格 | 不适用(方案排除) | — |
| 11 | 冒烟测试 | 实测 | E2E 探活 + test-compile |
| 12 | 回归测试 | 实测 | 三轮对照零漂移 |
| 13 | 探索性测试 | 待核实 | 无脚本化证据 |
| 14 | 性能测试 | 未授权未执行 | 压测打远端,公网未授权 |
| 15 | 可靠性测试 | 降级 | langgraph 9000 未授权 |
| 16 | 安全测试 SAST/DAST/SCA | 未授权未执行 | 依赖漏洞扫描/DAST 需公网 |
| 17 | 兼容性测试 | 待核实 | 无跨浏览器矩阵脚本 |
| 18 | 可用性/无障碍 | 待核实 | 无脚本化证据 |
| 19 | QA 流程/质量指标 | 实测 | 门禁度量见 §8 |
| 20 | 全项目代码审查 | 不适用(方案排除) | 本小时聚焦闭环,非全量审查轮 |
test(...) RED 契约——S-cfc-168 membership.plan.purchase(7/7 预期红,SC-P-58)、S-cfc-169 supplier.order.fulfill(pickupCode 核销未落地)、S-cfc-166 shop.order.queryRefund(退款状态查询)、S-cfc-165 shop.order.create(10/10 绿,实现已合)。均为实现未交付的预期红/新增契约测试资产,未连库核实、不计入本轮、不触发 SRS 编写闸门。git log --since 16:05 对 docs/tdd/SRS.md / docs/需求分析/ / docs/superpowers/specs/ / docs/superpowers/api/API_REFERENCE.md 零变更(最后变更:API_REFERENCE 09:38、需求分析 10:58、SRS 11-01,均早于 R169)。membershipGate.test.js、ServiceRoleApplyBindInviteContractTest.java)仍有效,无需重复编写。P1 · P-9 公网外联(测试设计缺陷)
cfc.etotem.com.cn 发真实请求,违反「不访问外部公网」约束,且离线环境可能掩盖真失败/产生不确定结果。cfc-frontend/__tests__/config/config.test.js(真实 POST cfc.etotem.com.cn);api.test.js 仅含 http://photo.url 字符串断言(非真实外联,已排除以守约束)。CFC_OFFLINE 守卫,默认用 axios-mock-adapter 拦截;真实外联改为显式 @network 标签且仅在 execute 档运行。CFC_OFFLINE=1 下无任何对外 TCP 连接。P2 · admin.referral 零测试覆盖(覆盖缺口)
feat(admin) 新增 /api/admin/referral/{summary,members,tree} + AdminReferralController/TreeService + Users.vue 团队按钮,无对应测试,且未同步 SRS。cfc-backend/.../controller/AdminReferralController.java(提交 6c0f05701)+ cfc-web/src/.../Users.vue 团队入口(无 test/spec)。AdminReferralContractTest(Mockito 离线契约,覆盖 summary/members/tree 三端点鉴权与空数据)+ 前端 Users.vue 团队按钮交互用例。mvn test 绿 + 前端 jest 绿;通过标准=三端点均有断言且 0 真红、覆盖率计入。P3 · cfc-web 覆盖率低于门禁(G9)
cfc-web 覆盖基线(多数 src/views/**/*.vue 覆盖 0%),17 套件仅覆盖少量工具/组件。src/views/admin、src/views/teacher、src/views/nutritionist 等业务域补充组件渲染/交互用例,优先覆盖已上线高频页面。jest --coverage 重新采集;通过标准=语句覆盖率 ≥20% 且关键业务页面非零覆盖。P4 · 后端全量+JaCoCo 未纳入小时闭环(G7)
mvn test 全量 ≈45–60min 超小时预算,JaCoCo 覆盖率无法每小时采集,17~25 红(含 TDD-RED+历史债)未连库核实。mvn -o test-compile 绿。mvn test + JaCoCo 报告;通过标准=0 真红(预期红除外)+ JaCoCo 行覆盖率 ≥80%。P5 · 登录态 E2E 无凭据(执行阻塞)
MACHINE_JSON_PATH 未注入,仅能跑通无登录探活(2/2 可达渲染)。tests/e2e/*.spec.js 多需登录态)无可用凭据夹具。playwright test 登录态套件绿;通过标准=关键业务流(登录→核心页面→提交)全绿且无凭据泄露。tests/e2e/api/nonfunc-* 等登录态 API 业务流未实跑(无凭据)。/health 200 但 /chat 000,环境 429/401 红)需授权联网复验。| 项 | 为何需授权 | 测试设计(已备,待授权执行) |
|---|---|---|
| 依赖漏洞扫描(SCA) | 需访问公网漏洞库/下载元数据 | npm audit / mvn dependency-check 离线缓存优先;公网元数据需授权 |
| 安全 DAST / 渗透 | 打到目标环境,公网 | 对内网 192.168.16.251 跑 ZAP baseline;出高风险项清单 |
| 性能压测 | 打远端/产生负载,公网 | 对 /api/health/*、/admin 登录态做阶梯并发;采集 P95/错误率 |
| 登录态深度 E2E | 需注入只读凭据 | 配置 MACHINE_JSON_PATH 后跑 playwright.config.live.js 业务流 |
| 后端连库全量+JaCoCO | 需本地 MySQL 3306 或夜间节点 | 夜间编排 mvn test + JaCoCo;或起 3306 后连库 |
| LangGraph 9000 pytest | 需 251 节点 + AI 凭据 | 授权后 pytest -q 全量对齐,隔离 AgnesAI 配额/key 问题 |
⛔ 有条件通过(与 R168/R169 稳态持平,零新增回归)。
mvn -o test-compile GREEN;E2E 无登录冒烟 2/2 可达渲染。复评条件(满足后转「通过」):
admin.referral 测试(P2);执行纪律:未访问外部公网;未改/未提交/未推送生产源码与被审查代码;未安装依赖;凭据未以明文出现;供应商/仓库资料未明确信息一律标「需核实」,无编造。仓库零写入(仅本报告与自动化记忆更新)。