|
|
@@ -0,0 +1,148 @@
|
|
|
+# 测试闭环报告 · 每小时 · 2026-11-09 08:28(review 档 · 内网已授权)
|
|
|
+
|
|
|
+> 主理人:陆谨(软件测试专家团)|对象:浠艾福 XAF(d:/cfc)|执行档:review(已授权内网 `/admin`+`/frontend`;不联网)
|
|
|
+> HEAD = `ffbd1b5fd`|上次本对象轮 = 2026-11-09 02:45(HEAD `65758830a`)|两轮间 +43 commits
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 1. 执行范围
|
|
|
+
|
|
|
+| 模块 | 动作 | 范围 | 结果 |
|
|
|
+|------|------|------|------|
|
|
|
+| cfc-web(Vue2 管理端单测) | `jest --ci` | 17 套 / 116 例(mock API) | ✅ 全绿 |
|
|
|
+| cfc-frontend(小程序 H5 单测) | `jest --ci` | 26 套 / 426 例 | ⚠️ 4 套 RED(预期)/ 22 套绿 |
|
|
|
+| cfc-backend(Spring Boot) | `mvn test` / `test-compile` | 全量 339 测试源 | ⛔ 未实测(mvn 缺失) |
|
|
|
+| E2E(内网 /admin + /frontend) | Playwright 1.61.1 | admin-live + frontend-live | ⛔ 未实测(工具链版本冲突) |
|
|
|
+| 覆盖率(JaCoCo) | 后端 | — | ⛔ N/A(mvn 缺失,离线插件不可用) |
|
|
|
+| 安全/性能/DAST/依赖扫描 | 公网 | — | ⛔ 未授权未执行 |
|
|
|
+
|
|
|
+**约束遵守**:未访问外部公网;未修改/提交/推送任何生产源码或被审查代码;凭据仅经环境变量注入,报告与日志均不出现明文口令/令牌;现有 Jest 用 axios-mock-adapter mock API,不据此断言真实服务端行为。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 2. 用例总数 · 通过 · 失败
|
|
|
+
|
|
|
+| 集合 | 套件 | 用例 | 通过 | 失败 | 跳过 | 备注 |
|
|
|
+|------|------|------|------|------|------|------|
|
|
|
+| cfc-web Jest | 17 | 116 | 116 | 0 | 0 | 全绿,稳定(对比上轮 17/116 绿) |
|
|
|
+| cfc-frontend Jest | 26 | 426 | 372 | 51 | 3 | 22 套绿;4 套失败=预期 TDD-RED |
|
|
|
+| E2E(内网) | — | 11(设计) | 0 | 0 | 11 | 未实跑(工具链冲突,降级设计) |
|
|
|
+| 后端 mvn | — | 339(源) | — | — | — | 未实测(缺 mvn) |
|
|
|
+
|
|
|
+**前端 51 失败分解(全部为预期 TDD-RED,非缺陷回归)**:
|
|
|
+- `diet/recommendation.healthAdjustUi.test.js`(食材推荐健康问卷个性化,未实现)
|
|
|
+- `pages/diet/recommendation.participantSelect.test.js`(参与人选择,未实现)
|
|
|
+- `pages/diet/recommendation.uiRework.test.js`(商城饮食 UI 重构,TDD-RED)
|
|
|
+- `pages/signature/signature.canvas2d.test.js`(签名 v2 重写,S-cfc-116 扩 RED 覆盖)
|
|
|
+
|
|
|
+> 对比上轮(02:45,25 套/280=228 过/49 败/4 RED/3 跳):本轮测试总量增至 426(新增约 146 绿用例,主要来自谷禾归因契约等),失败仅 +2(S-cfc-116 对签名 v2 扩 2 条 RED 断言)。**4 个 RED 套件与上轮一致,无绿色套件出现游离失败 → 无新增回归。**
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 3. 覆盖率
|
|
|
+
|
|
|
+- **后端 JaCoCo**:⛔ N/A。本沙箱 PATH 无 `mvn`、无 `mvnw`,仅 JDK 1.8.0_25。无法运行 `mvn test` 或离线 `test-compile`。最近一次实测基线(R97 2026-11-09 06:10):全量 **2802 例 / 94.75%**,143 红 = 预期 RED 94 + 装置 37 + 产品 12。本轮回环**未重验**,不视为通过。
|
|
|
+- **前端 Jest 覆盖率**:本轮回环未采集(`test:coverage` 可用,建议下轮补采);仅采集了通过/失败。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 4. 新增风险(本轮回环 vs 上轮)
|
|
|
+
|
|
|
+| # | 新增/变化 | 说明 |
|
|
|
+|---|----------|------|
|
|
|
+| R1 | 🔴 E2E 工具链冲突(新) | 内部目标可达(curl `/admin` `/frontend` 均 302),但 `tests/node_modules/@playwright/test@1.61.1` 与根 `d:/cfc/node_modules/@playwright/test@1.63.0` 双版本,runner 与 spec 的 playwright-core 注册表错位,报 `test.describe() did not expect to be called here`,无法实跑。上轮(02:45)曾 11/11 绿。推断由近期提交将 playwright 升到 1.63.0 并 hoist 到根目录引起。 |
|
|
|
+| R2 | 🔴 后端 mvn 缺失(环境回归) | 上轮 `mvn -o test-compile` 成功、R97 全量 2802 例;本轮回环 PATH 已无 mvn。后端验证能力本轮回环归零。 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 5. 测试用例编写产出(依据 SRS/需求变更)
|
|
|
+
|
|
|
+**闸门判定**:扫描本轮回环的 SRS/需求/接口来源 mtime 与 git diff(相对上轮 HEAD `65758830a`):
|
|
|
+- `docs/tdd/SRS.md`、`docs/需求分析/`、`docs/superpowers/specs/`:**均无新增/修改**(最新 mtime 均早于 02:45,已在上轮覆盖)。
|
|
|
+- `docs/superpowers/api/API_REFERENCE.md`:**+1 行**(相对上轮),新增端点文档 `POST /api/health/knowledge/unified/low-side-patch`(低侧判读补丁块子键,T1/L2-2)。
|
|
|
+
|
|
|
+**结论**:该 1 行新增仅“文档化”已落地功能——对应 `T1/L2-2 kb.lowSidePatch`(提交 `b70e24ec5` 实现,并具备专属后端契约测试)。无新增 SRS/需求/spec 文件,且对应功能已有契约覆盖 → **本轮回环不编写新用例,0 落库,零仓库抖动**,与上轮“0 落库跳过编写”策略一致。
|
|
|
+
|
|
|
+> 若后续 `docs/superpowers/specs/` 或 `docs/需求分析/` 出现真正新增/变更需求且尚无对应 RED/GREEN 契约,才触发编写。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 6. 五要素问题清单
|
|
|
+
|
|
|
+### 问题 1 · E2E 回归能力因双 @playwright/test 版本冲突失效(🔴 本轮回环新发)
|
|
|
+① **问题描述**:内部 E2E 目标可达(`/admin`、`/frontend` 均 302),但运行 `admin-live`/`frontend-live` 时 Playwright 报 `Playwright Test did not expect test.describe() to be called here`,0 用例被发现,E2E 无法实跑。
|
|
|
+② **测试 bug 点**:`d:/cfc/node_modules/@playwright/test@1.63.0` 与 `d:/cfc/tests/node_modules/@playwright/test@1.61.1` 双版本共存;runner 加载的 playwright-core 注册表与 spec `require('@playwright/test')` 的实例不一致(典型“两个 @playwright/test 版本”根因)。
|
|
|
+③ **最优修改方案**:统一版本——将 `tests/` 下 Playwright 依赖对齐到 1.63.0(或移除根目录多余 1.63.0,保留 tests 的 1.61.1 单一实例);亦可运行前以 `NODE_PATH` 锁定单一实例。属依赖树维护动作,本闭环**不安装/不改动依赖**,交由仓库维护者处理。
|
|
|
+④ **修改目的**:恢复 E2E 回归能力(上轮 02:45 曾 11/11 绿),保障 `/admin`、`/frontend` 线上冒烟。
|
|
|
+⑤ **问题闭环**:修复后重跑 `admin-live + frontend-live` 应 **11/11 绿**(admin 5/5 含真实登录 TC-A-U04 + 菜单 TC-A-U05;frontend 6/6);通过标准=全部通过且 TC-A-U04 真实登录成功。
|
|
|
+
|
|
|
+### 问题 2 · 后端 Maven 缺失导致后端验证能力归零(⚠️ 环境回归)
|
|
|
+① **问题描述**:本沙箱 `mvn` 不在 PATH、无 `mvnw`,仅 JDK 1.8.0_25;后端 `mvn test`/`test-compile` 无法执行,JaCoCo 覆盖率 N/A。
|
|
|
+② **测试 bug 点**:环境(对比上轮 02:45 `mvn -o test-compile` BUILD SUCCESS、R97 全量 2802 例/94.75%)。
|
|
|
+③ **最优修改方案**:在运行环境恢复 Maven(安装或提供 `mvnw`);本闭环遵循“不安装依赖”约束,不自行补装。
|
|
|
+④ **修改目的**:恢复后端单元/契约实测,持续验证 143 预期红(RED 94 + 装置 37 + 产品 12)的归零进度与 JaCoCo≥80% 门禁。
|
|
|
+⑤ **问题闭环**:mvn 就绪后 `mvn -o test` 应≈94.75%(R97 基线)且“真红”均为预期 RED;通过=`真红==预期RED` 且 JaCoCo≥80%。
|
|
|
+
|
|
|
+### 问题 3 · 51 个 TDD-RED 契约待实现转绿(沿用历史债,非本轮回环引入)
|
|
|
+① **问题描述**:cfc-frontend 4 套失败(diet 个性化 ×3 + 签名 v2 扩展 RED ×1),共 51 失败,属 TDD-RED 预期红,非缺陷。
|
|
|
+② **测试 bug 点**:`cfc-frontend/__tests__/pages/diet/*`、`__tests__/pages/signature/signature.canvas2d.test.js`(S-cfc-116 扩 RED)。
|
|
|
+③ **最优修改方案**:对应研发按 RED 契约实现 diet 个性化与签名 v2 重写,使套件随实现转绿(历史 B-81 曾对签名 v2 验证 11/11 绿,S-cfc-116 追加 RED 待实现)。
|
|
|
+④ **修改目的**:清偿 TDD-RED 技术债,消除“预期红”噪声,恢复纯绿基线。
|
|
|
+⑤ **问题闭环**:实现落地后该 4 套应全绿(51 失败→0);通过=4 套全绿且无新增游离失败。
|
|
|
+
|
|
|
+### 问题 4 · JaCoCo≥80% 门禁长期 N/A(沿用)
|
|
|
+① **问题描述**:后端行/分支覆盖率因 mvn/JaCoCo 离线缺失长期无法实测,门禁阈值 80% 无证据支撑。
|
|
|
+② **测试 bug 点**:构建链(pom JaCoCo 插件 / 离线仓库)。
|
|
|
+③ **最优修改方案**:在具备 mvn + 离线 JaCoCo 的环境执行 `mvn test` 并采集报告。
|
|
|
+④ **修改目的**:以量化覆盖率佐证后端质量,达成门禁。
|
|
|
+⑤ **问题闭环**:采集到 JaCoCo 报告且行/分支≥80% 即达标。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 7. 待核实项
|
|
|
+
|
|
|
+- 后端 143 红当前是否仍**全部**为预期 RED(mvn 缺失未重验,沿用 R97 基线)。
|
|
|
+- `POST /api/health/knowledge/unified/low-side-patch` 契约是否已由 `kb.lowSidePatch` 后端套件覆盖(基于提交 `b70e24ec5` 推断,未实跑后端验证)。
|
|
|
+- E2E 登录态:本轮回环未实跑,无法确认 `/admin` 真实登录是否仍 5/5(上轮 02:45 为绿,本次仅探活 302 可达)。
|
|
|
+- 前端 Jest 覆盖率数值未采集(建议下轮以 `test:coverage` 补充)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 8. 需用户单独授权才能继续的项(未授权未执行 · 附测试设计)
|
|
|
+
|
|
|
+| 项 | 档位 | 未执行原因 | 测试设计 |
|
|
|
+|----|------|-----------|----------|
|
|
|
+| 依赖漏洞扫描(npm audit / OWASP Dependency-Check) | execute(公网) | 未授权 | 在隔离环境对 cfc-web/cfc-frontend/cfc-backend 跑 `npm audit`/`mvn org.owasp:dependency-check`,输出 CVE 清单与修复建议。 |
|
|
|
+| 性能压测(后端/内网负载) | execute(联网/内网负载) | 未授权 | 对内网 192.168.16.251 后端与 `/admin`、`/frontend` 做阶梯加压(k6/Artillery),采集 P95 延迟、错误率、CPU/DB 连接。 |
|
|
|
+| DAST 黑盒安全扫描 | execute(公网) | 未授权 | 对内网授权面跑 ZAP baseline,覆盖越权/注入/敏感信息泄露。 |
|
|
|
+| LangGraph 9000 报告解析复验 | review(需 AI+凭据) | 未授权 | 上传样例健康报告 PDF,断言解析入库字段正确;需 AI 服务可达 + 测试凭据。 |
|
|
|
+| JaCoCo 覆盖率采集 | review(需 mvn+离线插件) | 缺失/未授权 | 恢复 mvn 后 `mvn test` 生成 `target/site/jacoco`,核对行/分支≥80%。 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 9. 门禁结论
|
|
|
+
|
|
|
+**结论:⛔ 有条件通过(有条件)**
|
|
|
+
|
|
|
+- **产品质量层(单元/组件)健康**:cfc-web 116/116 绿、cfc-frontend 372/426(失败均为预期 TDD-RED,无新增回归),双绿稳定。
|
|
|
+- **验证能力层出现两处环境回归**:① E2E 因双 `@playwright/test` 版本冲突无法实跑(R1);② 后端 mvn 缺失无法实测(R2)。二者为**工具链/环境**问题,非产品缺陷,但导致本轮回环无法复验 E2E 11/11 与后端 94.75% 基线。
|
|
|
+- **长期未闭环**:51 TDD-RED 待实现、JaCoCo≥80% N/A、授权安全/性能/DAST/依赖扫描未执行、LangGraph 9000 待复验。
|
|
|
+
|
|
|
+**复评条件(全部满足方转“通过”)**:
|
|
|
+1. E2E 工具链统一 @playwright/test 版本后,admin-live + frontend-live 实跑 **11/11 绿**(含 TC-A-U04 真实登录)。
|
|
|
+2. 恢复 mvn 后后端 `mvn -o test` 真红**全部为预期 RED**,且 JaCoCo 行/分支 **≥80%**。
|
|
|
+3. 51 个 TDD-RED 随实现转绿(4 套全绿)。
|
|
|
+4. 用户单独授权后完成依赖漏洞扫描、性能压测、DAST,且关键项无高危阻断。
|
|
|
+5. LangGraph 9000 复验通过(如需纳入门禁)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 附:E2E 测试设计(本轮回环降级产物,供恢复后直跑)
|
|
|
+- **授权面**:仅 `http://cfc.iwintrue.com/admin`(cf-web)、`http://cfc.iwintrue.com/frontend`(cf-frontend);不覆盖 `/api/health`、`/shop` 等未授权面。
|
|
|
+- **用例**:`admin-live.spec.js` TC-A-U01~U06(登录页渲染、真实登录 U04、主框架菜单 U05 等);`frontend-live.spec.js` TC-F-U01~U06(首页渲染、TabBar 四项、游客导航)。
|
|
|
+- **凭据**:环境变量 `CFC_ADMIN_PHONE`/`CFC_ADMIN_PASSWORD`(缺省测试环境公共账号);**禁止明文写入报告/日志**。
|
|
|
+- **探活**:curl `/admin`、`/frontend` 均 302(可达,重定向登录页)。
|
|
|
+- **通过标准**:11/11 绿,TC-A-U04 真实登录成功、TC-A-U05 菜单可见。
|
|
|
+- **运行方式(恢复后)**:`cd d:/cfc/tests && node_modules/.bin/playwright test --config <统一版本后的配置>`(须先消除根与 tests 双版本)。
|
|
|
+
|
|
|
+*本报告未提交、未推送;仅写入测试目录 `docs/tdd/test/`。*
|