测试数据与边界用例
事实表上线前要用构造数据覆盖边界情况:空金额、负数量、同键多版本、跨天边界、时区切换日、重复上报。测试集与期望结果一起入库,模型每次变更先跑回归再放行。只测正常数据是通病,而真正在上线第一天击穿加工逻辑的几乎都是脏数据与边界值。
基本信息
| 边界类型 | 空值 / 负数 / 跨天 / 重复 / 时区切换 |
|---|---|
| 方法 | 构造小型数据集跑验收用例 |
| 留存 | 用例与期望结果一起入库存档 |
| 回归 | 模型变更前必须跑既有用例 |
| 用例标识 | 用例 ID 可回溯到需求或缺陷单 |
| 覆盖要求 | 既覆盖正常路径,也覆盖异常与边界路径 |
典型使用场景
- 加工逻辑验收:验证去重、累计、拆分逻辑对边界数据的处理
- 回归测试:修改字段口径后确认旧用例结果未变
- 问题复现:用最小数据集复现线上异常,快速定位加工环节
- 交接资产:新同学接手时通过用例理解模型的关键约束
- 上线放行:把用例通过作为发布检查项之一
边界样例定义
边界样例定义
order_id=P1 amount=NULL -- 未定价订单,检查空值处理
order_id=P2 amount=-10.00 -- 纯退货单,检查负值汇总
order_id=P3 两条更新版本 -- 去重取末条,检查同键多版本
order_id=P4 跨 23:59:59 -- 日期归属,检查业务日切分
order_id=P5 同键重复上报两次 -- 检查幂等与去重键
order_id=P6 夏令时切换日 -- 检查时区折算与日界边界用例检查项
| 边界 | 期望结果 | 验证点 |
|---|---|---|
| 空金额 | 计入未定价或按规则排除 | 空值未被当作 0 |
| 负数量 | 净额正确抵减 | 符号未被反转 |
| 同键多版本 | 只保留最新一条 | 去重逻辑生效 |
| 跨天数据 | 归入正确业务日 | 时区与时点判断正确 |
测试用例是资产:每次模型变更先跑回归,再放行;没有期望结果的用例等于没写,跑完无法判断对错。
边界用例要包含引擎相关的坑点,例如空值与空串的区别、分区列大小写、时间函数在夏令时的行为差异;这些细节在不同引擎版本间并不一致,写进用例才能避免升级踩坑。