|
@@ -0,0 +1,152 @@
|
|
|
|
|
+# 测试闭环报告 · 第 155 轮(2026-11-11 ~23:01 GMT+8)
|
|
|
|
|
+
|
|
|
|
|
+> **执行档 review(离线 + 内网已授权)**:未访问外部公网;未安装依赖;未改生产源码/测试。
|
|
|
|
|
+> **授权内网范围**:`cfc.iwintrue.com`(hosts→192.168.16.251)`/admin`、`/frontend`;`192.168.16.189`、`192.168.16.251` opencode 节点。
|
|
|
|
|
+> **零漂移轮策略**:本轮窗口源码零变更 → 浏览器+langgraph 真跑;后端/前端/管理端采信 R153/R154 基线。
|
|
|
|
|
+> 仓库写入范围:本报告 + blockers/notice/automation-run(均落 `docs/tdd/`),生产源码零改动。
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 1. 历史审查记录(对照,非本次结论依据)
|
|
|
|
|
+
|
|
|
|
|
+- **对象**:周期性自动化闭环 R148–R155 连续稳态轮。上一轮 R154 @ 22:19 结论 **⛔有条件通过**(G7 langgraph 4 红 + EXIT=124 挂起 B-154-1 新增)。
|
|
|
|
|
+- **遗留缺口**(逐轮沿用,本次未新增):后端 17 红未连库核实、cfc-web 覆盖率<20%(G7)、B-142-2 langgraph LLM 上游抖动、B-154-1 pytest 挂起、安全/性能/依赖扫描未授权、CI 未固化(G11)、admin.referral(TR-25)零覆盖。
|
|
|
|
|
+- **本次非首次审查**,结论以本轮实际取证为准。
|
|
|
|
|
+
|
|
|
|
|
+## 2. 项目画像速览(只读)
|
|
|
|
|
+
|
|
|
|
|
+- **业务**:浠艾福 XAF 家庭成长平台(家长/孩子/规划师三端 + 管理端 + 商城 + AI 解析)。
|
|
|
|
|
+- **技术栈**:cfc-backend(Spring Boot 2.7.18/Java8/MyBatis-Plus, 9082)、cfc-web(Vue2/ElementUI 管理端 8082)、cfc-frontend(uni-app 微信小程序)、cfc-langgraph(Python/FastAPI/LangGraph, 9000)。
|
|
|
|
|
+- **关键路径**:JWT 鉴权 `/api/**`、统一 `@PostMapping`、AiGateway 调 LangGraph、健康报告 PDF 上传解析、五维能量、测评订单、家庭关系。
|
|
|
|
|
+- **本次可测范围**:cfc-web/cfc-frontend Jest(本地可跑)、后端离线编译、内网 E2E(189 admin + 本机 fe/shop/health)、langgraph@251 pytest。
|
|
|
|
|
+
|
|
|
|
|
+## 3. 20 类测试覆盖矩阵(三态)
|
|
|
|
|
+
|
|
|
|
|
+| # | 测试类型 | 状态 | 本轮证据 |
|
|
|
|
|
+|---|----------|------|----------|
|
|
|
|
|
+| 1 | 单元测试 | 已实测(引用) | cfc-web 116/116、cfc-frontend 602/617(采信 R154) |
|
|
|
|
|
+| 2 | 组件测试 | 已实测(引用) | cfc-web/cfc-frontend `__tests__` 组件用例 |
|
|
|
|
|
+| 3 | 集成测试 | 已发现(引用) | 后端契约/集成测试 R154 基线 2946 例 |
|
|
|
|
|
+| 4 | 接口 API 测试 | 已发现 | `API_REFERENCE.md` + 后端契约 |
|
|
|
|
|
+| 5 | 系统/端到端 | **已实测** | **浏览器 28/28 全绿**(189 admin 5/5 + 本机 fe 6/shop 4/health 13) |
|
|
|
|
|
+| 6 | 冒烟测试 | 已实测 | langgraph@251 51 例 131.86s 正常收尾 |
|
|
|
|
|
+| 7 | 回归测试 | 已实测 | 浏览器 28/28 零漂移;langgraph 红例 −1 |
|
|
|
|
|
+| 8 | 探索性测试 | 待核实 | 无现成脚本/环境 |
|
|
|
|
|
+| 9 | 契约测试 | 已发现 | 后端 Controller 契约 |
|
|
|
|
|
+| 10 | 性能测试 | 未授权未执行 | execute 档未授权 |
|
|
|
|
|
+| 11 | 可靠性测试 | 已发现(风险) | langgraph 3 红环境性 |
|
|
|
|
|
+| 12 | 安全测试 | 未授权未执行 | 公网/依赖下载未授权 |
|
|
|
|
|
+| 13 | 依赖漏洞扫描 | 未授权未执行 | 同 12 |
|
|
|
|
|
+| 14 | 兼容性测试 | 待核实 | 无矩阵 |
|
|
|
|
|
+| 15 | 可用性测试 | 待核实 | 无指标 |
|
|
|
|
|
+| 16 | 无障碍测试 | 待核实 | 未覆盖 |
|
|
|
|
|
+| 17 | 测试覆盖率 | 已实测(未达标) | cfc-web 9.95% / cfc-frontend 53.57% lines(R154) |
|
|
|
|
|
+| 18 | 质量指标 | 已实测 | 全量 98.49%(见 §4) |
|
|
|
|
|
+| 19 | QA 流程 | 待核实 | CI(G11)未固化 |
|
|
|
|
|
+| 20 | 全项目代码审查 | 待核实 | 本次只读未深度审查 |
|
|
|
|
|
+
|
|
|
|
|
+## 4. 执行范围 / 用例总数·通过·失败
|
|
|
|
|
+
|
|
|
|
|
+| 模块 | 命令 | 总数 | 通过 | 失败 | 跳过 | 结果 |
|
|
|
|
|
+|------|------|------|------|------|------|------|
|
|
|
|
|
+| **浏览器 admin** | `playwright test -c playwright.config.live.js admin-live` | 5 | 5 | 0 | 0 | **EXIT 0 ✅ 1.3m** |
|
|
|
|
|
+| **浏览器 frontend** | `playwright test -c playwright.config.live.js frontend-live` | 6 | 6 | 0 | 0 | **EXIT 0 ✅ 48.6s** |
|
|
|
|
|
+| **浏览器 shop** | `playwright test -c playwright.config.live.js shop-sort-api` | 4 | 4 | 0 | 0 | **EXIT 0 ✅ 6.6s** |
|
|
|
|
|
+| **浏览器 health** | `playwright test -c playwright.config.health.js health-contract` | 13 | 13 | 0 | 0 | **EXIT 0 ✅ 5.2s** |
|
|
|
|
|
+| **langgraph@251** | `.venv/bin/python -m pytest -q --ignore=tests/qna --ignore=tests/test_chat.py` | 51 | 48 | 3 | 0 | **3 failed, 48 passed in 131.86s** |
|
|
|
|
|
+| cfc-web (Jest) | 采信 R154 | 116 | 116 | 0 | 0 | EXIT 0 ✅ 零漂移 |
|
|
|
|
|
+| cfc-frontend (Jest) | 采信 R154 | 617 | 602 | 3 | 12 | 3 红=预期 RED 非回归 S-cfc-30/52/53 |
|
|
|
|
|
+| cfc-backend 编译 | 采信 R153 test-compile | — | — | — | — | EXIT 0 ✅ GREEN |
|
|
|
|
|
+| cfc-backend 全量 | 采信 R153 强制实跑 | 2946 | 2925 | 17 | 4S | 99.29%,源码零变更→零漂移第 12 次 |
|
|
|
|
|
+| 内网 E2E dx-bridge | 采信 R154 | 2 | 0 | 0 | 2 | 404 未部署 B-DX-1 |
|
|
|
|
|
+
|
|
|
|
|
+**全量口径**(沿用历史计算方式):
|
|
|
|
|
+- 总例数 = 5+6+4+13+51+116+617+2946+2 = **3760**
|
|
|
|
|
+- 过 = 5+6+4+13+48+116+602+2925+0 = **3719**
|
|
|
|
|
+- 红 = 3lg + 3fe + 17be + 2dx = **25**
|
|
|
|
|
+- **通过率 = 3719/3760 = 98.91%**(红 25 / 跳 18)
|
|
|
|
|
+- ⚠️ 与 R154 报告数字口径差异:R154 全量 3783/3725=98.47% 为**当轮实跑口径**(fe 617 实跑、后端 2946);本轮为**采信+实跑混合口径**,同比应看红例变化:**langgraph 红 4→3(−1)为唯一变化,其余零漂移**。
|
|
|
|
|
+
|
|
|
|
|
+## 5. 关键变化(vs R154)
|
|
|
|
|
+
|
|
|
|
|
+| 维度 | R154 | R155 | 变化 |
|
|
|
|
|
+|------|------|------|------|
|
|
|
|
|
+| langgraph 通过/红 | 47/4 | **48/3** | ✅ +1 绿 −1 红 |
|
|
|
|
|
+| langgraph 收尾 | **EXIT=124 挂起**(B-154-1) | **EXIT=0 正常**(131.86s) | ✅ **挂起未复现**(观察 1/2) |
|
|
|
|
|
+| langgraph 红例 | auto_tag 2 + intent 2 | auto_tag 3(content_relevance/short_content/empty_content) | auto_tag 3 环境性 |
|
|
|
|
|
+| 浏览器 | 28/28 | **28/28** | 零漂移 ✅ |
|
|
|
|
|
+| 后端全量 | 99.29%(采信) | 99.29%(采信) | 零漂移 ✅ |
|
|
|
|
|
+| 前端 Jest | 602/617 | 602/617(采信) | 零漂移 |
|
|
|
|
|
+| cfc-web Jest | 116/116 | 116/116(采信) | 零漂移 |
|
|
|
|
|
+| dx-bridge | 2 skip | 2 skip | 零漂移 |
|
|
|
|
|
+
|
|
|
|
|
+## 6. SRS/需求变更感知(G12)
|
|
|
|
|
+
|
|
|
|
|
+- **变更检测窗口**:`5ee173916..e81e978a6`(R154→HEAD)。
|
|
|
|
|
+- `git log --oneline` 对 `docs/superpowers/specs | docs/tdd/SRS.md | API_REFERENCE.md | tests/test-cases | tests/user-scenarios` **零命中**。
|
|
|
|
|
+- 唯一变更:cfc-web package bump + 研发汇报 docs(零源码差异)。
|
|
|
|
|
+- **结论**:零 SRS/需求/PRD 变更 → **不编写新测试用例**(G12 合规)。既有浏览器套件(admin/frontend/shop/health 共 28 例)+ langgraph 51 例 + 后端契约 2946 例已覆盖现有需求。
|
|
|
|
|
+
|
|
|
|
|
+## 7. 五要素问题清单(承袭,未新增)
|
|
|
|
|
+
|
|
|
|
|
+**P-1 · langgraph@251 LLM 上游抖动(B-142-2 / B-154-1 延续)**
|
|
|
|
|
+① 问题描述:本轮 langgraph 51 例 3 红全在 `test_auto_tag.py`(content_relevance/short_content/empty_content),根因为 LLM 上游(AgnesAI)返回异常内容——与 R153/R154 同源(429/401 环境性)。
|
|
|
|
|
+② 测试 bug 点:`tests/test_auto_tag.py::test_auto_tag_content_relevance` / `test_auto_tag_short_content` / `test_auto_tag_empty_content`。
|
|
|
|
|
+③ 最优修改方案:① 稳定 LLM 上游凭据(B-142-2 运维 P0);② 连续 2 轮全绿观察销号(B-142-2 观察 0/2);③ B-154-1 pytest 挂起修复(pytest-timeout + teardown 协程泄漏)。
|
|
|
|
|
+④ 修改目的:G7 langgraph ≥ 90% 门禁 + 契约测试与 LLM 抖动解耦。
|
|
|
|
|
+⑤ 问题闭环:连续 2 轮 51/51 全绿或红例 ≤1 且为预期 flaky → 销号。**本轮红 3(较 R154 改善)+ EXIT=124 未复现 → B-142-2 观察 0/2、B-154-1 观察 1/2**。
|
|
|
|
|
+
|
|
|
|
|
+**P-2 · cfc-web 覆盖率不足(G7 存量)**
|
|
|
|
|
+① cfc-web lines 9.95% < 20% 目标。
|
|
|
|
|
+② 测试 bug 点:`cfc-web/src/__tests__/api/config.test.js`(P-9)。
|
|
|
|
|
+③ 方案:补 admin 端核心业务组件/接口单测(FamilyCouponManage、review 模块)。
|
|
|
|
|
+④ 目的:G7 覆盖率门禁 ≥20%。
|
|
|
|
|
+⑤ 闭环:`npm test --coverage` 且 lines ≥20%。
|
|
|
|
|
+
|
|
|
|
|
+## 8. 门禁矩阵(14 条)
|
|
|
|
|
+
|
|
|
|
|
+| 门 | 阈值 | 本轮实测 | 状态 |
|
|
|
|
|
+|----|------|----------|------|
|
|
|
|
|
+| G1 全量通过率 | ≥95% | 98.91% | ✅ |
|
|
|
|
|
+| G2 红例数 | ≤20 | 25(lg 3 + fe 3 + be 17 + dx 2) | ❌ |
|
|
|
|
|
+| G3 前端预期 RED | 已知 3 | 3 | ✅ |
|
|
|
|
|
+| G4 cfc-web 零红 | 0 | 0(采信) | ✅ |
|
|
|
|
|
+| G5 编译 | EXIT 0 | EXIT 0(采信) | ✅ |
|
|
|
|
|
+| G6 浏览器 E2E | ≥26/28 | **28/28** | ✅ |
|
|
|
|
|
+| G7 langgraph | ≥46/51 | **48/51** | ⚠️ 改善但未达全绿 |
|
|
|
|
|
+| G8 契约 | 历史基线 | 与 R154 同 | ✅ |
|
|
|
|
|
+| G9 安全/依赖 | SCA ≥ 中危 0 | 未授权未执行 | ❌ |
|
|
|
|
|
+| G10 节点派发 | ≥1 | **189 + 本机 + 251 = 3** | ✅ |
|
|
|
|
|
+| G11 CI 固化 | 有 | 无(B-152-2 未修) | ❌ |
|
|
|
|
|
+| G12 SRS 变更→用例更新 | 合规 | 零变更→零写入 | ✅ |
|
|
|
|
|
+| G13 后端红例 | ≤17 | 17(采信) | ⚠️ 临界 |
|
|
|
|
|
+| G14 dx-bridge | 已部署 | 404 未部署 | ❌ |
|
|
|
|
|
+
|
|
|
|
|
+**门禁结论:⛔ 有条件通过**——正向 G1/G3/G4/G5/G6/G8/G10/G12;阻断 G2/G9/G11/G14,G7 改善未达全绿。
|
|
|
|
|
+
|
|
|
|
|
+## 9. 变化点与推送决策
|
|
|
|
|
+
|
|
|
|
|
+- **测试结果有变化**:langgraph 红例 4→3(改善)+ EXIT=124 消失(B-154-1 观察项 1/2)+ 浏览器 28/28 连续零漂移。
|
|
|
|
|
+- **决策**:按「测试结果有变化时提交到远程」约定 → **commit + push + 通知研发**(notice 随 commit 入库)。
|
|
|
|
|
+
|
|
|
|
|
+## 10. 复评条件
|
|
|
|
|
+
|
|
|
|
|
+1. **G7 全绿**:B-142-2 修复后 langgraph 连续 2 轮 51/51 全绿(销号)+ B-154-1 连续 2 轮 <300s 正常收尾(销号)。
|
|
|
|
|
+2. **G13 后端**:研发修 17 红存量(含 UserServiceWechatLoginTest 等 CI 必红类)。
|
|
|
|
|
+3. **G11 CI**:研发修 B-152-2(CI 排除清单补 3 类)+ B-152-1(陈旧 26 绿类解禁)。
|
|
|
|
|
+4. **G14 dx-bridge**:部署 dx 2 端点后复跑。
|
|
|
|
|
+5. **G2 红例 ≤20**:随 1–4 同步收敛。
|
|
|
|
|
+
|
|
|
|
|
+## 11. 未实测项
|
|
|
|
|
+
|
|
|
|
|
+- cfc-web/cfc-frontend Jest 全量重跑(采信 R154,源码零变更)
|
|
|
|
|
+- 后端全量 surefire(采信 R153 39:42 强制实跑基线)
|
|
|
|
|
+- dx-bridge 2 例(404 未部署)
|
|
|
|
|
+- 安全/依赖扫描(SCA/DAST/依赖审计)——execute 档未授权
|
|
|
|
|
+- 性能/压力测试——同上
|
|
|
|
|
+- JaCoCo/PIT 变异——无工具
|
|
|
|
|
+- 204 节点浏览器任务——B-95 第 24 轮失联
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+**报告生成**:2026-11-11 23:15 GMT+8 · 测试负责人(cfc-tester)
|