ETL测试范围列表

编号 类型 描述 备注
1 功能测试 验证目标表所在库名
2 功能测试 验证目标表名
3 功能测试 验证目标表数据编码 特殊符号或者乱码符号的处理规则
4 功能测试 验证目标表所有字段名
5 功能测试 验证目标表字段顺序 一般没有这个需求
6 功能测试 验证目标表的字段类型转换 即验证从源表类型转换成目标表类型是否正确,是否能够满足源字段在转换后的存储。如,源表字段是VARCHAR类型,目标表对应字段是CHAR类型;源表字段是DOUBLE类型,目标表对应字段是INT类型。
清洗的过程中一般不会转化字段类型,平接推数据的时候会转,会发生在一头一尾,数据不做逻辑上的改动采用抽样测试,尽量会抽比较复杂的数据。
1.校验表结构。源信息,mysql字符串 char 到hive里面类型都是string,虽然字段产生对应,但是涉及到了类型转化。
2.校验里面的数值。可能乱码,字符集不匹配,数据丢失..... 例如:日期<->数字可能出错
7 功能测试 根据关联逻辑,验证目标表数据总量 表字段的唯一性
8 功能测试 根据关联逻辑,验证隔离数据的处理 业务上不满足关联逻辑的数据可能被隔离,但是不丢弃,所以要单独存放被隔离的数据,或者日志记录。例如:用一个字段枚举值0、1,屏蔽异常数据,区分是否有效,确认判断舍弃的逻辑,这个需要单测。可能是数据处理的有问题,也可能是上游提供的数据有问题,会把过滤掉的异常数据专门存放到一个地方,我们需要暴露这样的问题。
9 功能测试 基于已有数据,验证目标表每个字段的转换逻辑 已有真实数据可能不足以覆盖所有的转换逻辑;
含其特殊默认转化逻辑,如大小写是否区分、null值的自动填充处理、去重规则
10 功能测试 基于已有数据,补充构造一些测试数据一覆盖
所有转换逻辑,验证目标表每个字段的转换逻辑
可覆盖所有的逻辑,与上面一个二选一
11 功能测试 验证目标表中抽样数据or全量数据的正确性 确定抽样策略
12 功能测试 验证目标表中关键字段的:
区间,如min、max,一般针对值字段;
分布,如值范围的list、count、percent,一般针对值是列表型字段;
总计,即sum,一般针对值字段;
饱和度,即空字段和非空字段count和percent,数据有效性校验
时间有限的情况下关键字段的抽样比对选取测试数据方式,确保测试关键字段的大框架没问题,就算再怎么歪,也不会歪的离谱
13 功能测试 验证相同源之间的日常更新策略 具体步骤参见:前文更新策略测试
14 功能测试 验证不同源之间的日常更新策略
15 功能测试 验证数仓初始化更新策略 即把历史全量数据迁移到数据仓库以初始化数据仓库
16 功能测试 验证数仓reload更新策略 当数仓数据要从上游系统全量Reload数据,需要根据更新策略分析重跑当前层ETL的方法,以及后续各层的Reload方法、Recalculate方法,如后续ETL重跑、Dashboard重跑、标签回算等的影响。
17 功能测试 验证调度策略
18 功能测试 验证监控数据 主要是去每天自动验证算出来的数据对不对,如果数据有问题自动发邮件告警通知相关人员去判断问题所在
19 单元测试 自定义函数单元测试 如果是通用的UDF且之前测试过的就不必再测
20 规范检查 校验各种命名规范 如使用临时表的命名
21 规范检查 校验实现方式是否统一 如避免同时用dataframe和sql两种方式实现
22 规范检查 校验复杂任务是尽量拆分 如避免巨复杂sql(如超过100行),以保证可读性和可维护性
23 规范检查 校验常用逻辑有提取为公共模块 如定义常用UDF
24 规范检查 校验无hardcode一些配置
25 规范检查 校验每个表DDL中定义的文件的压缩格式、存储格式,并且是统一的
26 性能测试 统计单目标表的任务执行时间以及资源占用情况 基于某环境参数(系统资源、磁盘资源)和数据量,用于评估性能
27 性能测试 统计单层所有目标表任务执行时间以及资源占用情况
28 性能测试 统计所有层所有目标表任务执行时间以及资源占用情况
29 功能测试 验证目标表pt_tag字段 hive和mysql如果有pt,都要有pt_tag。用来同步数据,需要非分区日期字段映射
30 功能测试 验证MYSQL目标表索引正确 1.where 条件里面的字段都要加上索引
2.index_表名_字段名称
posted @ 2021-10-09 15:06  葛上亭长  阅读(162)  评论(0)    收藏  举报