数据中台测试方法及流程
一、前言
1.数据测试是什么
- 数据测试是通过各类方式、方法对数据中台各个阶段的产出进行检查、核对、验证并输出结果的过程。
2. 为什么要做数据测试
- 通过过程管理和过程物的输出,使项目能够正常进行交付。
- 提前发现开发bug,减少bug率,提高数据的正确性。
- 通过过程中发现的数据问题,促进客户优化业务和指标逻辑。
- 通过检查全链路节点,确保链路节点正常、有效、及时。
- 通过检查数据开发内容,确保数据开发过程符合项目制定的各类标准、规范。
二、测试方法
1. 测试原则
- 实用性:紧密结合项目自身特点和实际情况,以满足业务使用为首要目标,杜绝无意义的测试工作
- 有效性:从数据测试的特性触发,围绕数据本身内容及其使用过程中的重难点场景,能够切实发现问题、解决问题、甚至杜绝数据问题。
- 最小化:遵循Good-enough原则,以需求为导向,平衡投入和测试产出比,采取不同测试手段和测试方法,力求达到最小投入和最大产出。
2. 测试维度介绍
- 完整性:数据信息是否存在缺失的状况,数据缺失的情况可能是整个数据的记录缺失,也可能是数据中某个字段内容的缺失。
- 有效性:
- 对于数据而言,数据是否符合业务约束,能否满足业务使用要求
- 对于任务而言,有效性是指任务能否具备执行条件,能够满足正常运行的相关要求
- 规范性:指任务、代码、数据在组织形式、命名、呈现形式上是否符合既定的标准和规范
- 准确性:指数据记录的信息是否存在异常或错误,最为常见的数据准确性错误如乱码、异常大或异常小的数据等。
- 及时性:指数据从产生到最终使用的时间间隔,也叫数据的延时时长。及时性对于数据分析来说要求并不高,但如果数据分析周期过长,就会导致分析得出的结论已失去参考借鉴意义。
3. 测试阶段介绍
A. DEV测试
一般在开发环境进行,也叫自测或自验证,一般由开发人员自己或交叉进行测试,也可有项目组测试角色(例如:测试、QA)进行。
DEV测试要注意以下事项:
- 不能只测试一条正确执行路径,要考虑到所有可能得情况。
- 要确保所有测试都能够通过,避免间接损害其他测试内容。
B. SIT测试
在DEV测试之后进行的测试,一般是第三方的BA/PD、客户的技术人员进行,目的是从数据的全链路进行数据、任务的验证,该阶段主要在测试环境进行,进一步检测代码逻辑及运行结果。
C. UAT测试
该阶段一般由客户业务人员来进行,它是一项确定数据结果是否能够满足客户数据需求的测试,这个阶段也就是上生产的最后一步演练,一般情况下是用生产环境进行测试。
4. 测试范围介绍
- 数据上云阶段(对应ODS层):包括数据集成任务、数据加密处理任务、增量数据合并任务,以及数据上云的结果表。
- 数据治理阶段:包括DWD层数据处理任务、DWS数据处理任务、以及DWD层的结果表、DWS层的结果表。
- 指标/标签开发阶段:包括ADS数据处理任务和ADS指标结果。
- 数据服务阶段:包括数据服务任务、数据服务结果表、数据服务接口。
ODS原始数据层、DWD明细数据层、DWS服务数据层、ADS应用数据层
各层说明:https://blog.csdn.net/wjt199866/article/details/115184169
5. 测试场景介绍
6. 测试流程(含BA/PD)
三、测试模版工具
1. 测试方案结构模版
2. 数据上云-云上云下数据核对
3. 数据治理-数据任务检查
4. 数据治理-开发规范Checklist模板
5. 数据治理-测试用例模版(数据完整性)
6. 指标/标签开发-测试用例模版(指标准确性)
7. 指标/标签开发- 测试用例模版(指标时间分布&合理性)
- 分多天进行测试和验证