大数据测试
一、什么是大数据测试
-
对于大数据而言,我们所拥有的大量数据可能以任何类型的格式进行存储,例如,图像,音频等,每条数据记录的结构和格式可能都不同。与传统数据库相比,大数据具有高容量、高速和多样性等特点
-
容量:大数据应用采集的数据量很大,它们可能产生于不同的来源
速度:大数据应用的数据都是快速创建的,所以处理的速度必须快
种类:数据会有多种格式
-
大数据的数据格式
结构化数据:数据库、数据仓库、ERP/CRM
半结构化数据:CSV/XML/JSON
非结构化数据:视频/音频、图片、文档
-
大数据测试的策略和步骤
- 大数据项目的工作流中有多个过程域需要进行测试
- 大数据项目中的测试通常包含功能测试、数据库测试、基础架构测试和性能测试
- 包含海量数据的验证兼顾大数据基础架构自身的测试,所以在制定大数据项目测试策略的时候,建议分段进行
- 不同的架构指定不同的测试主体,明确不同的测试目标,再应用不同的测试方法
- 基本原则遵循:基础架构测试—数据库测试—功能测试—性能测试
-
功能测试
-
也是根据用户需求来分析,主要针对大数据应用程序中的前端部分。这里的前端,指的是与后端框架接口的,基于web的应用程序。这类前端应用程序的测试可直接使用一般web应用程序的功能测试方法进行测试,但需要特别注意接口测试,因为接口本身的正确性与安全性将是制约大数据应用程序整体表现的关键特性。
-
数据导入、预处理验证阶段
- 各种数据源如网络日志、物联网、社会网络及互联网文本和文件等被按需加载到hdfs中,在这个过程中可能会由于不正确复制、存储而导致错误数据,对于这种情况,可采用以下方式进行测试
- 输入文件与源文件进行对比,保证数据的一致性
- 根据数据需求来保证获取数据的准确性
- 验证文件被正确加载进hdfs,且被分割,复制到不同的数据节点
- 各种数据源如网络日志、物联网、社会网络及互联网文本和文件等被按需加载到hdfs中,在这个过程中可能会由于不正确复制、存储而导致错误数据,对于这种情况,可采用以下方式进行测试
-
mapreduce数据输出验证阶段
- 当数据加载进行hdfs后,mapreduce开始对来自不同数据源的数据进行处理。在这个过程中可能会出现mapreduce处理过程中的编码问题。如在单一节点上运行正确,在多个节点上运行不正确的问题,包括不正确的聚合、节点配置、输出格式等。针对这个阶段,可采用以下验证手段:
- 验证梳理数据处理正常完成,输入文件正常得到
- 在单个节点上验证大数据的业务逻辑,进而在多个节点上进行相同的验证
- 验证mapreduce处理过程的key/value对是否正确产生
- 在reduce过程结束后验证数据的聚合是否正确
- 通过源文件验证输出数据来保证数据处理正确完成
- 按照大数据业务所需,验证输出数据文件格式是否符合要求
- 当数据加载进行hdfs后,mapreduce开始对来自不同数据源的数据进行处理。在这个过程中可能会出现mapreduce处理过程中的编码问题。如在单一节点上运行正确,在多个节点上运行不正确的问题,包括不正确的聚合、节点配置、输出格式等。针对这个阶段,可采用以下验证手段:
-
验证大数据ETL到数据仓库
- mapreduce过程结束后,产生的数据输出文件将按需转移至数据仓库或其他事务型数据库,在此过程中,可能会由于不正确的应用转换规则,从hdfs中提取的数据不完全而带来问题。针对这个阶段,可采用以下方法:
- 验证转换规则是否被正确应用
- 通过比较目标表数据和hdfs文件数据来验证是否有数据损坏
- 验证目标系统数据加载是否成功
- 验证目标系统的数据完整性
- mapreduce过程结束后,产生的数据输出文件将按需转移至数据仓库或其他事务型数据库,在此过程中,可能会由于不正确的应用转换规则,从hdfs中提取的数据不完全而带来问题。针对这个阶段,可采用以下方法:
-
验证分析报告
- 从数据仓库或hive中得到数据,可通过报表工具得到分析报告,这个过程可能会产生报表定义不能达到要求的报表数据问题,在这个过程中,可通过查询来验证报表是否满足业务需求
-
-
性能测试
- 大数据系统性能主要包括吞吐量、任务完工时间、内存利用率等多个指标。反应大数据分析平台的处理能力,资源利用能力等性能。可通过hadoop性能监控器来检测运行状态性能指标和瓶颈问题,性能测试采用自动化方式,测试系统在不同负载情况下的性能-
-
容错性测试
- 可从部分失效中自动恢复,而且不会影响整体性能。当故障发生时,大数据分析系统应该在进行恢复的同时可以继续运行,在发生错误时某种程度上可以继续操作,需根据应用场景来设计解决方案和具体部署,然后手动测试
-
可用性测试
- 保证数据应用业务的连续性,需要严格进行测试,以手动测试为主
-
扩展性测试
- 弹性扩展能力对于大数据时代的文件系统尤为重要,文件系统扩展性测试主要包括测试系统弹性扩展能力及扩展系统带来的性能影响,验证是否具有线性扩展能力,以手动测试为主
-
稳定性测试
- 长时间运行时,是否允许,通常采用自动化方式进行。
-
部署方式测试
- 大数据能够构建大规模、高性能的文件系统集群,不同的应用,文件系统部署方式会有显著不同
- 部署方式测试需要测试不同场景下的系统部署方式,包括自动安装配置、集群规模、硬件配置、自动负载均衡等。需要根据应用场景来设计解决方案和具体部署,再进行手动测试
-
数据一致性测试
- 数据一致性是指文件系统中的数据与从外部写入前的数据保持一致,即写入数据与读出数据始终是一致的,数据一致性能够表明文件系统可保证数据的完整性,不会导致数据丢失或数据错误。测试可编写脚本进行自动化测试
-
压力测试
- 大数据分析系统的负载能力是有上线的,系统过载时,系统就可能存在性能下降,功能异常、拒绝访问等。压力测试是验证系统的压力下,系统是否仍旧可以运行。
二、大数据测试
-
很好的一篇参考文章
-
又是一篇精华
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv72603