# 测试规范(Wave 1-5 验证判据) > 生成日期:2026-05-04 / 用途:Wave 1-5 走查时的"过线判据"基础 / 引用源:`01-product-overview.md` `02a-miniprogram-page-matrix.md` `02b-adminweb-page-matrix.md` 本文不重复产品定义(去 01),不重复每页字段(去 02a/02b),只定义**测试该怎么跑、什么算过线**。 ## 一、测试视角分层 | 层 | 内容 | 工具 | 判据来源 | |---|---|---|---| | L1 工程层 | 代码可启动 / 无控制台错误 / API 200 | Playwright Console + Network | tsc/lint/build 通过 | | L2 接口层 | API 返回结构符合契约 / 必填字段齐 | curl + Playwright Network | NS1/NS2/NS3/NS4 + .tsx 实际调用 | | L3 展示层 | UI 渲染必现字段 / 空态文案对 / 数据展示标准对 | Playwright Snapshot + Screenshot | `02a` `02b` 必现字段 + DISPLAY-STANDARDS | | L4 业务层 | 数据语义对 / 跨页一致 / 角色权限对 | Playwright + 微信 IDE + DB 校核 | `01-product-overview.md` 业务概念 | | L5 数据层 | DB 视图 / RLS 隔离 / DWS 字段口径 | pg-etl-test / pg-app-test MCP | `db/CLAUDE.md` + 飞球 CLAUDE.md DWS 权威 | **L1 不过 L2 不测;L2 不过 L3/L4 无意义;L4 失败 ≠ Bug,可能是 L5 数据问题。** 走查时按层判读。 ## 二、9 主题 × 测试维度映射(基于蓝本 §3.1-§3.9) | 主题 | L1 | L2 | L3 | L4 | L5 | |---|---|---|---|---|---| | §3.1 AI 模块重构(8 APP) | ✓ | ✓ | - | ✓ 调用链路 | - | | §3.2 admin-web AI 套件 | ✓ | ✓ | ✓ | ✓ | - | | §3.3 App2 prompt v5.1 | - | ✓ A/B 评分 | - | ✓ 12 项指标产出 | - | | §3.4 App3 线索完整详情 | - | ✓ | - | ✓ | - | | §3.5 Runtime Context 沙箱 | ✓ | ✓ | ✓ | ✓ 时间漂移 | ✓ DB 视图 | | §3.6 AI 触发器 + prewarm | ✓ | ✓ | ✓ | - | ✓ trigger_jobs 表 | | §3.7 飞球 DWS / RLS | - | - | - | - | ✓ 重点 | | §3.8 沙箱 admin-web 验证 | ✓ | - | ✓ | ✓ | - | | §3.9 部署文档 | - | - | - | - | - | ## 三、单页面测试模板(每页都按这个跑) 打开页面后,按顺序跑 5 步: 1. **L1 加载校核** - URL 状态 200 - 控制台 0 error(401/403 在登录前可允许) - 主体内容 < 3s 加载 2. **L2 接口校核** - 抓 Network,核对调用的 API 与 `02a/02b` 列出的"主要后端 API"一致 - 响应 200 + 必填字段齐 - 无 4xx/5xx(除非是测试错误路径) 3. **L3 必现字段校核** - 对照 `02a/02b` 该页"必现字段"清单逐条勾 - 空数据时显示"空态文案"(对照清单) - 金额 / 日期 / 数字格式按 `02a §四 跨页共性` 检查 4. **L4 业务语义校核** - 数据是不是这个角色 / 这个门店应该看到的(参考 `01` §二角色矩阵 + §五.6 site_id 隔离) - 跨页跳转携带的参数是否对(对照 `02a/02b` 入口字段) - 同一指标在多页显示是否一致(如近 7 日营收 vs board-finance vs my-profile) 5. **L5 数据校核**(可选,仅当 L4 怀疑数据错时) - 直查测试库:`SELECT ... FROM dws.dws_*` 或 `app.v_*` - 对照 飞球 CLAUDE.md DWS 权威规范 - 对照页面展示数,差异 > 0.01 即标 D Bug ## 四、走查规模估算(更新版) 基于 Wave 0 调研后的修正: ### 小程序(21 页) - **必走查**:21 页 × 1 角色(当前账号,Neo 决定)= 21 个 case - **可选**:某些页有多入口(如 customer-records / customer-service-records),每入口 +1 case ### admin-web(19 路由) - **必走查**:19 路由 = 19 个 case - **多 Tab 路由额外展开**:`/etl-tasks`(5 Tab) `/triggers`(4 Tab) `/ai/*` 各页可能有 Tab,需逐 Tab 走 → +约 15 case ### 数据库 / ETL(L5) - RLS 业务日上界视图重建对照:N 个视图(待 `pg_get_viewdef` 列表) - finance_area_daily DWS 幂等性:测试库重跑同窗口 - AI 触发器 jobs 表:实际行数 + cron 重调度对比 - sandbox runtime_context 表:虚拟时间漂移多账号 ### AI 调用(L4 高成本部分) - 8 APP × 1 次 / APP = 8 次(蓝本 §3.1)+ App2a 区域财务 = 9 次 - A/B prompt 评分(P2 §3.3)= **20 个以内** Neo 默认授权,先单调通,再批跑 ### 总规模(刷新) - L1-L4 走查:**21 + 19 + 15 = 55 个 UI case** - L5 数据校核:约 10 个 SQL 验证点 - AI 调用:9 次单调通 + 20 次 A/B 评分(可选) - **合计:约 75-95 个测试 case**(原估算 60,Wave 0 调研后更准) 预计:Wave 1(Runtime Context)≈ 15 case + DB,Wave 2(admin-web AI)≈ 20 case,Wave 3(小程序)≈ 21 case,Wave 4(DWS/RLS)≈ 15 case + DB,Wave 5(部署)≈ 5 case + 总报告。 ## 五、测试产物存放约定 每个 Wave 产出一份验证报告 → `docs/audit/changes/2026-05-04__verify_wave__.md`,内容: ```markdown # Wave 验证报告 — <主题> | 字段 | 值 | |---|---| | 日期 | 2026-05-04 | | Wave | | | 范围 | <对照蓝本 §3.x> | | 通过 | X 个 case | | 失败 | Y 个 case(P0:a / P1:b / P2:c) | | 截图 | docs/audit/changes/2026-05-04__verify_wave__screenshots/*.png | ## 1. case 清单(对照测试矩阵) | # | 页面/接口 | L1 | L2 | L3 | L4 | L5 | 结论 | ## 2. 失败明细(每条:现状 / 期望 / 复现 / 截图 / 建议优先级) ## 3. 不通过项 todo - [ ] P0-X: ... - [ ] P1-Y: ... ## 4. Wave 收尾建议 ``` ## 六、判 Bug 时的"先看一眼"清单 发现疑似 Bug 时,在标 D 之前先查这 5 条: 1. **是不是文档过期?** → 查 `04-doc-conflicts.md`,本 Wave 0 已登记 39 条 2. **是不是角色权限?** → 查 `01-product-overview.md` §二 3. **是不是门店 site_id 隔离?** → 查 `01-product-overview.md` §五.6 4. **是不是飞球数据本身就缺?** → 查 `朗朗桌球停业日期` 记忆 + DWD 是否有数据 5. **是不是 Runtime Context 虚拟时间漂移?** → 查 `01-product-overview.md` §五.7 5 项都排除后再标 D Bug。 ## 七、不在测试范围内 - 生产服务器(SSH)— 只在测试库 - 性能压测 — 仅做基本 Lighthouse / 加载时间 - 跨浏览器 — 仅 Chromium(Playwright 默认) - 多账号并发 — 仅当前登录账号 - 多终端模拟 — 仅微信开发者工具默认尺寸 ## 八、引用 - `01-product-overview.md` 产品全景脑图 - `02a-miniprogram-page-matrix.md` 小程序 21 页指纹 - `02b-adminweb-page-matrix.md` admin-web 19 路由指纹 - `04-doc-conflicts.md` 39 条文档冲突清单 - `05-orphan-pages-cleanup.md` 6 个 admin-web 页面处置 - `docs/audit/changes/2026-05-04__cumulative_baseline_pending_verification.md` 原蓝本 - `apps/etl/connectors/feiqiu/CLAUDE.md` 飞球数据规范(L5 判据) - `db/CLAUDE.md` 数据库分层(L5 判据)