上线前的四类用例
脚本上线前至少跑四类用例:空表与空分区、重复数据去重、金额极值与负数、跨月与闰年等时间边界。方法是用固定样本集产出预期结果做比对,而不是在生产窗口试错。用例脚本纳入代码库,口径改动后自动回归,这是把「靠经验上线」变成「靠证据上线」的最低成本手段。
基本信息
| 用例类型 | 空、重复、极值、时间边界 |
|---|---|
| 样本 | 固定的测试数据集 |
| 验证方式 | 与预期结果比对 |
| 回归 | 口径改动后重跑全部用例 |
| 执行环境 | 测试库,结构与生产一致 |
典型使用场景
- 新脚本首次上线:先跑空表与空分区,确认不报错也不产出脏数据
- 去重逻辑变更:构造重复明细与迟到重复,验证保留哪一条符合预期
- 金额类指标:准备零值、负数(退款)、超大金额,验证汇总不溢出、精度不漂移
- 时间边界:月初月末、跨年、闰年 2 月 29 日、夏令时切换日各跑一次
- 口径变更回归:把用例接进流水线,每次改动自动比对结果
边界与极值用例
边界与极值用例
-- 时间边界:月末与次月首日必须各归其位
SELECT dt, count(1) AS cnt, sum(pay_amt) AS pay_amt
FROM dws_trade_store_day
WHERE dt IN ('2026-10-31', '2026-11-01')
GROUP BY dt;
-- 极值用例:负金额(退款)与超大金额不应被过滤或溢出
SELECT min(pay_amt) AS min_amt, max(pay_amt) AS max_amt
FROM dwd_trade_order_di
WHERE dt = '2026-10-12';四类用例与检查点
| 用例 | 构造数据 | 预期结果 |
|---|---|---|
| 空表或空分区 | 无数据分区 | 任务正常结束,产出为空且不报错 |
| 重复数据 | 同主键多条 | 按既定规则保留一条 |
| 极值 | 0、负数、超大金额 | 不溢出、不被误过滤 |
| 时间边界 | 跨月、跨年、闰日 | 各归其日,不重不漏 |
只测当天常规数据,周期性缺陷会在月末、年末集中爆发;时间边界用例应在开发阶段就跑,而不是等生产事故来发现。
测试库要与生产保持同结构、同分区格式,只测逻辑不测结构会让用例全绿但上线失败。