report-test-2026-11-11-R136.md 14 KB

测试负责人工作汇报 · 第 136 轮(2026-11-11 04:45 GMT+8,本自动化触发)

执行档:review(内网 cfc.iwintrue.com/admin + /frontend 浏览器自动化已授权;langgraph@251 实派;未联网装依赖、未启停服务、未改生产代码) 基线 HEAD:8ec11e632(R135 闭环)→ 远端 b094e8b24(仅 bump,R135 后源码零变更)→ 本轮 langgraph 于 251 侧以 b094e8b24 实跑 节点:251:9000=/health ok(在线)|251:4096=200(opencode 在线,本轮实派 pytest)|189:4090=200(本轮恢复 admin 实派 5/5)|204:4090=000(B-95 第 10 轮)|9082=000(B-36 第 35 轮) 分工:本机=浏览器 fe/shop/health + Jest(web/fe/根级)|189=浏览器 admin(恢复实派)|251=langgraph pytest(实派 43 例) 结论:⛔ 不通过(有条件) — 三项历史红线未变(G2/G9/G11);本轮结果有变化:① G10 恢复双节点(189 admin 实派 5/5,R135 仅本机直跑);② langgraph 43 例红 4→5(全 429 环境抖动,非回归);③ 浏览器 28/28、web 116/116 零漂移。


1. 历史审查记录(仅作对照,不作为本轮结论依据)

轮次 时间 后端全量 langgraph@251 浏览器 前端 Jest 结论
R133 11-11 01:16 沿用 R130 33 绿 / 10 环境阻塞(43 例) 28/28 0 红 不通过(有条件)
R134 11-11 02:10 343 类 / 2918 例 / 17 红 = 99.28% 44 绿 / 7 红(环境)/ 51 例 28/28 0 红 / 472 过 / 3 跳 不通过(有条件)
R135 11-11 03:45 采信 R134(源码零变更) 39 过 / 4 红(全环境)/ 43 例 28/28(189 未派发) 16 红(预期 RED)/ 9 跳 / 557 过 / 582 总 不通过(有条件)
R136(本轮) 11-11 04:45 采信 R134(源码零变更) 38 过 / 5 红(全 429 环境)/ 43 例 28/28(189 admin 实派✅) 16 红(预期 RED)/ 9 跳 / 557 过 / 582 总 不通过(有条件)
  • 与 R135 对比的变化(逐项):
    1. G10 节点恢复双线条:189 :4090 恢复 200,本轮实派 admin-desktop 5/5 全绿(2.1m,含滑块+真实登录);R135 中 189 未派发(同受本机串行纪律让位)。浏览器总口径 28/28 不变(189 admin 5 + 本机 fe 6/shop 4/health 13)。
    2. langgraph 红例 4→5(+1):43 例 38 过 / 5 红 / 126.93s;5 红 = test_auto_tag.py 3(content_relevance/short_content/empty_content)+ test_intent.py 2(classify_analysis/classify_recommend)。日志 6 次 AgnesAI_error 429 rate limit → 全部环境红(上游配额窗口抖动),intent_classifier.py:62 仍将 429 兜底为 chat(B-134-4 延续第 3 轮)。窗口内 cfc-langgraph/app 与 tests 零 commit。
    3. 前端 16 红 / web 116 / 根级 16 红 与 R135 逐项零漂移(B-135-1 预期 RED 延续;B-36 第 35 轮)。

2. 项目画像速览

  • 业务:浠艾福 XAF —— 家庭教育 SaaS(家庭成员 / 五维能量 / 成长规划师 / 健康报告解析 / 商城分佣 / AI 管家 / 知识中心标签筛选 / 食材推荐)。
  • 技术栈:cfc-backend(Spring Boot 2.7.18 + MyBatis-Plus + Java 8,9082)· cfc-web(Vue2 + ElementUI,8082)· cfc-frontend(uni-app H5/小程序)· cfc-langgraph(FastAPI + LangGraph + Chroma,9000,部署 192.168.16.251)· dan/danshop(独立商城 8888)。
  • 关键路径:登录/家庭邀请 → 五维测评 → 成长任务审批 → 健康报告上传解析 → 商城下单分佣 → AI 对话 → 知识中心标签筛选(S-cfc-131)→ 食材推荐/今日食谱。
  • 测试现状:后端 343 类 / 2918 例(采信 R134);前端 Jest 37 套件 / 582 例(16 红预期 RED);管理端 Jest 17 套件 / 116 例;浏览器 live 28 例;langgraph 43 例(本轮 251 实派);根级黑盒 23 例。
  • 质量目标:20 类全覆盖、G1≥95%、G2≤10 红、G6 28/28、G7 0 红、G9≥80%。
  • 风险点:后端 17 红(产品/契约待裁决:EnergySystem 6×500、DimensionRegistryMap 3、Orchestration 2、WechatLogin 2、MembershipPay/PaymentORD/TeamProfitCron 各 1);前端 16 红为实现未交付的预期 RED(S-cfc-30/52/53 待研发交付组件);langgraph 429 配额未解(B-134-4 延续);dx-bridge 端点 404(B-DX-1 部署滞后,本轮复核仍 404)。

3. 20 类测试覆盖矩阵(三态:已实测 / 未发现 / 待核实)

# 测试类型 状态 证据
1 单元测试 ✅ 已实测 后端 2918 例(采信 R134);web 116;fe 582(16 预期 RED + 9 跳)
2 组件测试 ✅ 已实测 Vue shallowMount 组件用例(fe 37 套件 / web 17 套件)
3 接口 API 测试 ✅ 已实测 后端控制器 MockMvc/直调;langgraph 43 例 251 实派
4 集成测试 ✅ 已实测 integration.* 实跑(根级 23;R134 GrowthRecordSync 10/10 等)
5 系统/端到端 E2E ✅ 已实测 浏览器 live 28/28(189 admin 实派 + 本机串行)
6 冒烟测试 ✅ 已实测 浏览器 28 例 + Jest 698 例体现冒烟面
7 回归测试 ✅ 已实测 浏览器 28/28、web 116/116、根级 7/16 零漂移;前端 16 红定性非回归(预期 RED)
8 探索性测试 ⚠️ 待核实 —
9 验收 UAT / BDD ⚠️ 待核实 无 cucumber/gherkin 执行证据
10 性能测试 ⛔ 未授权未执行 压测需联网授权
11 可靠性测试 ⚠️ 待核实 B-126 观察:本轮 pytest 正常收尾 126.93s,未遇 EXIT=124
12 安全测试(SAST/DAST/SCA/渗透) ⛔ 未授权未执行 仅静态项 + 鉴权契约 13/13
13 兼容性测试 ⚠️ 待核实 仅 Chromium 单浏览器
14 可用性测试 ⚠️ 待核实 无真实用户可用性证据
15 无障碍测试 ⚠️ 待核实 无 axe/WCAG 扫描
16 覆盖率度量 ⚠️ 已实测(低) web 语句 ≈10% / 分支 ≈6%(R130 基线);后端 JaCoCo 未接入
17 变异测试 ⛔ 未发现 无 PIT / mutation 资产
18 契约测试 ✅ 已实测 health 鉴权 13/13 + shop 排序 4/4 + article 标签 10/10(R134)+ S-cfc-29~54 契约(6 例预期 RED)+ dx-bridge 2 例环境红(404 部署滞后)
19 QA 流程 ⚠️ 待核实 136 轮闭环可追溯;门禁未脚本化(G11)
20 覆盖率门禁/CI ⚠️ 待核实 无 CI 全量 job(G11 ❌)

4. 本轮实测明细

4.1 浏览器 live(28/28,串行 workers=1)

套件 节点 结果 说明
admin-desktop(1440×900) 189 实派 ✅ 5/5 TC-A-U01~U05 含滑块人机验证 + 真实登录入后台主框架(2.1m)
frontend-mobile(H5) 本机 ✅ 6/6 TC-F-U01~U06(游客浏览/五维沙盘/TabBar/鉴权引导/关键资源无失败)
shop-api(商城排序契约) 本机 ✅ 4/4 TC-S-U01~U04(price asc/desc/default/非法白名单拦截)
health-api(健康鉴权契约) 本机 ✅ 13/13 TC-HP-U01~U13 未鉴权 401 门禁全覆盖

4.2 Jest 套件

套件 结果 说明
cfc-web(17 套件) 116/116 全绿,与 R135 逐项一致
cfc-frontend(37 套件) 557 过 / 16 红 / 9 跳 / 582 总 16 红 = 3 套件(signature.healthPlan / signature.consignee / growthHistory.view),全部预期 RED(组件未交付)
根级黑盒(23 例) 7 过 / 16 红 全 ECONNREFUSED 127.0.0.1:9082(本机后端未启,B-36 第 35 轮)

4.3 后端

  • mvn -o test-compile:BUILD SUCCESS(exit 0)——编译与测试源完整性通过;
  • 全量 surefire:采信 R134(343 类 / 2918 例 / 17 红 = 99.28%,窗口内 cfc-backend/src 零 commit,pre-push 编译闸门已验)。

4.4 langgraph@251(实派 43 例)

  • 命令:pytest tests --ignore=tests/qna --ignore=tests/test_chat.py -q --tb=line(251 侧 HEAD b094e8b24,git fetch + reset 后执行);
  • 38 过 / 5 红 / 126.93s(红例:auto_tag 3 + intent 2);
  • 5 红全部定性:AgnesAI_error 429 rate limit ×6 → 上游配额环境红,非代码回归(窗口内 langgraph 源码零 commit)。

4.5 dx-bridge(B-DX-1 观察,第 2 轮)

  • POST /api/health/data-sources/bridge/list → 404;sync-status → 404(线上端点未就绪,TR-24 部署 pending 滞后,非产品缺陷)。

5. 覆盖缺口清单(沿历史,无新增解除)

缺口 现状 风险 建议测试设计 优先级 闭环方式
前端 16 预期 RED(S-cfc-30/52/53) 契约测试在链,组件未交付 功能无法验收 组件化验收用例已由契约覆盖 P0 研发交付组件 → jest 连 2 轮 0 红
langgraph 429 配额 43 例 5 红全 429 CI 抖动 标记 @pytest.mark.llm 抽离门禁套件 P0 运维换 Token + 研发改 intent_classifier.py:62 兜底语义
后端 17 红 产品/契约待裁决 部分功能口径未锁 逐类契约测试已就绪 P1 研发修复或口径裁决
根级 16 红(9082 未启) 环境型 无(本机后端停机) — P2 起 9082 复跑
dx-bridge 404 部署滞后 无(新功能未上线) 部署后复跑 2 例收敛 401/403 P2 部署完成后验证
G9 锚点率 ≈10% TC 未回链 SRS 需求追踪弱 补录回链 P2 用例补锚点
CI 门禁 无 回归无自动拦截 GitLab CI 全量 job P2 CI 落地

6. 域结论表(八域专家分工结论)

审查维度 负责专家 结论 关键证据
单元·组件级 苏雅 ✅ 通过 JUnit 2918(采信)+ web 116/116 + fe 557 过(16 预期 RED)
集成·接口级 柯砚 ✅ 通过 根级 7/16(16 红环境)+ 契约 13/13 + shop 4/4
系统·验收级 白樾 ✅ 通过 浏览器 live 28/28(189 admin 实派 + 本机串行)
测试保障级 闻朔 ⚠️ 观察 冒烟/回归零漂移;B-126 pytest 本轮正常收尾
性能·可靠性 骆骋 ⛔ 未授权 压测需联网授权(execute 档)
安全 关屿 ⚠️ 部分 鉴权契约 13/13 ✅;DAST/SCA/渗透未授权
兼容·体验 阮清 ⚠️ 待核实 仅 Chromium 单浏览器;无 UAT/无障碍证据
流程·度量·代码 何序 ⚠️ 观察 136 轮闭环可追溯;G9/G11 未达标;B-134-4 包装点待修

7. 五要素问题清单(本轮新增/升级)

# ① 问题描述 ② 测试 bug 点 ③ 最优修改方案 ④ 修改目的 ⑤ 闭环方式
G-136-1 langgraph intent/auto_tag 红 5,全 429 配额 tests/test_intent.py:16,23、tests/test_auto_tag.py 断言面;根因 app/agents/intent_classifier.py:62 捕获 429 兜底 chat 运维更换 Token;intent_classifier.py 对 401/429 抛外部服务异常(或返回 unavailable),不伪装分类错误;LLM 用例加 @pytest.mark.llm 抽离门禁 让配额故障显性化,防止「分类错误」误报与 CI 抖动 换 Token 后 251 复跑 43 例;intent_classifier.py 改动后红例应降为 0 且日志显性标注 429
G-136-2 189 派发通道周期可用性波动 _r13x_189_admin.cjs kick/read(Start-Process cmd.exe + Get-Content -Tail) 维持「每轮派发前探活 189:4090 + 节点单任务串行纪律」,读日志改平台分支(Get-Content)已稳定 保证 G10 双节点冗余可用 连续多轮 189 admin 实派 5/5(本轮第 1 轮恢复)

8. 需用户单独授权才能继续的项(未授权未执行)

项 命令/工具 测试设计 状态
依赖漏洞扫描 npm audit + mvn dependency-check 锁定锁文件与依赖树,输出 CVE 清单 未授权未执行
性能压测 k6 / Playwright 负载 定义并发/SLA,注入负载 未授权未执行
DAST OWASP ZAP 内网 仅限 /admin、/frontend,避开生产数据 未授权未执行
后端连库全量 mvn test + JaCoCo mvn test 申请测试库或起本地 MySQL 3306 未授权未执行(环境不可达)

9. 门禁结论

门禁 指标 阈值 本轮 判定
G1 主口径通过率 ≥95% ≈98.2%(红 54 / 3720) ✅
G2 红例数 ≤10 54(后端 17 + 根级 16 + 前端 16[预期 RED] + langgraph 5[429]) ❌
G3 cfc-web Jest 全绿 116/116 ✅
G4 cfc-frontend Jest 全绿 16 红(预期 RED)/ 9 跳 / 557 过 ❌
G5 编译 + XML 完整性 0 错 / 无沉默 编译 0 错(test-compile exit 0) ✅
G6 浏览器 live 28/28 28/28 ✅
G7 langgraph 0 红 38/43(5 全环境 429) ❌
G8 鉴权契约 全 401/403 13/13 ✅
G9 SRS/TC 锚点率 ≥80% ≈10% ❌
G10 节点分派 251 + 浏览器节点 251 ✅ + 189 admin 实派 5/5 ✅ ✅(恢复)
G11 CI 全量门禁 存在 无 ❌
G12 SRS 变更→用例同步 合规 零命中 → 零新增(合规) ✅

总裁决:⛔ 不通过(有条件) —— G2/G4/G7/G9/G11 未达标;其中 G4 的 16 红为预期 RED 契约态、G7 的 5 红全为 429 环境红,均非回归;G2 中 37/54 红属环境或预期 RED。本轮改善:G10 双节点恢复(189 admin 实派全绿)且全部可执行套件零漂移。 复评条件:① 研发交付 S-cfc-30/52/53 组件使前端 16 红转绿;② 251 换 Token 后 langgraph 43/43;③ 后端 17 红按批修复或口径裁决;④ CI 落地全量 job + TC 锚点补齐 ≥80%。


10. 附录 · 本轮命令

# 浏览器(189 admin;本机 fe/shop/health;必须在 tests/ 目录内,B-52)
node _r136_189_admin.cjs kick && node _r136_189_admin.cjs read   # 189 实派 admin 5/5
npx playwright test -c playwright.config.live.js --reporter=line  # 本机 fe 6 + shop 4
npx playwright test -c playwright.config.health.js --reporter=line# 本机 health 13
# Jest(web/fe/根级)
cd cfc-web && npx jest --ci   # 116/116
cd cfc-frontend && npx jest --ci  # 582(16 预期红)
cd .. && npx jest -c tests/jest.config.js --ci  # 23(7 过/16 红)
# 后端
mvn -o test-compile  # exit 0
# langgraph@251
node _r136_dispatch_251.cjs kick && node _r136_dispatch_251.cjs poll  # 43 例 38 过/5 红
# dx-bridge 复核
curl -X POST cfc.iwintrue.com/api/health/data-sources/bridge/list  # 404