首页/数据/数仓建模速查/事实表的测试数据与边界用例
维度与事实设计149 条

事实表的测试数据与边界用例

上线前用构造数据覆盖边界:空金额、负数量、同键多版本、跨天边界、时区切换日;测试集与期望结果一起入库。

数仓建模速查数据更新于 2026-10-13

测试数据与边界用例

事实表上线前要用构造数据覆盖边界情况:空金额、负数量、同键多版本、跨天边界、时区切换日、重复上报。测试集与期望结果一起入库,模型每次变更先跑回归再放行。只测正常数据是通病,而真正在上线第一天击穿加工逻辑的几乎都是脏数据与边界值。

基本信息

边界类型空值 / 负数 / 跨天 / 重复 / 时区切换
方法构造小型数据集跑验收用例
留存用例与期望结果一起入库存档
回归模型变更前必须跑既有用例
用例标识用例 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
负数量净额正确抵减符号未被反转
同键多版本只保留最新一条去重逻辑生效
跨天数据归入正确业务日时区与时点判断正确
测试用例是资产:每次模型变更先跑回归,再放行;没有期望结果的用例等于没写,跑完无法判断对错。
边界用例要包含引擎相关的坑点,例如空值与空串的区别、分区列大小写、时间函数在夏令时的行为差异;这些细节在不同引擎版本间并不一致,写进用例才能避免升级踩坑。

易错点

  • 只测正常数据,上线第一天被脏数据击穿,返工成本高于测试成本
  • 用例没有期望结果,跑完不知道对错,回归测试形同虚设
  • 用例不入库、只存在于个人电脑,人员变动后资产直接消失
  • 模型改了却未跑既有用例,历史问题重新出现且无人察觉

数据来源与参考

  • 数仓测试实践:边界用例设计
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌