角色:cfc-tester(测试负责人)|执行档:review(离线;内网 cfc.iwintrue.com/admin + /frontend 浏览器自动化;langgraph 实派 192.168.16.251;未联网装依赖、未启停服务、未改生产代码) 基线 HEAD:
ab33afac8= origin/cfclub(跑前=跑后,窗口零源码变更)→ 本轮对全部套件做实跑(非采信),结果对 R142 基线可比。 节点:189:4090= 200 且 shell 可建可读(B-189 鉴权门控本轮未复现) → admin-desktop 实派 5/5|251:4096= 200(langgraph pytest 实派 51 例)|251:9000 /health= 200|204:4090= 000(B-95 第 16 轮) 分工:189 = admin-desktop E2E(1.6m);251 = langgraph pytest(127.77s);本机 = 后端全量(1:09h)+ 三套 Jest + 浏览器 fe/shop/health/dx + 报告编译 结论:⚠️ 有条件通过 —— 后端全量 347 类 / 2946 例 / 2925 过 / 17 红 / 4 跳 = 99.29%,17 红与 R142 逐类逐例一致(零回归);浏览器 28/28 + dx 2 skip,G10 双节点本轮首次恢复;langgraph 51 例 45 过 6 红(429 免费额度耗尽,较 R144 的 7 红改善 1 例,非代码回归);全量 3782 例 / 3722 过 = 98.41%(G1 ✅)。G2/G7/G9/G11 仍未达阈值。 变更触发:后端由「采信」改「实跑」(R143/R144 连续 2 轮采信达上限)且 langgraph 7 红→6 红、189 节点恢复 → 结果有实质变化 → 已 push + 通知研发(见 §9)。
| 项目 | 内容 |
|---|---|
| 汇报人 | cfc-tester(测试负责人) |
| 汇报周期 | 2026-11-11(第 145 轮,跑测窗口 12:07–13:25) |
| 负责模块/单元 | cfc-backend(全量实跑) · cfc-frontend(Jest 实跑) · cfc-web(Jest 实跑) · cfc-langgraph(251 实派) · 浏览器 E2E(admin@189 / frontend·shop·health·dx@本机) · 根级黑盒(实跑) |
| 执行档 | review(离线;未装依赖、未启停服务、未改生产代码) |
| 指标 | 数量 | 填写说明 |
|---|---|---|
| 本轮新增测试用例数 | 0 个 |
SRS/specs/API_REFERENCE/test-cases 窗口零变更(git diff c7c7523c8..ab33afac8 空)→ G12 合规 |
| 本轮验证执行测试数 | 3782 个 |
后端 2946 + 前端 616 + 管理端 116 + 根级 23 + langgraph 51 + 浏览器 30(含 dx 2 skip) |
| 用例通过率 | 98.41%(3722/3782) |
剔 skip 口径 98.88%(3722/3764);红 42(后端 17 + 前端 3 + 根级 16 + langgraph 6) |
| 新增覆盖资产 | 0 项 |
无 SRS 变更、无新契约文件 |
| 指标 | 数量 | 填写说明 |
|---|---|---|
| 分派任务数 | 3 个 |
① 189:admin-desktop E2E(1.6m,5/5);② 251:langgraph pytest(127.77s,51 例 45/6);③ 本机:后端全量 + 3 套 Jest + 浏览器 4 套 |
| 恢复智能体会话数 | 0 个 |
无中断/重建 |
| 当前在用会话数 | 3 个 |
本机(done)/ 189=shell(done, EXIT=0)/ 251=shell(done, 进程正常退出) |
| 会话标签 | 会话 ID | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
|---|---|---|---|---|---|---|
| 本机 | localhost | done | 后端全量 + Jest×3 + 浏览器 4 套 | — | d:\cfc |
后端 1:09h;Jest 19.4s/21.0s/10.4s;浏览器 1.8m+10.8s |
| 189:4090 | sh_1c8cb645… |
done | admin-desktop E2E | — | C:\code\cfc\tests |
5/5 通过(1.6m,EXIT=0);blob 与本机完全一致 |
| 251:4096 | shell 直连(kick 分离) | done | langgraph pytest | 127.77s | /sc-data/cfc/cfc-langgraph |
51 例 / 45 过 / 6 红;HEAD 2e16e662b = 本机父提交 |
| 204:4090 | — | unknown(000) | 失联 | — | — | B-95 第 16 轮 |
| 指标 | 数量 | 填写说明 |
|---|---|---|
| 新测试发现问题数 | 1 个 |
B-145-1(P1):nutrition_age_dosage 建表 SQL 无效(INDEX idx_product(product_id) 引用不存在的列)→ 该表从未创建成功;PRD 2026-10-27-nutrition-product-tagging-prd.md 第 4 条已自述但未修 |
| 已解决测试相关问题数 | 0 个 |
无测试侧自闭环(零 SRS 变更,无新契约) |
| 待解决测试相关问题数 | 8 类 |
后端 17 存量红 · 前端 3 预期 RED · 根级 16 环境红 · langgraph 6 环境红(429)· dx 2 端点 404(B-DX-1 第 7 轮)· 204 失联(B-95)· admin 鉴权门缺失(B-142-1 第 4 轮)· nutrition_age_dosage 建表失败(B-145-1 新) |
| 提交 sha | 关联键 | 阶段 | 触及文件 | 目标分支 | 已推送远端 | 备注 |
|---|---|---|---|---|---|---|
| 见 §9 | R145 报告 + 通知 + 台账更新 | 测试闭环 | docs/tdd/** |
cfclub |
是 | 结果变化触发 |
| 轮次 | 时间 | 后端全量 | langgraph | 浏览器 | 前端 Jest | 结论 |
|---|---|---|---|---|---|---|
| R141 | 11-11 09:05 | 346 类 / 2937 例 / 99.11%(实跑)/ 22 红 | 251 实派 46 过 / 5 红 / 51 例 | 28/28 + dx 2 skip | 557 过 / 47 红 / 12 跳 | 不通过(有条件) |
| R142 | 11-11 10:21 | 347 类 / 2946 例 / 99.29%(实跑)/ 17 红 | 251 实派 50 过 / 1 红 / 51 例 | 28/28 + dx 2 skip | 601 过 / 3 红 / 12 跳 | 有条件通过 |
| R143 | 11-11 11:30 | 采信 R142 | 251 实派 40 过 / 3 红 / 43 例 | 28/28 + dx 2 skip | 采信 R142 | 有条件通过 |
| R144 | 11-11 11:43 | 采信 R142 | 251 实派 36 过 / 7 红 / 43 例 | 28/28 + dx 2 skip | 采样 601/3/12 | 有条件通过 |
| R145(本轮) | 11-11 13:25 | 347 类 / 2946 例 / 2925 过 / 99.29%(实跑)/ 17 红 | 251 实派 45 过 / 6 红 / 51 例 | 28/28 + dx 2 skip(189 恢复) | 601 过 / 3 红 / 12 跳(实跑) | 有条件通过 |
本轮变化(对照 R144)
| 项 | R144 | R145 | 判定 |
|---|---|---|---|
| 后端 | 采信 R142(347/2946/17 红) | 实跑 347/2946/2925 过/17 红(1:09h) | 零漂移(17 红逐类逐例一致) |
| langgraph | 43 例 / 36 过 / 7 红 | 51 例 / 45 过 / 6 红 | +8 例(口径回到全仓库 51)+5 过 / −1 红 |
| 浏览器 admin 节点 | 本机(189 鉴权门控) | 189 实派 5/5 | G10 恢复双节点 |
| 前端 Jest | 采信采样 | 实跑 601/3/12 | 零漂移 |
| 全量通过率 | 98.55%(含采信) | 98.41%(全实跑) | 同口径不可直接比较,本轮全部实跑 |
| 维度 | 本轮事实 |
|---|---|
| 业务定位 | 家庭教育成长平台(五维能量 · 健康报告 · 测评订单 · 家庭邀请 · 商城 · AI 管家) |
| 技术栈 | Spring Boot 2.7.18 + MyBatis-Plus(Java 8,9082)· uni-app 小程序 Vue2 · Vue2+Element UI 管理端 · FastAPI+LangGraph+ChromaDB(9000) |
| 模块结构 | cfc-backend(347 测试类 / 366 控制器)· cfc-frontend(40 套件 / 616 例)· cfc-web(17 套件 / 116 例)· cfc-langgraph(51 例)· tests/(浏览器 30 + 根级黑盒 23) |
| 关键路径 | 登录鉴权(JWT + /api/** 拦截)→ 家庭/成员 → 五维能量 → 健康报告上传解析 → 健康方案 → 商城订单/支付 → AI 对话/分析 |
| 质量目标 | 全量通过率 ≥98%、零未归因红、SRS 场景锚点可追溯、CI 全量门禁 |
| 风险点 | ① /api/admin/** 鉴权门缺失(B-142-1,匿名可打到控制器);② langgraph 依赖 251 LLM 上游免费额度(429);③ nutrition_age_dosage 建表失败(B-145-1);④ 204 节点失联、dx 端点未部署 |
| # | 测试类型 | 状态 | 证据(本轮) |
|---|---|---|---|
| 1 | 单元测试 | ✅ 已实测 | 后端 2946 例(347 类,1:09h);web 116;fe 616 |
| 2 | 组件测试 | ✅ 已实测 | fe 40 套件 / web 17 套件(shallowMount 组件用例) |
| 3 | 接口 API 测试 | ✅ 已实测 | 后端 MockMvc/直调覆盖 366 控制器面;langgraph 51 例(251 实派) |
| 4 | 集成测试 | ✅ 已实测(有红) | integration.*:EnergySystemFlowTest 6F、DimensionRegistryMapContractTest 3F、GuideModuleIntegrationTest 1E |
| 5 | 系统/端到端 E2E | ✅ 已实测 | 浏览器 30 例:189 admin 5/5 + 本机 fe 6/6、shop 4/4、health 13/13、dx 2 skip |
| 6 | 冒烟测试 | ✅ 已实测 | 浏览器 28 通过 + 后端 2925 过 + Jest 717 构成本轮冒烟面 |
| 7 | 回归测试 | ✅ 已实测 | 后端存量 17 红逐类逐例一致(零漂移,第 5 次);web 116、fe 601、根级 23 零漂移 |
| 8 | 探索性测试 | ⚠️ 待核实 | 无 charter 记录(沿用历轮结论) |
| 9 | 验收 UAT / BDD | ⚠️ 待核实 | 无 cucumber/gherkin 执行证据(*.feature = 0) |
| 10 | 性能测试 | ⛔ 未授权未执行 | 压测属 execute 档,需联网显式授权(仅记录真实耗时,见 §4.1 慢类) |
| 11 | 可靠性测试 | ✅ 已实测 | 后端 1:09h 无中断、347/347 XML 无沉默、*.dump = 0(无 JVM 崩溃);langgraph 进程正常退出(B-126 未复现) |
| 12 | 安全测试(SAST/DAST/SCA/渗透) | ⛔ 未授权未执行 | 仅鉴权契约面:线上 5/5 匿名 POST → 401(G8 ✅);B-142-1 复核:/api/admin/families/overview 匿名 POST → HTTP 200 + code:400(拦截器放行、控制器参数校验先返回);@GetMapping 违规 8 处 |
| 13 | 兼容性测试 | ⚠️ 待核实 | 仅 Chromium 单引擎(1440×900 / 375×812) |
| 14 | 可用性测试 | ⚠️ 待核实 | 无真实用户可用性证据 |
| 15 | 无障碍测试 | ⚠️ 待核实 | 无 axe/WCAG 扫描 |
| 16 | 覆盖率度量 | ⚠️ 已实测(低) | web 语句 ≈10%(17 套件);后端 JaCoCo 未接入(pom 中 jacoco=0)→ 无行覆盖 |
| 17 | 变异测试 | ⛔ 未发现 | 无 PIT / mutation 资产(pitest=0) |
| 18 | 契约测试 | ✅ 已实测 | health 13/13、shop 4/4、dx 2(skip=404);后端契约类 DimensionRegistryMap 3 红(待裁决)、WechatLoginContract 1 红、TeamProfitCronContract 1 红 |
| 19 | QA 流程 | ⚠️ 待核实 | 145 轮闭环可追溯;门禁未脚本化(人工判读) |
| 20 | 覆盖率门禁/CI | ⛔ 未发现 | .github/workflows 不存在(CI=0)→ 无 CI 全量 job(G11 ❌) |
JAVA_HOME=/d/jdk1.8.0_25 /d/maven/apache-maven-3.6.1/bin/mvn -o -B clean test
→ Tests run: 2946, Failures: 16, Errors: 1, Skipped: 4 (BUILD FAILURE:仅测试红)
| 指标 | 值 |
|---|---|
| 测试类 / 用例 | 347 类 / 2946 例 |
| 通过 / 红 / 跳过 | 2925 / 17 / 4 |
| 通过率 | 99.29%(剔 skip 99.42%) |
| 产物完整性 | target/surefire-reports 347/347 XML(无静默丢失);*.dump = 0 |
| 编译 | testCompile 353 源 0 错 |
| 基线纯度 | 347 类 = HEAD 内 346 类 + 未跟踪 integration/controller/ArticleTagsContractTest.java(1 类,历轮同款,未入库) |
| 耗时告警 | 3 类占 13.1 分钟:AuthControllerTest 348.8s、ActivityControllerTest 337.3s、ArticleControllerTest 184.5s(B-138-3 延续,新增 Auth 类进榜) |
17 红三层归因(与 R142 逐类逐例一致 → 零回归)
| 桶 | 例数 | 明细 | 定性 |
|---|---|---|---|
| 装置/契约待裁决 | 10 | DimensionRegistryMapContractTest 3(P-9 第 10 轮)、OrchestrationEngineTest 1、OrchestrationIntegrationTest 1、MembershipPaySwitchTest 1、PaymentServiceORDRoutingTest 1、UserServiceWechatLoginContractTest 1、UserServiceWechatLoginTest 1、TeamProfitCronContractTest 1 | 测试装置与产品契约口径分歧,历轮同款 |
| 集成 | 7 | EnergySystemFlowTest 6F + 1S、GuideModuleIntegrationTest 1E | 集成环境/夹具型 |
| 数据 | 0(本轮无新增) | 平台费截断类本轮未红 | — |
说明:
EnergySystemFlowTest本轮 6F+1S 与 R142/R141 完全一致;GuideModuleIntegrationTest1E 亦一致。
| 套件 | 节点 | 例数 | 结果 | 耗时 | 备注 |
|---|---|---|---|---|---|
| admin-desktop | 189 | 5 | 5/5 通过 | 1.6m | TC-A-U01~U05 全绿(含真实登录 16.1s、核心菜单 55.9s);spec blob 4703d73fb = 本机 HEAD,结论可比 |
| frontend-mobile | 本机 | 6 | 6/6 通过 | 1.1m | 游客浏览/五维沙盘/TabBar/鉴权引导 |
| shop-api | 本机 | 4 | 4/4 通过 | 0.8s | 价格排序契约(S1) |
| health-contract | 本机 | 13 | 13/13 通过 | 10.8s | 华为/小米/健康方案 鉴权 401 保障 |
| dx-bridge | 本机 | 2 | 2 skip | — | bridge/{list,sync-status} → 404(B-DX-1 第 7 轮) |
| 合计 | 双节点 | 30 | 28/28 过 + 2 skip | ~3m | G10 双节点本轮恢复(189 派发 + 本机并行) |
| 类别 | 例数 | 结果 | 根因 |
|---|---|---|---|
| non-LLM(health_plan/memory/report_parse/tongue/graph/recommend/analyze) | 39 | 39/39 过 | 代码层面绿 |
| auto_tag | 4 | 1/4 过 / 3 红 | assert 500 == 200(429 → chat 端点 500) |
| intent | 5 | 2/5 过 / 3 红 | 429 → intent_classifier.py:62 静默兜底 chat → 断言 RECOMMEND/MIND/HEALTH 失败 |
| qna / test_chat | — | 排除 | --ignore=tests/qna --ignore=tests/test_chat.py(B-141-1 收集期缺陷) |
| 合计 | 51 | 45 过 / 6 红 / 127.77s | 6 红全为 LLM 上游 429 免费额度耗尽(B-142-2/B-134-4 同族) |
关键证据(251 日志实测)
WARNING app.agents.intent_classifier:intent_classifier.py:62 意图分类失败: Error code: 429 - You've reached the API rate limit for free users ... 默认 chatFAILED tests/test_auto_tag.py::test_auto_tag_content_relevance / short_content / empty_contentFAILED tests/test_intent.py::test_classify_recommend / mind / health2e16e662b = 本机 HEAD 父提交(仅差本轮 docs 提交),源码零变更 → 排除产品代码回归EXIT=124)→ B-126 连续观察第 5 轮未复现| 套件 | 结果 | 耗时 | 备注 |
|---|---|---|---|
| cfc-web Jest | 116/116(17 套件) | 19.4s | 零漂移 |
| cfc-frontend Jest | 616:601 过 / 3 红 / 12 跳 | 21.0s | 3 红为 S-cfc-132/133 预期 RED(signature.consignee 2 + growthHistory.dayGroupView 1) |
| 根级黑盒 Jest | 23:7 过 / 16 红 | 10.4s | 16 红全 ECONNREFUSED 127.0.0.1:9082(B-36 第 41 轮零漂移) |
| 套件 | 用例 | 通过 | 红 | 跳过 | 通过率 |
|---|---|---|---|---|---|
| cfc-backend | 2946 | 2925 | 17 | 4 | 99.29% |
| cfc-frontend | 616 | 601 | 3 | 12 | 97.56% |
| cfc-web | 116 | 116 | 0 | 0 | 100% |
| 根级黑盒 | 23 | 7 | 16 | 0 | 30.43% |
| cfc-langgraph | 51 | 45 | 6 | 0 | 88.24% |
| 浏览器 E2E | 30 | 28 | 0 | 2 | 93.33% |
| 合计 | 3782 | 3722 | 42 | 18 | 98.41%(剔 skip 98.88%) |
| 项 | 结果 |
|---|---|
| 匿名 POST 鉴权面 | /api/mind/fortune /api/energy/overview /api/health/plan/list /api/huawei-health/status /api/xiaomi-health/status → 5/5 = 401(G8 ✅,B-69 销号第 8 轮) |
| admin 鉴权门(B-142-1 复核) | POST /api/admin/families/overview 匿名 → HTTP 200,body {"code":400,"message":"请求参数格式错误"} → 拦截器放行、业务层先做参数校验;同族 /api/admin/stats/family、/api/admin/report/list、/api/admin/supply-team/list = 404(端点不存在) |
| 页面 | /admin 302→200、/frontend 302→200、/ → 404(R141 记 502,现为 404,B-141-3 状态变化) |
| dx 端点 | bridge/list 404、bridge/sync-status 404(B-DX-1 第 7 轮) |
| 门禁 | 指标 | 阈值 | 本轮 | 结果 |
|---|---|---|---|---|
| G1 全量通过率 | 3722/3782 | ≥ 98% | 98.41% | ✅ |
| G2 零未归因红 | 42 红(17 存量 + 3 预期 + 16 环境 + 6 环境) | 0 | 42,全部已归因 | ❌ |
| G3 前端 Jest | 601/3/12 | 0 非预期红 | 3 预期 RED(有台账) | ⚠️ |
| G4 管理端 | 116/116 | 0 红 | 0 红 | ✅ |
| G5 编译/产物完整性 | 353 源 0 错;347/347 XML;dump 0 | 全绿 | 全绿 | ✅ |
| G6 浏览器 E2E | 28/28 + 2 skip | 100% 可执行 | 100% | ✅ |
| G7 langgraph | 45/6 | 0 红 | 6 环境红(429) | ❌ |
| G8 鉴权 | 5/5 = 401 | 100% | 100%(admin 面另计 B-142-1) | ✅ |
| G9 场景锚点 | 101/347 | ≥ 95% | 29.1% | ❌ |
| G10 双节点 | 189 admin 5/5 + 251 pytest 51 例 | 双节点连通 | 双节点均实派成功 | ✅ |
| G11 CI 全量门禁 | .github/workflows = 0 |
有 | 无 | ❌ |
| G12 SRS 合规 | 0 新增用例 | 0 抖动 | 0 | ✅ |
| 综合 | — | — | — | ⚠️ 有条件通过 |
通过条件(复评门槛)
nutrition_age_dosage 建表 SQL 无效,表从未创建DatabaseInitializer 执行 schema.sql 时,nutrition_age_dosage 建表语句报 SQLSyntaxErrorException: Key column 'product_id' doesn't exist in table,该表在任何环境(含新库)从未创建成功;任何依赖该表的剂量建议查询都会在运行时失败。cfc-backend/src/main/resources/schema.sql:5354(INDEX idx_product (product_id)),实体 com.etotem.cfc.entity.NutritionAgeDosage 无 productId 字段;_r145_backend.log 启动段重复 2 次报错。INDEX idx_product (product_id)(表本身不含产品关联字段);若产品维度确需保留,则补 product_id BIGINT 列 + 实体字段 + 迁移(DatabaseInitializer.runMigrations() 新增 ensureColumn("nutrition_age_dosage","product_id","BIGINT NULL") 并同步 schema.sql)。mvn -o -B clean test 观察启动段无 SQLSyntaxErrorException,且 SHOW TABLES LIKE 'nutrition_age_dosage' 命中;通过标准 = 启动日志零 DDL 异常 + 相关 Service 用例转绿。/api/admin/** 鉴权门缺失POST /api/admin/families/overview 返回 HTTP 200(body code:400),说明请求已穿过 JwtInterceptor 到达控制器;对照组 /api/energy/overview 同样匿名请求返回 401。cfc-backend/src/main/java/com/etotem/cfc/config/JwtInterceptor.java:105-130(LOGIN_REQUIRED_PATHS 未含 /api/admin/);线上实测见 §4.6。LOGIN_REQUIRED_PATHS 增加 /api/admin/ 前缀,并对 admin 族补角色校验(role != admin → 403);补一条契约用例 AdminAuthGateTest(匿名 → 401/403)。429 You've reached the API rate limit for free users 触发——auto_tag 3 例 assert 500 == 200,intent 3 例因兜底 chat 断言失败。cfc-langgraph/tests/test_auto_tag.py(3 例)、tests/test_intent.py::test_classify_recommend|mind|health;根因日志 intent_classifier.py:62。pytest.mark.env_skip(或 pytest.skip("LLM 429"))显式标注环境跳过,避免「环境红」与「代码红」混同。pytest -q --ignore=tests/qna --ignore=tests/test_chat.py 复跑;通过标准 = 51/51 且日志零 429。intent_classifier 429 静默兜底伪装成正常分类intent_classifier.py:62 捕获异常后 默认 chat,导致「服务不可用」被伪装成「分类结果是 chat」,断言只能看到 CHAT != RECOMMEND,无法区分真实分类错误与上游故障。cfc-langgraph/app/agents/intent_classifier.py:62;tests/test_intent.py 3 红。raise IntentUnavailable 或在返回值中带 degraded=true),由路由层决定降级;测试侧对 degraded 断言。test_intent.py;通过标准 = 5/5 断言命中预期语义(抛错或 degraded 标记),不再出现「默认 chat」。POST /api/health/data-sources/bridge/list、/sync-status 线上恒 404,2 条鉴权契约用例长期 skip,SRS §3.3/§3.4 契约无法验证。tests/e2e-live/dx-health-bridge-auth.spec.js(TC-DX-U01/U02)。npx playwright test -c playwright.config.live.js --project=dx-bridge;通过标准 = 2/2 通过(非 skip)。192.168.16.204:4090 失联000,无法承担任何派发任务;当前仅 189/251 可用。curl 192.168.16.204:4090 → 200;通过标准 = 节点重新出现在派发清单且实派成功。tests/ Jest 23 例中 16 例因 ECONNREFUSED 127.0.0.1:9082 失败——本地后端未常驻,用例属环境门控型。tests/integration/*.spec.js(mini-games-api.spec.js:259 等)。beforeAll 探活,未启动则 describe.skip 并打印原因(避免计入红例);或在闭环脚本中先拉起 9082。cd tests && npx jest;通过标准 = 9082 未启动时 16 例为 skip 而非 fail,启动后 23/23 全绿。AuthControllerTest 348.8s、ActivityControllerTest 337.3s、ArticleControllerTest 184.5s,占全量 1:09h 的 19%,拖慢每轮闭环。@SpringBootTest 上下文(@DirtiesContext 复核)、去掉 Thread.sleep、外部 HTTP 调用加超时与桩。| # | 缺口类型 | 现状 | 风险 | 建议测试设计 | 优先级 | 闭环方式 |
|---|---|---|---|---|---|---|
| G-145-1 | 场景锚点 | 347 唯一 TC 中仅 101(29.1%) 在代码中可定位 | 大量 SRS 场景无自动化凭据,回归靠人工 | 按 SRS 池 795 文档用例逐条挂 TC-* 注释(e2e-live 优先) |
P1 | 每轮提升 ≥3pp,达 95% 封板 |
| G-145-2 | 数据库初始化 | nutrition_age_dosage 建表失败(B-145-1) |
新库部署功能缺失且无告警 | 增加「启动后表清单断言」用例(对比 schema.sql CREATE TABLE 清单与实库) | P0 | 该用例转绿即闭环 |
| G-145-3 | 性能 | 未授权压测;仅有单例耗时 | 无法判断容量与劣化 | 授权后对 /api/energy/overview 等只读端点做 50 并发 60s 基线 |
P2 | 需用户显式授权 execute 档 |
| G-145-4 | 探索性测试 | 无 charter | 边界问题发现依赖偶发 | 每轮 30min 时间盒探索,记 charter + 缺陷 | P3 | 台账新增 charter 记录 |
| G-145-5 | CI | 无 workflow | 门禁靠人工,易漏 | GitHub Actions:后端 mvn -o -B test + Jest ×3 + Playwright live |
P1 | workflow 合入并跑绿 |
| G-145-6 | 兼容性/无障碍 | 仅 Chromium | 小程序真机与低端机风险 | 增加 WebKit + 真机回归;axe 扫描关键页 | P3 | 双引擎全绿 + axe 0 critical |
schema.sql:5354 无效索引(B-145-1),并补「表清单一致性」启动断言/api/admin/ 纳入 LOGIN_REQUIRED_PATHS + admin 角色校验(B-142-1 第 4 轮)intent_classifier 兜底改显式降级标记(B-134-4 第 8 轮)git add docs/tdd/** → commit → git push origin cfclub(push 前 pre-push 编译闸门通过)。not_bound(连接器 connected 但邮箱未开通,勿重试)→ 以 notice-2026-11-11-R145-研发通知.md + blockers.md + 推送为通知载体。SQLSyntaxErrorException。POST /api/shell + PowerShell 语法,且不能 git reset)。节点探测必须每轮实探,且 Windows 节点禁止用 tail/POSIX 路径。/api/admin/families/overview 返回 200 + code:400,若只看 HTTP 码会误判为「接口正常」,必须同时看 body 与对照组 401,才能定性为鉴权门缺失。测试负责人:cfc-tester · 2026-11-11 13:25 · 第 145 轮闭环