前段时间做了些数据测试相关的工作,找了些相关方面的资料,也跟一些一线厂的同学聊了下数据测试方面的东西,然后在团队内部形成了一个初级的数据测试的规范流程以及测试需要进行的场景设计和测试用例设计的方案。
 
ETL测试工程师的主要责任
 对于一个ETL测试工程师而言,其关键的责任有三大类:
  · 源数据分析(数据库、文本等类型数据分析)
  · 业务转换逻辑实现
  · 将经过转换的数据载入至目标表
 其他有:
  · 掌握ETL测试软件
  · ETL数据仓库测试组件
  · 在后端执行数据驱动测试
  · 创建、设计、执行测试用例、计划等
  · 标识问题、提供问题解决方案
  · 梳理业务需求和设计测试策略
  · 写SQL或数据库操作代码完成实现各种测试场景
 
ETL测试场景和测试用例
| 序号 | 测试场景 | 测试用例 | 
| 1 | Mapping Doc Validation | 验证映射文件是否提供了响应的etl信息,且每个映射文档的更新日志有记录 | 
| 2 | Validation(表结构,表字段类型,字段长度,字段名称) | 
根据对应的映射文件验证源与目的地数据仓库的表结构验证源和目标数据的类型一致验证源和目标数据的长度一致验证数据字段类型和格式是指定的类型验证源的数据类型长度不应小于目标数据类型长度针对映射表对数据表的列的名称进行验证 | 
| 3 | 约束验证 | 验证目标表中的约束关系满足我们的期望设计 | 
| 4 | 数据一致性问题 | 
防止语义定义相同,但特定属性的数据类型和长度不一致的问题防止完整性约束滥用 | 
| 5 | 完整性问题(数据量完整,数据内容完整,边界完整) | 
确保所有期望的数据都已经完整的加载到目标表中要比较源和目标数据的个数检查出现的任何不合格的记录检查目标表列中的数据没有出现被截断的情况对边界值进行分析检查要检查比较目标数据仓库和源数据的关键字段的唯一性 | 
| 6 | 正确性问题 | 
数据要没有拼写错误或不准确的记录无null 非唯一或超出范围的数据记录存在数据字段类型要正确 | 
| 7 | 转换验证 | 验证转换逻辑的正确性 | 
 
简单数据测试方案设计
以上可能是比较完整的数据测试的工作内容,但是像我们只是做一些数据校验,数据库测试的话是可以在以上基础上进行修剪的。
例如我在与美团的数据产品经理聊天时,他也是讲到数据测试也并没有一套比较标准化的流程,现在也都是在探索阶段,也是要根据自身的业务,数据特性来进行测试。
因为我目前只是做简单的数据测试,其实还差的远,如果真想要做好的话,还是需要跟做数据开发似的,需要了解数据,了解如何处理数据,无论是对于数据工具的使用还是整个数据开发套件的了解。