什么是大数据测试?
大数据测试,通常是对采用大数据技术的系统或应用的测试。它可以分成两个维度,一个是数据的测试,另一个是大数据系统或应用产品的测试
数据的测试主要关注数据的完整性、准确性、一致性等,是大数据测试中非常重要的一环。若数据测试不够严格,则后续所有的数据应用都可能出现偏差甚至错误,所以做好数据测试很关键
大数据系统一般指使用 Hadoop 生态系统组件搭建的或自主研发的大数据系统。自主研发的大数据系统主要包括数据存储、计算、分析等应用。大数据应用产品比较丰富,典型的有 BI 报表、数据挖掘产品、数据分析平台等
大数据测试与传统数据测试的区别
大数据测试与传统数据测试在数据量级、数据结构、验证工作及环境要求等多方面存在差异
| 特性 | 大数据测试 | 传统数据测试 |
|---|---|---|
| 数据量级 | 需要处理的数据量级比较大 | 涉及的数据量一般 |
| 数据结构 | 处理的数据包括结构化、非结构化、半结构化数据 | 以结构化数据为主 |
| 验证工作 | 验证环节多,数据量大,较复杂 | 抽取数据来验证,相对简单 |
| 环境要求 | 依赖 HDFS、YARN、Zookeeper 等集群环境 | 依赖传统数据库 |
| 测试工具 | 依赖 Hadoop 生态系统组件及 ETL 测试工具 | 依赖传统数据库及部分测试工具 |
大数据测试流程
大数据测试流程与传统测试流程相似,主要分为以下几个步骤:
- 分析业务需求
- 制定测试计划
- 设计测试用例
- 准备测试数据
- 大数据测试执行
- 生成测试报告并做结果分析
- 测试完成
在大数据测试中,我们需要以流程规范为依托,以方法策略为指引,对各个环节做好质量把控,提前发现问题,保证项目的正常交付及应用
大数据测试类型及方法
数据质量测试
- 完整性:数据信息是否存在缺失的情况。
- 一致性:数据是否遵循了统一的规范,数据之间的逻辑关系是否正确和完整。
- 准确性:数据记录的信息是否存在异常或错误。
- 唯一性:数据是唯一不重复的。
- 及时性:数据从产生到可以查看的时间间隔,也称数据的延时时长。
-
功能测试
数据处理逻辑检查:异常值、脏数据、特殊数据
- 主键结构是否合理、去重规则是否合理、输入输出是否正确
- 数据存储检查:表类型选择、是否压缩
- SQL 文件测试:开发规范、SQL 语法
- Shell 脚本测试:输入输出文件路径、输出日志、参数配置是否合理
-
性能测试
基准测试:对大数据系统基础能力的测试
- 稳定性测试:对系统长期稳定运行能力进行测试
- 压力测试:验证系统在较大压力下,系统是否仍然能够正常运行
- 负载测试:确定在满足性能指标情况下系统所能承受的最大负载量
- 容量测试:测试预先分析出反映软件系统应用特征的某项指标的极限值
并发测试:测试多个用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题
ETL 测试
ETL 测试是一个以数据为中心的测试过程,用于验证数据是否已按预期方式转换并加载到目标中。在实际工作中,我们经常需要根据不同的业务需求定制不同的数据,如何验证提供的业务数据最终的正确性,这就涉及 ETL 测试
如何学习大数据测试?
大数据应用系统庞大复杂,此类项目测试时涉及多种工具、技术和框架。为保障大数据项目在通过测试后,可以稳定、安全、无误地运行,大数据测试工程师必须掌握数据采集、数据存储、数据计算和分析、数据管理调度、数据测试方法及方案设计、数据测试平台建设等必备知识及其他各类软硬素质
计算机基础知识:如数据结构与算法、计算机网络、Linux、数据库、代码版本管理工具等
- 至少掌握一门编程语言:如 Python、Java、Scala、Go 等
- 大数据技术:如大数据发展、大数据类项目流程、大数据处理流程、大数据生态系统(HDFS、MapReduce、Hive、YARN、Zookeeper、Kafka、Flink、Spark、HBase、Azkaban等)
- 大数据测试技术:如大数据测试方法论、大数据测试工具、大数据测试技能
- 其他软技能:如具备较强的思维能力、良好的沟通能力、问题分析定位能力、责任心及好奇心等
- 持续学习:如具备掌握技术前沿趋势、洞察及学习新技术及知识的能力

