大数据测试通常是指对采用大数据技术的系统或者应用的测试。大数据测试可以分成两个维度,一个维度是数据测试,另一个维度是大数据系统测试和大数据应用产品测试。
大数据测试和传统数据测试的不同:
| 对比项 | 大数据测试 | 传统数据测试 |
|---|---|---|
| 数据量级 | 需要处理的数据量级较高 | 设计的数据量级较低 |
| 数据结构 | 处理的数据包括结构化数据、非结构化数据、和半结构化数据 | 以结构化数据为主 |
| 验证工作 | 验证环节多,数据量大,较复杂 | 抽取数据来验证,相对简单 |
| 环境要求 | 依赖HDFS、YARN和Zookeeper等集群环境 | 依赖传统数据库 |
| 测试工具 | 依赖Hadoop生态系统组建和ETL 测试工具 | 依赖传统数据库和部分测试工具 |
| 测试人员 | 技能门槛高,需要测试人员掌握大数据相关技能 | 技术门槛相对较低 |
与其他类型的测试一样,大数据测试也需要遵循既定的策略和方法。
测试类型划分:功能测试、性能测试、和其他非功能性测试
功能测试常用的测试方法有数据完整性、数据一致性、和数据准确性测试。
数据完整性是指数据记录和信息完整,不存在缺失情况。数据缺失主要包括记录缺失和记录中某个字段信息缺失,两者都会导致统计结果不准确。需要关注两点:数据不多和 数据不少。
数据不多:一般检查全表数据,重要枚举值数据是否重复,以及主键是否唯一
数据不少:
一般检查全表数据或业务相关的重要字段(如日期、品牌、类目和枚举值等)是否缺失。
如果我们知悉数据量,如表中的品牌字段有X条数据,则检查品牌字段的是否有X条数据即可。
如果数据规模本身变动很大,可以通过对比历史数据条数来评估数据波动是否正常。
1、罗列式:这个是非常简单的报表,就是将源数据根据规则进行罗列,不涉及任何计算。罗列式报表的测试重点是检查罗列项是否与需求一致(不缺项,不多项),罗列项的顺序是否正确,以及是否通过罗列方式正确获得预期数据。
2、统计式:单个源数据经过简单的加减乘除、求和、求平均值等计算方法得到的报表。使用抽查验证方法。还考虑到数据的多样性和偶然性等问题,需要进行多种情况组合抽样验证。
3、算法式:是由一个或者多个数据源,根据一定的公式计算汇总得到的报表。此类报表涉及多数据源、多表、和多业务流程,是报表测试的难点。
在测试的时候,需要重点关注数据来源,业务含义,和计算逻辑等。可以采用抽样统计法、直观观察法、和对照法。
对照法:是验证相同数据在不同报表中等效维度是否一致。