3、大数据测试
前言
在个人看来,大数据测试可以归为一个测试体系。因为它不仅要验证正常的业务功能,还要针对大数据所使用的工具/框架进行测试,这需要大数据测试人员掌握大数据技术,比如说Hadoop生态圈的技术:Hadoop生态圈技术栈
大数据是什么
大数据是指那些数据量特别大、数据类别特别复杂的数据集,这种数据集不能用传统的数据库进行转存、管理和处理。
大数据测试策略
1、基本功能测试
不管是什么样的测试,首先要保证的就是基本功能的正确性。从黑盒层面来看,大数据测试可以看成三个步骤:
大数据黑盒视图
1、原始数据->大数据处理
这里要测试的是原始数据的正确性,比如数据来源是埋点,那么就需要保证埋点上报的正确性,也就是对埋点进行测试。
测试文档可以是埋点测试文档
2、大数据处理
这里要测试的是大数据对原始数据处理的正确性,大数据对原始数据处理完后,会把处理后的数据保存在一个/多个数据仓库中(比如es),这时候可以通过查询数据仓库的数据来进行。
测试文档可以是详细设计文档
3、前端展示
前端展示的数据,有两个可能性:
a.展示的数据直接来源于大数据(比如clickhouse)
b.展示的数据是经过后端处理的
所以这里的测试,是需要根据具体的业务和实际的技术方案来进行
测试文档可以是需求文档
2、大数据处理步骤的测试
步骤图示从上图可以看出,大数据处理步骤大体上可以分成三个步骤:
-
1、原始数据进入大数据步骤
首先要确保原始数据在到达hdfs/kafka前的正确性
1.确保原始数据正确进入系统中
因为原始数据可能来源于埋点、关系型数据库、日志系统、其它系统等地方,所以要首先保证原始数据能够正确进入系统,有可能在进入时候因为数据格式不匹配而报错
2.确保加载进来的数据和原始数据是一样的
当原始数据进入系统后,需要看下加载进来的数据是否和原始数据一样,或者说是否符合下一步所需的数据格式标准。
3.确保数据正确提取和加载到hdfs/kafka -
2、数据在计算框架中的处理(ETL)
当文件存入HDFS之后就要通过MapReduce进行处理了。这个阶段可能出现的问题包括但不限于编码不对、节点配置错误、聚合不正确、输出格式不对等问题。一般需要进行如下的测试:
1.MapReduce进程正常工作
2.数据处理完成,输出文件正确
3.验证map时生成的key-value是否正确
4.验证reduce结束后聚合是否正确
5.输出格式是否符合要求 -
3、处理后的数据输出阶段
此阶段主要是生成处理过的最终数据文件以及存放到数据仓库。一般需要进行如下的测试:
1.检查转换规则被正确应用
2.检查数据加载到目标系统中且完整
3.通过将目标数据与HDFS文件系统数据进行比较来检查没有数据损坏
这些过程中,可以通过Hive得到分析报告来做进一步的验证。
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。