本汇报按《测试负责人工作汇报模板》填写。R176 为快件实跑轮:窗口
8916ced73..eb49fb42e(R175 汇报 → 远端 auto bump)后端/前端/langgraph 源码零变更(仅 cfc-web 版本号/CHANGELOG bump)→ 后端全量采信 R175 刚完成的实时数据,其余七套件全部本轮实测(0 采信)。 对比基线 R175(8916ced73):全站 3979 例 / 3889 过(97.74%,剔 skip 98.36%);langgraph@251 44/51(7 红全 429/401 环境,较 R175 46 过恶化 -2,非代码回归);浏览器 28/28 + 2 跳;线上 API 25 过 / 7 跳 / 0 红;前端 609/3/12、管理端 116/116、根级 7/16 全部零漂移;SRS/场景窗口零变更 → 用例无需更新(G12 ✅);门禁 不通过(承袭)。
| 项目 | 内容 |
|---|---|
| 汇报人 | 测试负责人(自动化测试闭环任务) |
| 汇报周期 | 2026年11月12日 21:32 ~ 21:55(第 176 轮) |
| 基线 | cfclub @ eb49fb42e(rebase 齐平 origin/cfclub) |
| 窗口内需求变更 | 零——R175 后无 SRS/场景/用例提交 |
| 窗口内源码变更 | 零功能源码;仅 cfc-web auto bump(版本号/CHANGELOG/package-lock) |
| 负责模块/单元 | 全站:cfc-backend JUnit(采信 R175)· 管理端 admin@189 · 小程序 H5/shop/health/dx@本机 · cfc-langgraph@251 · cfc-web/cfc-frontend Jest · 根级黑盒 · 线上 API 非功能层 |
| 指标 | 数量 | 填写说明 |
|---|---|---|
| 本轮新增测试用例数* | 0 个 | SRS/场景窗口零变更,无需新增;SC 基线 244 承袭 R174 入册 |
| 本轮验证执行测试数* | 3979 个 | 后端 JUnit 3103(采信 R175)+ 前端 Jest 624 + 管理端 116 + langgraph 51 + 浏览器 30(28 过 + 2 跳)+ 线上 API 32(25 过 + 7 跳)+ 根级 23 |
| 用例通过率 | 97.74%(3889/3979;剔除 skip 98.36%) | 红 65 / 跳 25,明细见 §四 |
| 用例台账 | tests/test-cases/ 16 份(承袭 R174) |
场景 218 / SC 基线 244 / TC 表行 882+ |
| 指标 | 数量 | 填写说明 |
|---|---|---|
| 分派任务数* | 3 个 | R176-1 → opencode-189(admin-desktop 5/5 EXIT=0,1.3m);R176-2 → opencode-251(langgraph pytest 44/51,120.57s);R176-3 → 本机串行(2 套 Jest + 4 组浏览器 + API 层 + 根级) |
| 恢复智能体会话数* | 0 个 | 189/251 均首派成功 |
| 当前在用会话数 | 0 个 | 本轮快件全部结束,无长任务在跑 |
| 会话标签 | 会话 ID/地址 | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
|---|---|---|---|---|---|---|
opencode-189 |
192.168.16.189:4090 | done | admin-desktop UI E2E | 已完成(1.3m) | C:\code\cfc\tests |
5/5 EXIT=0(连续第 15 轮首跑即绿) |
opencode-251 |
192.168.16.251:4096 | done(本会话派发) | langgraph pytest 51 例 | 已完成(120.57s) | /sc-data/cfc/cfc-langgraph |
44 过 / 7 红;节点 HEAD eb49fb42e;7 红全 429/401(环境型,B-142-2 第 10 轮恶化) |
local-browser |
本机进程 | done | fe / shop / health / dx | 已完成 | d:\cfc\tests |
fe 6/6、shop 4/4、health 13/13、dx 2 skip(端点 404) |
local-api |
本机进程 | done | 线上 API 冒烟/安全/性能兼容/追溯 | 已完成(11.6s) | d:\cfc\tests |
25 过 / 7 跳 / 0 红 |
local-jest |
本机进程 | done | cfc-frontend + cfc-web + 根级 | 已完成 | cfc-frontend / cfc-web / tests |
fe 609/3/12(3 预期 RED)、web 116/116、根级 7/16(9082 未起,B-36 第 62 轮) |
local-backend |
采信 R175 | done(采信) | 后端全量 mvn -o -B clean test |
R175 已跑(40:12) | d:\cfc\cfc-backend |
3103 例 / 3060 过 / 39 红 / 4 跳,窗口零源码变更 |
| 指标 | 数量 | 填写说明 |
|---|---|---|
| 新测试发现问题数* | 0 个(产品缺陷) | 7 红全归因环境(429/401 上游配额),无新增代码缺陷 |
| 已解决测试相关问题数* | 1 个 | B-126 自处置:251 节点清理 2 组历史残留卡死 pytest(r150 挂 48min / r174 挂 1h42m),消除资源抢占与「收集/执行差」假象 |
| 待解决测试相关问题数 | 延续 R175 清单(P0×2 / P1×5 / P2×4) | ① B-142-2 langgraph 上游 429/401(P0,本轮红 5→7 恶化);② B-152-1/2 CI 排除清单双向失真(P0/P1);③ B-173-2 API 层入口默认收集 990 例(P1);④ B-156-1 nutrition_age_dosage 建表 SQL(P1);⑤ B-162-1 3 类未入库测试文件(P1);⑥ S-cfc-166/168/169 契约预期 RED(P1);⑦ B-173-1 safe-delete 守卫(P2,--output 规避中);⑧ B-173-3 后端全量耗时(P2);⑨ B-126 EXIT 落盘失效(P2,本轮第 9 轮复现);⑩ B-95/B-DX-1/B-36 延续 |
| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
|---|---|---|---|---|---|---|
| (本轮提交,见 commit 后补全) | 全站巡检 R176 | 汇报 | 报告/运行日志/通知/blockers/3 台账 | cfclub | ✅ 本轮推送 | 测试结果有变化(langgraph 46→44,B-142-2 恶化)→ 提交并通知研发 |
| 阶段 | 键数 | 备注 |
|---|---|---|
| UNTRACKED | 0 | 窗口零新增规格 |
| RED | 8 | 承袭研发口径(含 S-cfc-166/168/169 契约 16 例待实现) |
| YELLOW | 63 | 承袭 R175 |
| GREEN | 8 | 承袭 |
| DONE | 15 | 承袭 |
| 合计 | 94 | 与研发汇报口径一致 |
| 数据源 | 读取键数 | 是否正常 | 备注 |
|---|---|---|---|
| 需求侧(⏳ wish) | 0 | 正常 | SRS 目标池未启用(CFC 声明配置) |
| 契约常量(contract) | 多组 | 正常 | 契约测试类跨轮核验正常 |
| 测试用例引用(test_case_map) | 155+ | 正常 | 台账扫描正常(跨源 4426) |
| 执行结果回填(case_results) | 1185 条 | 正常 | 侧车未重写,保留既有回写 |
| 项 | 内容 |
|---|---|
| 上次审查 | R175(2026-11-12 21:20,提交 8916ced73),结论「不通过(承袭)」,全量 3979/3891(97.79%),langgraph 46/51 红 5 |
| 遗留缺口 | 后端存量 18 红(零漂移第 22 次)· langgraph 环境红 · 根级 16 红(9082 未起)· CI 漏拦 8 类 · 3 未入库测试 · B-126 EXIT 未落盘 |
| 本次是否改善 | langgraph 恶化:46→44 过(红 5→7,intent 2→4);其余六套件逐项零漂移;B-126 残留进程自处置(清理 2 组) |
| 教训应用 | ① 251 派发用 MSYS2_ENV_CONV_EXCL=LOG + 写死 LOG 路径(B-173/B-126 教训:环境变量被 MSYS 转 Windows 路径致日志恒缺失);② 派发前 ps -eo pid,etime,cmd \| grep pytest 检查残留并按 etime 清理(R160/R169/R174 教训);③ Playwright 全部 --output 一次性目录规避 safe-delete(B-173-1);④ 关键结果立即落盘 docs/tdd/_r176_lg_full.log.bak(R160 教训) |
本次为该对象第 176 次审查,有历史记录;上述内容仅作对照,本次结论全部来自本轮实测(后端承袭 R175 同 HEAD 实时数据)。
| 维度 | 内容 |
|---|---|
| 业务定位 | 家庭教育「五维能量」(身/心/智/行/富)测评 + 成长规划 + 商城 + 健康报告解析的微信小程序 + Web 管理端全栈系统 |
| 技术栈 | 后端 Spring Boot 2.7.18 + MyBatis-Plus + Java 8(9082)· 小程序 uni-app Vue2 · 管理端 Vue2 + Element UI(8082)· AI 服务 FastAPI + LangGraph + ChromaDB(9000) |
| 模块结构 | cfc-backend(2121 主源 / 374 测试源含 3 未跟踪)/ cfc-frontend / cfc-web / cfc-langgraph / dan/danshop / tests |
| 关键路径 | 登录(微信/direct-register)→ 家庭与成员 → 五维测评/能量 → 成长规划(规划师)→ 商城订单/优惠券/退款 → 健康报告上传解析 → AI 对话(仅会员可见) |
| 测试现状 | 后端 3103 例(采信 R175,98.61%);前端 Jest 624;管理端 116;浏览器 28+2skip;API 层 32;langgraph 51;根级黑盒 23 |
| 质量目标 | 全量通过率 ≥98%、浏览器 E2E 100%、langgraph 100%、锚点覆盖率 ≥80%、CI 硬门禁可用 |
| 风险点 | LLM 上游配额(429/401,本轮恶化)· 契约 RED 批次(16 例)· 数据库迁移静默失败 · CI 排除清单失真 · 未入库测试资产 · 251 残留进程堆积(本轮自处置 2 组) |
| # | 测试类型 | 状态 | 本轮证据 |
|---|---|---|---|
| 1 | 单元测试 | ✅ 已发现 | 后端 3103 例(采信 R175,98.61%);前端 Jest 624(609 过);管理端 116/116 |
| 2 | 测试覆盖率 | ⚠️ 部分 | 扫描口径 456/1974 handler = 23.1%(covered 34 / partial 200 / uncovered 130);后端 JaCoCo 未配置 → 行覆盖无法量化(G-170-3 延续) |
| 3 | 变异测试 | ❌ 未发现 | 仓库无 PIT/Stryker 配置;离线档无工具(未实测,不得视为通过) |
| 4 | 集成测试 | ✅ 已发现 | 后端 integration/**(含 GrowthPublicEndpointMappingTest 5E—未入库 B-162-1) |
| 5 | 契约测试 | ✅ 已发现 | 后端 *ContractTest 多组(含 S-cfc-166/168/169 预期 RED);API 层 32 例 0 红 |
| 6 | 接口 API 测试 | ✅ 已发现 | 线上 32 例:25 过 / 7 跳 / 0 红 |
| 7 | 系统 / 端到端 | ✅ 已发现 | 浏览器 28/28(189 admin 5 + 本机 fe 6 / shop 4 / health 13)+ dx 2 skip |
| 8 | 验收 UAT | ⚠️ 待核实 | 无独立 UAT 用例库;以 16 份台账近似验收口径 |
| 9 | BDD 规格 | ❌ 未发现 | 无 .feature / Cucumber 资产 |
| 10 | 冒烟测试 | ✅ 已发现 | api-smoke 4/4 全绿 |
| 11 | 性能测试 | ⚠️ 部分 | nonfunc-perf-compat.spec.js 4 例(1 过 3 跳)线上实跑;压测未授权未执行 |
| 12 | 可靠性测试 | ⚠️ 部分 | INVALID/502 风暴历史处置;本轮无环境风暴 |
| 13 | 安全测试(SAST) | ⚠️ 部分 | nonfunc-security.spec.js 线上 11 例 0 红(XSS/非法上传);SAST 扫描未授权 |
| 14 | 安全测试(DAST/渗透) | ❌ 未发现 | 未授权联网执行 |
| 15 | 兼容性测试 | ⚠️ 部分 | 浏览器 E2E 仅 Chrome/Chromium 通道;跨浏览器矩阵未实测 |
| 16 | 可用性测试 | ⚠️ 部分 | health/dx/shop/frontend 游客流覆盖;专业可用性评审未执行 |
| 17 | 无障碍测试 | ❌ 未发现 | 无 axe/Lighthouse 资产 |
| 18 | QA 流程与度量 | ✅ 已发现 | 本轮台账三件套刷新(discovery 23.1% / inventory 4426 / automation-status) |
| 19 | 全项目代码审查 | ⚠️ 部分 | 历轮域报告 3/8 落盘;代码审查结论限于台账与红类归因 |
| 20 | 回归测试 | ✅ 已发现 | 本轮与 R175 逐项零漂移比对(G13 存量红第 22 次);前端 3 RED + 后端 16 预期 RED 为 TDD 常态 |
| 套件 | 总数 | 通过 | 失败 | 跳过 | 说明 |
|---|---|---|---|---|---|
| 后端 JUnit(采信 R175) | 3103 | 3060 | 39(33F+6E) | 4 | 存量 18 零漂移第 22 次 + 未入库 GrowthPublic 5E + 契约预期 RED 16 |
| cfc-frontend Jest | 624 | 609 | 3 | 12 | 3 全预期 RED(S-cfc-132/133),零漂移 |
| cfc-web Jest | 116 | 116 | 0 | 0 | 全绿,零漂移 |
| langgraph@251 | 51 | 44 | 7 | 0 | 较 R175 恶化 2 例:auto_tag 3 + intent 4,全 429/401 环境(B-142-2 第 10 轮);EXIT 行缺失(B-126 第 9 轮) |
| 浏览器 E2E | 30 | 28 | 0 | 2 | 189 admin 5/5 EXIT=0(1.3m)/ 本机 fe 6、shop 4、health 13(TC-HP-U01~03 全 401);dx 2 skip(B-DX-1) |
| 线上 API | 32 | 25 | 0 | 7 | 零漂移 |
| 根级黑盒 | 23 | 7 | 16 | 0 | 9082 未监听(B-36 第 62 轮) |
| 合计 | 3979 | 3889 | 65 | 25 | 通过率 97.74%(剔 skip 98.36%) |
变化项(vs R175 3891 过 / 63 红):langgraph 环境红 5→7(-2 过),全量红 63→65,其余零漂移。非代码回归(红因均为上游 429/401,与端口代码无关;251
/health200)。
| 用例 | 根因 | 定性 |
|---|---|---|
| test_auto_tag_content_relevance / short_content / empty_content | 429 AgnesAI free limit + 401 ****ab12 invalid |
环境型(配额/密钥),B-142-2 第 10 轮 |
| test_classify_analysis / classify_recommend / classify_mind / classify_health | 429 free limit(intent_classifier.py:62 兜底 chat) |
环境型(配额,由 2 扩至 4) |
ECONNREFUSED 127.0.0.1:9082(B-36 第 62 轮,后端未启动的历轮环境项)。| 序号 | 建议标题 | 问题描述 | 根因分析 | 建议方案 | 优先级 | 状态 |
|---|---|---|---|---|---|---|
| 1 | langgraph 上游 Token 与配额恢复 | 51 例中 7 红全落 429 AgnesAI free limit + 401 ****ab12 invalid,红集合由 5 扩至 7(intent 2→4) |
免费额度上限(1req/3min)+ 密钥失效(****ab12) |
251 节点更新合法 Token / 升级付费套餐;恢复后连续 2 轮全绿销号 | P0 | 待评估 |
| 2 | B-126 EXIT 落盘修复 | 251 pytest 日志收尾仍无 EXIT= 行(第 9 轮复现),无法据退出码判定正常关闭 |
kick 串 rc=$?; echo EXIT=$rc 重定向在 setsid 分离进程下未写入日志文件 |
改用 bash -c "... ; rc=$?; echo EXIT=$rc" >> LOG 2>&1 整体重定向;或派发器 wait 到 exited 再读 status |
P2 | 待评估 |
| 3 | CI 排除清单矫正(承袭) | BACKEND_OBSERVED_CLASSES 漏拦 8 类 + 陈旧已绿 26 类 → backend-blocking-junit 必红 |
清单与红类集合长期脱节 | 按 R175/R176 实测红类集合重生成清单 | P0 | 待评估 |
| 4 | 后端全量耗时(承袭) | R173 51:52 劣化,R174/R175 回 40:12 但仍偏高(前 6 类占 45%) | 上下文缓存未复用 + @EnableScheduling | AbstractSpringTest 复用上下文缓存 | P2 | 待评估 |
| 阻塞项 | 影响范围 | 阻塞类型 | 处置进展 | 需要协调 |
|---|---|---|---|---|
| langgraph 上游 429/401(B-142-2) | AI 链路(chat/analyze/intent/auto_tag) | 环境/研发 | 待处理(本轮红 5→7 恶化) | 251 换 Token + 配额 |
| 根级黑盒 9082(B-36) | 黑盒 23 例 | 环境 | 待处理(第 62 轮) | 无(服务未启动系环境常态) |
| 204 节点失联(B-95) | 第四派发节点 | 运维 | 待处理(第 36 轮) | 运维 |
| CI 口径失真(B-152-1/2) | CI 硬门禁 | CI/研发 | 待处理(第 10 轮) | 研发 |
| 计划项 | 预计完成时间 | 前置依赖 | 备注 |
|---|---|---|---|
| 续盯 langgraph 红集合(期望 429 恢复全绿) | 下轮巡检 | 251 Token/配额 | B-142-2 观察第 10 轮,本轮恶化 |
| 快件实跑 + 台账刷新 | 下轮巡检 | 无 | 沿用采信纪律 |
| SRS/场景变更核查 | 下轮巡检 | 无 | G12 门 |
| 问题 ID | 能力键/任务号 | 问题类型 | 路由去向 | 登记时间 | 处置状态 | 关联 sha |
|---|---|---|---|---|---|---|
| (本轮无新增产品缺陷) | — | — | — | — | — | — |
| B-176-1(自处置闭环) | 251 残留 pytest 2 组 | 测试工具/环境 | 测试自处置 | 2026-11-12 21:55 | 已闭环(kill r150/r174 残留,重派成功) | — |
模板版本:v1.1(2026-11-03) | 汇报轮次:R176(2026-11-12 21:55 交付)