上线前测试
上线前充分测试,以保证在交付上线的时候,数据的准确性。主要可以从以下几个点去测试:
-
数据测试整体从一致性和精确性两个点去做测试。
- 条数核对。与底层逻辑的数据量进行核对,数据条数保持一致
- 整体调查。查出每一个字段,看是否有字段全空,全0等单独列异常情况存在。
- 明细层事实数据着重测试。对于金额、数量等度量值着重测试,避免*100,翻倍等异常情况。
- 抽样调查,抽部分数据查看每个字段数据是否与预期值一致。
- 多维度指标单维度汇总上卷核对。如果指标维度较多时,可以先核对总量是否与底层逻辑一致,再核对单个维度指标,是否与底层表一致。
- 新老统计对比。如果有模型重构,数据迁移等情况时,需要核对新老逻辑生成的数据是否一致。
- 最好在前期技术方案评审时,就写好测试方案以及着重要测试的点以及该点的数据表现预期值。
-
上线前代码review
- 表命名字段命名是否与数仓规范一致。
- 关联逻辑是否正确、过滤逻辑是否正确。需要结合需求和业务逻辑结合审核。
- 如果前期有输出逻辑模型设计和物理模型设计文档,是否与文档结果一致。
- 代码注释审核。重要变更和复杂逻辑处理应该有注释
- 依赖关系是否配置全面。是否有跨层级依赖、循环依赖、倒置依赖等情况。
上线后
上线后往往需要配置质量监控,避免因为上游数据发生波动等其他异常情况的发生
主要从以下几个点去考虑监控的配置。
- 完整性
- 分区判空
- 分区波动
- 字段判空
- 指标值(平均值、总量等)波动
- 每日新增数量波动校验
- 一致性
- 字段重复值检测
- 两个表之间的比较。整体数据量、指标值(平均值、加和)等是否与底层表或者某段计算逻辑保持一致。
- 精确性
- 字段格式校验,比如手机号、邮箱等
- 特殊字段比如金额等是否在正常范围之内。防止翻倍,单位换算等引起bug
- 业务逻辑校验。根据业务逻辑校验数据表现。具体情况具体分析。
- 及时性
1.给任务进行重要等级分类,保障调度时优先级较高的任务优先获取资源。
2.某些数据应用需要在特定时间内完成展现,一般如数据画像,业绩汇报数据等,所以需要给任务配置最晚完成时间。
数据故障发生率
数据故障发生率、起夜率是个较好的衡量数据质量以及脚本稳定性的标准。