大数据质量
首先说下大数据的3V特性。
3V即 “容量”(Volume)、“速度”(Velocity)和 “种类”(Variety)。大数据应该具有数据量大、存储和处理速度快、数据多样化等三大特征。
大数据的数据质量主要从下面四个方面来看。
1. 数据一致性
目标表和源表不一致,条数,某些字段汇总后总量不一致
2. 数据及时性
该到的没有到
3. 数据完整性
分区去少,某些分类缺少,某些时间段缺少,主键不唯一
4. 数据准确性
数据取值范围,数据计算结果,数据关系是否准确。
大数据分为实时数据和离线数据。
离线数据通常为T+N生成的数据,测试方法主要有以下几种。
1. 基于数据分布情况的测试
根据表内数据长相,看是否存在问题,最值,数量,枚举分布,时间范围等等。
2. Code review
大数据的处理通常由一堆脚本相互依赖关联组成,同时脚本的编写和发布通常没有严格的卡点控制。
所以对脚本的code review和脚本的参数和依赖检查也是一个比较好的可以避免早期发现问题的方法。
3. 复杂业务的二次编码
根据需求可以简化版的重新实现一遍业务逻辑,不关注过程,关注结果,然后对比两者的差异,这种方式对开发资源的消耗很大,谨慎使用。
4. 数据对比
针对迁移和数据转换类的,进行数据对比,从总数,总量,和关键信息的求差对比。
5. 数据稽核
找到数据与数据的关系,利用数据的关系做稽核,如 公司收入 = 充值金额 - (下单金额 - 支付未完成 ) + 欠款 (注:公式不严谨,具体业务具体分析)
实时数据的测试方法大多和传统测试一样,通过观察程序输入和输出才对比单次处理的正确性,然后通过离线
的方式最测试和稽核。
其他的一些测试方案
1. 双引擎发对比测试方案
获取上游在线的数据流,简单实现一套与业务一样的流程,生成一样的结果最后与真实结果进行对比,找出问题,消耗巨大,且被测系统,有辨识和处理正常数据和测试数据的能力。