automation-run-2026-11-13-R184.md 6.6 KB

[测试闭环·每小时] 2026-11-13 06:02 轮(R184,review 档,内网 E2E 已授权)

测试负责人:陆谨(软件测试专家团主理人)|执行档:review(内网 cfc.iwintrue.com / 189 / 251 已授权;不访问外部公网;SRS 闸门本小时零变更故零编写) HEAD=fcbce94b3(=origin,06:02 fetch 核验);上次本对象记忆轮=R183(05:45);本轮与 R183 相邻 ~17min,窗口零源码变更 → 后端采「同源码沿用 R183 全量 + 本轮 14 红类定向复验」双证。


1. 阶段 -1 记忆召回

  • 非首次审查:本对象已审 184 轮。最近链条 R177(定向)→ R178/R179/R181/R182(全量)→ R183(05:45,全量,3987/3906=97.97%,后端 34 红/33:49,langgraph 48/51)。
  • 召回命中并本轮复查:B-142-2(langgraph 上游 429/401)→ 本轮改判为 ConnectError 不可达,红 3→2;B-177-1(pytest 不退出)→ 第 7 轮复现(pid 存活 7m38s);B-152-1/2(CI 双向失真)→ 漏拦 7 / 陈旧 26;B-156-1(DDL)→ 第 9 轮未修;B-170-1(迁移语法)→ 第 6 轮未修。
  • 教训应用:环境探针前置(JDK/Maven 实测可用,未重复「无 Maven」误判);251 派发日志用远端 POSIX 路径;API 套件点名 4 文件(未误跑 990 例);判「卡死」前先看单类 elapsed。

2. 阶段 0 项目画像(速览)

模块 技术栈 端口 本轮可测范围
cfc-backend Spring Boot 2.7.18 + MyBatis-Plus + Java8 9082 全量 JUnit(本轮截断)+ 14 红类定向;编译 2121+375 源 0 错
cfc-web Vue2 + ElementUI 8082 Jest 17 套件 116 例
cfc-frontend uni-app 小程序 H5 — Jest 42 文件 624 例
被测内网 openresty 反代 cfc.iwintrue.com→251 浏览器 UI E2E(admin@189 / fe+shop+health+dx@本机)
cfc-langgraph FastAPI + LangGraph + ChromaDB 9000(251:9000) pytest 51 例(派 251:4096)

3. 阶段 1 覆盖矩阵(20 类三态,摘要)

✅ 已发现 9 类(单元/集成/契约/接口 API/E2E/冒烟/回归/探索)|⚠️ 部分 8 类(覆盖率/UAT/BDD/性能/可靠性/安全/兼容/可用性/流程度量)|❌ 未发现 3 类(变异/依赖漏洞/无障碍)。完整矩阵见报告 §3.2。

4. 执行档与授权

  • review 档(本轮):mvn 全量 + 定向、两套 Jest、根级 Jest、Playwright 浏览器(189/本机)、线上 API 点名 4 文件、匿名鉴权探针、节点探活。
  • execute 档:未授权未执行(SCA / 压测 / DAST)→ 降级「测试设计 + 缺口诊断」。

5. 本轮实测结果

套件 执行 过 红 跳 耗时 备注
后端全量 76/368 类 — 1 类 5E — 39m(主动截断) 见 §6 B-184-1
后端 14 红类定向 103 67 29F+6E=35 1 04:51 13/14 类逐例同 R183
后端全量(沿用 R183,同源码) 3111 3073 34 4 33:49 git diff 证 src 零变更
cfc-frontend Jest 624 609 3 12 133.59s 3 全预期 RED
cfc-web Jest 116 116 0 0 120.9s 17 套件全绿
langgraph@251 51 49 2 0 244.73s 红 3→2(ConnectError)
浏览器 189+本机 30 28 0 2 1.3m+1.0m 189 admin 5/5 EXIT=0
线上 API 32 25 0 7 17.1s 点名 4 文件
根级黑盒 23 7 16 0 13.98s 全 ECONNREFUSED 9082
合计(主窗) 3987 3907 55 25 — 97.99%(剔 skip 98.61%)
合计(+ 增量复验,最终) 3987 3913 49 25 — 98.14%(剔 skip 98.76%)

6. 本轮关键判定

  1. B-184-1(新,P1):后端全量 39min 仅 76 类 → 推算 >2h(R183 33:49,5.4×)。慢类 GuideRolePermissionTest 455.5s 单类即 11min;每类 @SpringBootTest 重跑 DatabaseInitializer 全量迁移;宿主 CPU 100%。→ 本轮主动截断,不把截断当全量结论。
  2. B-173-3 反转:≤50min 纪律(R183 曾达 2/2)本轮作废,观察重置 0/2。
  3. langgraph 红 3→2:2 红全 auto_tag,根因 ConnectError('All connection attempts failed');同窗口 /health 200/3.7ms 而 /api/v1/chat 000/45s/0B → 环境红,非代码回归。
  4. B-177-1 第 7 轮复现:summary 已出但 pid 存活 7m38s、无 EXIT= 行 → 独立第 2 次佐证「进程挂死」而非 shell 引号问题;已清理。
  5. B-142-1 销号维持第 15 轮:匿名扩至 6 端点 6/6 = 401(含 admin/families/overview)。
  6. B-152-1/2 第 16 轮:CI 33 类 vs 实测 14 红类 → 漏拦 7 / 陈旧 26。

7. 增量复验(窗口末功能合入)

  • 收尾 fetch 发现远端前进 8 提交,其中 ca56f8699 feat(membership): implement membership.plan.purchase (S-cfc-176) 为真实功能提交(MembershipController + MembershipService + API_REFERENCE §4.50.1)。
  • 按纪律 rebase 至 6d3564510 → 定向复跑:MembershipPlanPurchaseContractTest 7F → 1F(6 例转绿);FamilyRemoveMemberContractTest 维持 4F;Total time 03:17。
  • 剩余 1 红 = repeatPurchase_pendingOrderSamePlan_reuseNoDuplicate:201(NeverWantedButInvoked: paymentOrderMapper.insert)→ 幂等复用分支未生效。
  • 结论上调:后端红 34→28、全站 3913 过 = 98.14%、G1 由 ❌ 转 ✅;SRS 侧 API_REFERENCE 有变更但契约用例先于实现落地 → 用例零新增(G12 ✅)。

7b. 门禁结论

⛔ 不通过(承袭;G1 转 ✅):✅G1 98.14%/G4/G5/G6 28-28+2 跳/G8 6-6/G10 双节点/G12;⚠️G3 3 预期 RED / G13 装置浮动;❌G2 49 红、G7 96.1%、G9 20.1%、G11、G14 57.9%、G16。

8. 产出

  • docs/tdd/orchestration/report-test-2026-11-13-R184.md(模板 + 20 类矩阵 + 6 条五要素 + 8 项缺口 + 门禁表 + 附录)
  • docs/tdd/automation-run-2026-11-13-R184.md(本文件)
  • docs/tdd/test/notice-2026-11-13-R184-研发通知.md
  • docs/tdd/test/blockers.md(+B-184-1,B-173-3 作废,B-178-1/B-142-2/B-177-1/B-156-1/B-170-1/B-152-1-2/B-162-1 更新,R184 门禁行)
  • 临时取证:_r184_backend.log(截断全量)、_r184_red_classes.log(红类定向)——不入库

9. SRS 闸门

specs 201 / test-cases 16 / user-scenarios 11 / API_REFERENCE.md 窗口零变更 → 用例零新增(G12 ✅)。度量(报告 §7.1 固化双口径):台账表行 876 / 唯一 TC 308 / 场景 152 / 真实锚点 100(排除 generated 253)/ 双向命中 62 = 20.1% / 孤儿 38 / 空转 246 / 控制器 366 / @GetMapping 8 处。