report-test-2026-11-10-R124.md 25 KB

测试闭环报告 · 第 124 轮(2026-11-10 14:20 GMT+8)

主理人:陆谨(软件测试专家团 · 测试架构师) 执行档:review 档(内网 cfc.iwintrue.com 已授权;无联网外部请求;未装依赖;未改生产代码) 对象:d:/cfc(浠艾福 XAF) 触发:定时自动化「测试负责人闭环(全部用例通过 + 覆盖 SRS/场景含异常流)+ 浏览器走 /admin 与 /frontend(189/本机每节点单任务)+ langgraph 派 251 + 结果有变提交远程并通知研发」


0. 本轮结论速览

项 值
基线 cfclub @ 2f04b1033(跑前 = 跑后;收尾 fetch 远端前进 1 提交 67b5f6325 chore auto bump,零源码变更)
全量用例 3501 例 / 3444 过 = 98.37%(红 50 / 跳过 7)
对比上轮(R123 98.37% / 3444 过) 严格零漂移(逐套件一致)
后端全量 2865 例 / 2828 过 = 98.71%,30F+3E+4S,14 红类 / 33 红例,34:03,XML 339/339 无沉默
浏览器自动化 28/28 全绿(live 15 + health 13)
langgraph @ 251 43 例 / 42 过 / 1 红(test_auto_tag_valid_format,LLM API key 401)
门禁 不通过(有条件) — 见 §9

三件必须让研发看到的事

  1. 后端全量持续新高稳态:98.71%(2865/2828)与 R123 逐例一致,红例 33 的类级差集为空;MindFortuneControllerTest 维持不在红类清单(B-69 落码稳定)。全量结果已连续两轮零漂移——上轮的 30F+3E+4S 分布在本轮完全复现,说明红例均已稳定归因,可批量派研发处置。
  2. langgraph 红例名漂移(B-74 观察):R123 红例 test_auto_tag_content_relevance → 本轮 test_auto_tag_valid_format。同库同文件,二者均依赖 LLM 语义输出,且本轮日志直接暴露根因:API key ****ab12 返回 401 Authentication Fails。这从「疑似凭据问题」升级为「凭据问题实锤」——需研发/运维轮换有效 LLM 凭据后复跑闭环。
  3. B-121(admin U05)连续第 2 轮绿:57.8s 通过、U04 9.9s 通过,首轮即绿无重跑。按 R123 判据(连续 2 轮绿 → 销号),本轮满足销号条件,转销号登记。

1. 历史审查记录

项 内容
上次本对象审查 R123 @ 2026-11-10 12:35(2f04b1033,即本轮起点 HEAD 自身)
上次结论 不通过(有条件):G2 50 红 / G9 锚点 17.1% / G11 无 CI 阻塞放行
上次遗留缺口 ① 后端全量核对(已从 R123 起恢复实测)② B-121 U05 转观察 ③ B-74 收窄至 1 例 ④ 覆盖率/变异/压测/安全 长期未实测
本次是否改善 ① 维持实测且零漂移 ✅ ② B-121 连续 2 轮绿 → 本轮销号 ✅ ③ B-74 根因实锤(API key 401)✅(闭环仍待凭据轮换)④ 未变(execute 档未授权)
是否首次审查 否。同对象已连续审查 ≥124 轮

本节仅作对照。本轮全部结论均以本轮实测取证;仅「SRS 台账计数」因窗口零变更而标注沿用。


2. 项目画像

维度 结论
业务定位 家庭教育 SaaS:家长/孩子(能登录/不能登录用户)双角色、成长规划师、五维能量、健康报告解析、测评订单、商城、AI 管家
技术栈 后端 Spring Boot 2.7.18 + MyBatis-Plus + Java 8(端口 9082);小程序 uni-app Vue2;管理端 Vue2 + Element UI;AI 侧 Python FastAPI + LangGraph + ChromaDB(9000,生产 ai.etotem.com.cn);独立商城 Spring Boot(8888)
规模(本轮实测) 后端测试类 339、@Test 2854、@Disabled 4、控制器 363、@GetMapping 8 处(仍违 AGENTS.md「统一 @PostMapping」);SRS 规格 200 份;用例台账 14 份
关键路径 登录鉴权(JWT 拦截 + 8 公开路径)→ 家庭成员/关系 → 成长任务与能量 → 健康报告上传-解析-入库 → 测评订单 → 商城下单/分润 → AI 对话/画像
质量目标 全量用例通过率、SRS/场景锚点覆盖、线上鉴权契约、浏览器双端可用性、跨节点可派发
本轮风险点 LLM 凭据 401(langgraph 红例根因已实锤);真实 DB 集成测试依赖 192.168.16.251:3306;A 类夹具 16 红;platform_fee 列溢出;189 节点仓库陈旧

3. 20 类测试覆盖矩阵

图例:● 已发现(有资产且有本轮/近期实测证据)/○ 未发现(扫描未命中)/◐ 待核实(有资产但本轮未实测或被降级)

# 类别 状态 证据
1 单元测试 ● 后端 339 类 2865 例实跑;cfc-web 116、cfc-frontend 426 Jest 实跑
2 组件测试 ● 后端 *ControllerTest(MockMvc)批量实跑;前端 Vue 组件 __tests__ 实跑
3 接口 API 测试 ● 浏览器侧 health 契约 13 例(10 端点未鉴权全 401)+ shop-sort 4 例实跑
4 系统 / 端到端 ● /admin 5 例 + /frontend 6 例真浏览器实跑(Playwright 1 worker)
5 验收 UAT ◐ 有 tests/user-scenarios 198 场景映射,但无独立 UAT 执行记录(业务凭据不全)
6 冒烟测试 ● 每轮固定 28 例 live/health 冒烟;本轮全绿
7 回归测试 ● 后端全量 2865 例 + 三套 Jest 全量 = 本轮回归基线
8 探索性测试 ○ 无 chartered 探索会话记录
9 契约测试 ● health 13 + shop-sort 4 + 后端 *ContractTest(DimensionRegistryMap / TeamProfitCron / WechatLoginContract 等)
10 性能测试 ○ 无压测脚本与基线(execute 档,需联网授权)
11 可靠性测试 ○ 无故障注入/恢复演练;仅线上 502 抖动被观测(B-72 历史)
12 安全测试 ◐ 鉴权契约 23 端点实测(全 401);SAST/DAST/依赖扫描未执行(execute 档)
13 兼容性测试 ◐ 仅 Chromium;多浏览器/多机型矩阵未执行
14 可用性测试 ○ 无真实用户可用性证据
15 无障碍测试 ○ 无 WCAG 检查
16 覆盖率度量 ◐ cfc-web 引用历史 10.11/6.12/7.51/9.98%;后端 JaCoCo 离线不可用
17 变异测试 ○ 无 PIT/mutation 配置
18 质量指标 ● 通过率/红例分布/桶分布本轮重算(§8)
19 QA 流程 ● 自动化闭环 124 轮可追溯;门禁脚本化不足(G11)
20 代码审查 ● 本轮抽检红例对应生产代码 6 处(EnergySystem / DimensionRegistry / platform_fee / ArticleAutoTag / CfCommission / WechatLogin)

缺口初判:5 类 ○ 全为「非功能 + 探索性 + 变异」,均属 execute 档或需专项排期;5 类 ◐ 为本轮降级项,已在 §7 转成缺口条目。


4. 测试方案(本轮实际执行)

项 内容
目标 全量用例重新取证(验证 R123 零漂移是否成立);验证 SRS/场景零变更;验证上轮遗留(B-121 连续绿计数 / B-74 根因)
范围 后端全量 339 类、cfc-web 17 套、cfc-frontend 26 套、根级 tests 3 套、langgraph@251 43 例、浏览器 live 15 + health 13
覆盖维度 功能层次 5 类 + 功能保障 4 类 + 非功能鉴权/兼容(部分)
执行档 review(离线白名单);内网 HTTP 探针与内网站点浏览器访问均为已授权范围
优先级 P0:后端全量 + 鉴权契约 + 浏览器双端;P1:251 派发;P2:度量口径
排除项 压测、DAST/SCA、变异、多浏览器矩阵、UAT 全流量(未授权/无凭据)——报告中标「未实测」,不计通过

5. 执行结果明细

5.1 后端全量(mvn -o -B clean test,JDK1.8.0_25 + Maven 3.6.1)

项 值
总耗时 34:03
结果 2865 例 / 2828 过 / 30F + 3E + 4S = 98.71%(剔 skip 98.85%)
红类 / 红例 14 类 / 33 例
完整性 surefire XML 339/339,与 339 个测试类一一对应,沉默丢失 0
恒等式 @Test 2854 − @Disabled 4 + 参数化/早退净增 15 = 2865,误差 0
环境红 0(B-13 观察第 2 轮)
对比 R123 逐例一致:2865/2828/98.71%,红类 14 的类级集合差集为空,33 红例逐条同名同型

33 红三层归因(与 R123 同分布)

桶 例数 明细
A 装置(测试自身缺陷) 16 CfCommissionServiceSettleTest 8(Wanted but not invoked)· ArticleAutoTagServiceTest 4(execute 未命中/过多)· GrowthRecordSyncFlowTest 3(1F+2E)· TaskPlanServiceTest 1(expected 100 but null)
B 产品 13 EnergySystemFlowTest 6(5×500 + 1 false)· OrchestrationEngine 1 + OrchestrationIntegration 1 · MembershipPaySwitch 1 · PaymentORD 1 · WechatLogin 2 · TeamProfitCron 1
C 数据 1 GuideModuleIntegrationTest — platform_fee Out of range(第 13 轮)
契约待裁决 3 DimensionRegistryMapContractTest(unknown/empty/missing 三例)

B-69 稳定:MindFortuneControllerTest 连续第 2 轮不在红类清单;线上 POST /api/mind/fortune → 401(见 5.6)。

5.2 前端 / 管理端 / 根级

套件 套件数 例数 过 红 跳过 与基线
cfc-web Jest 17 116 116 0 0 零漂移
cfc-frontend Jest 26 426 423 0 3 零漂移
tests 根级 Jest 3 23 7 16 0 零漂移(B-36,9082 未启动 → ECONNREFUSED)

5.3 浏览器自动化(workers=1,单节点单任务)

套件 例数 结果 耗时 备注
admin-desktop(/admin) 5 5/5 6.5/3.8/3.6/9.9/57.8s U04 真实登录通过;U05 连续第 2 轮绿(B-121 销号判据达成)
frontend-mobile(/frontend) 6 6/6 3.9~9.7s 游客流 TC-F-U01~U06
shop-api 4 4/4 77~115ms 价格排序契约 TC-S-U01~U04
health-api(契约) 13 13/13 9.7s 华为 5 + 小米 5 + 健康方案 3,全部 401

合计 28/28 全绿,与 R118/R120/R123 基线一致。

5.4 langgraph @ 192.168.16.251(实派第 2 轮)

项 值
通道 POST /api/shell?location[directory]=/sc-data/cfc/cfc-langgraph(Basic,port 4096)→ 文件落盘 → 单次读(B-125 模式,kick 分离 + sleep + 单次读)
节点 HEAD 随 kick 内 git reset --hard origin/cfclub 对齐远端
命令 .venv/bin/python -m pytest tests --ignore=tests/qna --ignore=tests/test_chat.py -q --tb=line
结果 1 failed, 42 passed, 8 warnings in 593.85s(43 例,主口径「不含 test_chat」)
唯一红例 tests/test_auto_tag.py::test_auto_tag_valid_format — AssertionError: 标签数量应为 3-5 个, 实际 0: []
根因实锤 日志捕获 Authentication Fails, Your api key: ****ab12 is invalid(401)→ LLM 调用失败 → 打标返回空 → 断言失败。凭据问题而非代码缺陷
对比 R123 43/42/1(红例 content_relevance)→ 本轮红例名变化,同文件同 LLM 依赖(B-74 同源)

附独立复核:test_analyze(B-65 销号项)2 例、test_intent(B-82 销号项)4 例均不在失败清单;test_auto_tag 5 例中仅 1 红。

5.5 节点可达性

节点 端口 结论
本机 — 浏览器 28/28 全量承担(单任务)
192.168.16.189 4090 OPEN(Basic 通过,shell 可建可读) 不可承载(B-122 延续第 2 轮):仓库仍 C:\worktrees\cfc-user-is-child @ e3e52ca38(feature/user-is-child),tests\e2e-live=False、node_modules=False → 未派发
192.168.16.251 4096 OPEN / 9000 OPEN langgraph 实派成功(第 2 轮)
192.168.16.204 4090 CLOSED 延续失联(B-95)

5.6 线上鉴权与可达性(curl 探针)

目标 结果
GET http://cfc.iwintrue.com/admin 302(登录墙,0.07ms)
GET http://cfc.iwintrue.com/frontend 302(0.71ms)
POST /api/mind/fortune(匿名) 401 {"code":401,"message":"请先登录"}
POST /api/energy/overview(匿名,对照) 401

6. 覆盖缺口清单

编号 缺口类型 现状 风险 建议测试设计 优先级 闭环方式
G-124-1 性能测试 无脚本无基线 健康报告解析、AI 对话为长耗时链路,无容量依据 用 k6 对 POST /api/health/report/upload、/api/v1/chat 做 20/50 并发阶梯,记录 P95 P2 需 execute 档联网授权后执行,产出基线表
G-124-2 可靠性 无故障注入 EnergySystem 500 类问题在生产会直接暴露 对 MySQL 断连 + LLM 超时各注入 1 次,断言降级而非 5xx P2 与研发约定注入窗口
G-124-3 安全扫描 仅鉴权契约 仅覆盖 23 个端点的未鉴权路径 SAST(Semgrep)+ 依赖漏洞(mvn dependency-check) P2 execute 档授权
G-124-4 兼容性/无障碍 仅 Chromium 小程序多机型、管理端 IE 类浏览器、WCAG 均空 Playwright projects 加 firefox/webkit;axe-core 扫 /admin 5 页 P3 增配置后纳入冒烟
G-124-5 覆盖率 后端 JaCoCo 离线不可得 98.71% 通过率不等于行覆盖率 离线环境预置 jacoco agent jar 后 mvn test jacoco:report P1 预置依赖后补测
G-124-6 变异测试 无 高通过率可能掩盖弱断言 对 EnergySystemService、CfCommissionService 引入 PIT,目标 kill ≥60% P3 专项排期
G-124-7 UAT / BDD 198 场景仅文档映射 场景与断言未一一绑定,锚点率低 将锚点规范落到 tests/test-cases,每场景至少 1 可执行断言 P1 见 B-124
G-124-8 LLM 凭据 langgraph 红例根因 = API key 401 打标/画像等 LLM 链路随时可用性归零 凭据注入成环境变量 + 每轮探活 POST /api/v1/chat 冒烟 P1 B-74 闭环

7. 域结论表

审查维度 负责专家 结论 关键证据
单元·组件级 苏雅 有条件通过 后端 2865 例 98.71%,14 红类(16 A 类夹具红阻塞口径);cfc-web 116/116、frontend 423/426
集成·接口级 柯砚 不通过(局部) 契约 23 端点全 401 ✅;但 DimensionRegistryMap 3 例契约口径未裁决、platform_fee 溢出 1 例
系统·验收级 白樾 有条件通过 浏览器 28/28 ✅;UAT 全流量未执行(无凭据),场景锚点偏低
测试保障级 闻朔 通过 冒烟 28/28;回归全量 3501 例连续两轮零漂移可复跑;探索性缺失(登记缺口)
性能·可靠性 骆骋 未实测(降级) execute 档未授权 → 转 G-124-1/2 测试设计
安全 关屿 有条件通过 匿名 23 端点全 401(含 /api/mind/** 已修,第 2 轮稳定);SAST/SCA 未执行
兼容·体验 阮清 未实测(降级) 仅 Chromium;无 axe/WCAG → G-124-4
流程·度量·代码 何序 不通过(局部) @GetMapping 8 处仍违规范;锚点口径三套不一致(B-124 未闭环);251 派发器 B-125 等待时长未自适应

8. 五要素问题清单

#1 langgraph test_auto_tag_valid_format 红 + LLM 凭据 401 实锤(B-74 根因升级)

  • ① 问题描述:251 实派 43 例中唯一失败为 test_auto_tag_valid_format;日志捕获 LLM API key ****ab12 → 401 Authentication Fails → 打标返回空标签(实际 0: [])→ 断言失败。R123 红例 content_relevance 本轮转绿、valid_format 转红——同文件内用例次序随 LLM 输出漂移,根因同一:凭据失效。
  • ② 测试 bug 点:cfc-langgraph/tests/test_auto_tag.py::test_auto_tag_valid_format(断言依赖 LLM 打标输出,无固定桩);服务端 .env/启动参数中 LLM API key 失效。
  • ③ 最优修改方案:① 运维/研发轮换有效 LLM 凭据并注入环境变量(251 与生产同源);② 同时按 R123 建议把主断言改确定性桩(mock 固定标签集),另设 @pytest.mark.llm 真实链路冒烟(允许 skip);③ 251 .venv 装 pytest-timeout 防挂起。
  • ④ 修改目的:把「凭据/网络」与「打标逻辑回归」彻底分离,使该维度可稳定门禁;凭据轮换解决的是线上 LLM 能力可用性(直接影响真实用户)。
  • ⑤ 闭环:凭据轮换后 251 复跑该文件 5/5 全绿;且无凭据时用例走确定性桩绿、@pytest.mark.llm 显式 skip——两者任一达成即销号。

#2 根级黑盒 16 红(B-36,第 27 轮零漂移)

  • ① 问题描述:tests/ 根级 3 套 23 例,稳定 7 绿 / 16 红,全部 ECONNREFUSED(后端 9082 未启动)。
  • ② 测试 bug 点:tests/integration/*.spec.js(如 mini-games-api.spec.js:259)硬编码 http://127.0.0.1:9082,无「服务未起则 skip」保护。
  • ③ 最优修改方案:加 beforeAll 探活,未起则 test.skip 并打印启动指引;CI 中由 globalSetup 拉起后端。
  • ④ 修改目的:消除「环境未起」被统计为「产品失败」的长期噪声(每轮固定 16 红)。
  • ⑤ 闭环:连续 1 轮根级 0 红(或 16 例显式 skip 而非 fail)。

#3 A 类夹具 16 红(装置缺陷,非产品)

  • ① 问题描述:CfCommissionServiceSettleTest 8、ArticleAutoTagServiceTest 4、GrowthRecordSyncFlowTest 3、TaskPlanServiceTest 1 红,形态集中于 Wanted but not invoked / execute 未命中 / NPE。
  • ② 测试 bug 点:CfCommission...:settle_F03a... 等 8 例;ArticleAutoTag...:toggleStatus_... 等 4 例。
  • ③ 最优修改方案:CfCommission 逐例核对 mock 方法签名与生产 7 参 overload;ArticleAutoTag 改为注入同步 Executor 替身(避免线程池异步断言);TaskPlan 补齐 @Mock 返回值;GrowthRecordSync 2 例 E 读 Caused by 最内层。
  • ④ 修改目的:让 16 红退出统计,暴露真实产品缺口。
  • ⑤ 闭环:定向复跑 4 类全绿(mvn -Dtest=A,B,C,D,必须看 Tests run: 行)。

#4 B 产品 13 红(连续两轮零漂移,可批量派单)

  • ① 问题描述:EnergySystemFlowTest 6(5×500)、Orchestration* 2、MembershipPaySwitch 1、PaymentORD 1、WechatLogin 2、TeamProfitCron 1——与 R123 逐例同名同型,连续 2 轮零漂移。
  • ② 测试 bug 点:EnergySystemFlowTest:parentGetsEnergyOverview_Success 等 6 例;TeamProfitCronContractTest:refundWithinCooling_cancelAllRecordsFundsNotPaid。
  • ③ 最优修改方案:EnergySystem 5 例 500 抓服务端堆栈定位(疑 DB/事务);TeamProfitCron 冷静期退款未置 cancelled 核对 §8.2 实现;WechatLogin 2 例疑 mock 凭据缺失。
  • ④ 修改目的:把「疑似产品缺陷」转成可派研发的具体缺陷单(连续两轮稳定 = 已不是偶发)。
  • ⑤ 闭环:对应类 0 红 + 线上同路径 200。

#5 platform_fee 列溢出(C 数据,第 13 轮)

  • ① 问题描述:GuideModuleIntegrationTest 写库报 Data truncation: Out of range value for column 'platform_fee'。
  • ② 测试 bug 点:GuideModuleIntegrationTest::testGuidePackageCreationFlow(造数金额超出列宽)。
  • ③ 最优修改方案:核对 guide_order.platform_fee 列类型与业务上限;若业务值合法则扩列(DDL 走 DatabaseInitializer 迁移 + 同步 schema.sql),否则修造数。
  • ④ 修改目的:避免真实大额订单写库失败。
  • ⑤ 闭环:迁移后该类转绿 + 用边界值(上限 ±1)复测。

#6 DimensionRegistryMap 契约 3 例待裁决

  • ① 问题描述:unknown_legacy/empty 期望 data=null 实为原值/空串;missing 期望 400 实为 200。
  • ② 测试 bug 点:DimensionRegistryMapContractTest:map_unknownLegacy_returnsNullData、map_emptyLegacy_returnsNullData、map_missingLegacy_returnsBadRequest。
  • ③ 最优修改方案:由产品/研发对「未知 legacy 键」语义拍板(null vs 原样回传),单向修正契约或用例,写入 SRS。
  • ④ 修改目的:消除长期悬空契约,避免前后端对同一键不同解释。
  • ⑤ 闭环:契约条款落 SRS 后 3 例按新条款全绿。

#7 环境探针 SOP(B-123 处置,第 2 轮通过)

  • ① 问题描述:曾 4 次以「本机无 Maven」跳过后端全量;本轮与 R123 两轮均前置探针且实测通过 98.71%。
  • ② 测试 bug 点:SOP(已修复,见 automation-run-R124 环境探针节)。
  • ③ 最优修改方案:维持「每轮固定 java -version && mvn -v && df -h,未跑探针不得写降级」。
  • ④ 修改目的:杜绝「凭记忆判环境」导致整模块漏测。
  • ⑤ 闭环:连续 3 轮报告含探针输出且无 Maven 类降级 → 销号(本轮为第 2 轮)。

#8 251 派发等待时长未自适应(B-125 观察)

  • ① 问题描述:本轮第 1 读只取到 ...F..(sleep 400s 小于 LLM 慢链路 593.85s);第 2 读才取回完整 summary。
  • ② 测试 bug 点:_r124_dispatch_251.cjs 固定 WAIT_MS;docs/tdd/tools/dispatch_shell.cjs 轮询建 shell(会杀进程)。
  • ③ 最优修改方案:读 Log 改为「先探测 pytest 进程存活,无存活后再读文件」;或 sleep 改为 min(650s, 检测到日志结束符即提前读)。
  • ④ 修改目的:一次取回率从 ~50% 提到 ~100%,避免多轮往返。
  • ⑤ 闭环:同一脚本连续 2 轮首读即得完整 summary。

9. 门禁结论

门禁 判据 实测 结论
G1 全量通过率 ≥95% 98.37%(3444/3501) ✅
G2 红例数 ≤10 50(后端 33 + 根级 16 + langgraph 1) ❌
G3 前端 Jest 0 红 423 过 / 0 红 / 3 skip ✅
G4 管理端 Jest 0 红 116/116 ✅
G5 编译与完整性 testCompile 0 错 + XML 无沉默 343 源 0 错;339/339 ✅
G6 浏览器 28/28 28/28 ✅
G7 langgraph 0 红 1 红(凭据 401,已实锤) ❌
G8 鉴权契约 全 401 23/23(含 /api/mind/**,第 2 轮稳定) ✅
G9 SRS 锚点 ≥80% 17.1%(严格)/ 19.1%(宽松) ❌
G10 双节点派发 251 + 189 均实派 251 ✅(第 2 轮) / 189 ⚠️(B-122 延续) ⚠️ 部分
G11 CI 含后端全量 存在 blocking 全量 无 ❌
G12 用例入库 本轮有新增/更新 无 SRS 变更 → 不新增(合规) ✅

总裁决:不通过(有条件)

  • 阻塞放行的三项延续:G2 50 红、G9 锚点 17.1%、G11 无 CI 全量。
  • 相比 R123:严格零漂移(G1/G3/G4/G5/G6/G8 全部维持)+ G7 根因实锤(凭据 401)+ B-121 达销号判据。
  • 放行建议:全量连续两轮零漂移且鉴权契约全绿,支持内网灰度;不支撑对外正式发布,除非 G2 中 13 例 B 类产品红有明确结论或在研修复。
  • 建议下步:研发对 13 例 B 类产品红 批量派单(两轮零漂移 = 稳定缺陷);运维轮换 LLM 凭据闭环 B-74。

10. 窗口内变更登记(SRS 闸门)

检查项 结果
docs/superpowers/specs 200 份 窗口内(12:35→14:10)零新增 / 零修改(find -newermt 零命中)
docs/tdd/user-scenarios 11 份 零变更
docs/superpowers/api/API_REFERENCE.md 零变更(mtime 01:21,早于窗口)
代码侧变更 窗口内远端仅 67b5f6325 chore: auto bump,零源码变更
结论 不新写用例;SRS→用例映射关系保持,缺口转 §6 G-124-7

11. 度量

指标 值
测试类 / @Test / @Disabled 339 / 2854 / 4
控制器 / @GetMapping 363 / 8(违 AGENTS.md)
SRS 规格 / 用例台账 200 / 14
场景(^## 场景) 198(沿用,窗口零变更)
TC(严格 /TC-[A-Z]{1,3}-[A-Z]{1,2}-?\d{1,3}/) 333
TC(宽松,含引用) 866
可执行 TC 锚点(唯一,排 generated) 165
锚点率 17.1%(严格)/ 19.1%(宽松)

12. 本轮方法论沉淀

  1. 全量零漂移是「稳定归因」信号而非「无问题」信号:连续两轮 30F+3E+4S 完全复现,说明 33 红例已稳定归因(A 装置 16 + B 产品 13 + C 数据 1 + 契约 3),可批量派研发处置,而非每轮重新勘察。
  2. LLM 凭据失效会让 auto_tag 红例「名漂移」:R123 content_relevance、R124 valid_format——同一文件内用例名随 LLM 输出漂移,但根因一致(凭据 401)。判断凭据类红例要看日志关键字(Authentication Fails)而非用例名。
  3. 远程 shell「单次读」必须覆盖 LLM 慢链路:pytest 在 401 时会 SLOW_REQUEST 44s 重试,总时长从 344s 拉到 593s;固定 sleep 400s 会读到中途。正确判据:日志含 summary 或 pytest 进程退出,而非固定时长。
  4. B-123 处置持续有效:连续 2 轮前置环境探针(java/mvn/df)后跑通后端全量,无「凭记忆判环境」复发。

报告结束。所有结论以本轮实测数据为准,未沿用历史数字作为通过依据。