大数据测试
分类:1)功能性测试
2)非功能性测试
功能性测试
步骤:1)数据导入/预处理验证阶段
2)MapReduce数据输出验证阶段
3)验证大数据ETL到数据仓库
4)验证分析报告
数据导入/预处理验证
方式:1)输入文件与源文件进行比对,保证数据的一致性
2)根据数据需求来保证获取数据的准确性
3)验证文件被正确的加载进HDFS,且被分割,复制到不同的数据节点中
MapReduce数据输出验证阶段
方式:1)验证梳理数据处理正常完成,输出文件正常得到
2)在单个节点上验证大数据的业务逻辑,进而在多节点上进行相同验证
3)验证MapReduce处理过程的key/value对是否正确生产
4)在Reduce过程结束后验证数据的聚集合并是否正确
5)通过源文件验证输出数据来保证数据处理正确完成
6)按照大数据业务所需,验证输出数据文件格式是否符合要求
验证大数据ETL到数据仓库
方式:1)验证转换规则是否正确应用
2)通过比较目标表数据和HDFS文件数据来验证是否有数据损坏
3)验证目标系统数据加载是否成功
4)验证目标系统的数据完整性
验证分析报告
方式:从数据仓库或者Hive中得到的数据,可通过报表工具得到分析报告
非功能性测试
分类:1)性能测试
2)容错性测试
3)可用性测试
4)扩展性测试
5)稳定性测试
6)部署方式测试
7)数据一致性测试
8)压力测试
架构测试
特点:至少在Hadoop环境下进行性能测试、故障恢复测试,以应改进效率和应对可能的最糟糕的情况
性能测试
指标:吞吐量、任务完工时间、内存利用率等
方式:可通过Hadoop性能监控器来监测运行状态性能指标和瓶颈问题,性能测试采用自动化化方式进行,测试系统在不同负载情况下的性能
分类:1)数据提取、存储效率
2)数据处理效率
3)子组件工作效率
容错性测试
特点:可从部分失效中自动恢复,而且不会验证的影响整体性能
方式:当故障发生时,大数据分析系统应该在进行恢复的同时继续以可接受的方式进行操作,在发生错误时某种程度上可以继续操作,需根据应用场景来设计解决方案和具体部署,然后手动测试
可用性测试
特点:高可用性保证数据应用业务的连续性
方式:需要严格进行测试和验证,以手动测试为主
扩展性测试
特点:文件系统扩展性测试主要包括测试系统弹性扩展能力(扩展/回缩)及扩展系统带来的性能影响,验证是否具有线性扩展能力
方式:以手动测试为主
稳定性测试
特点:主要验证系统在长时间(7/30/180/365*24)允许下,系统是否仍然能够正常运行,功能是否正常
方式:通常采用自动化方式进行,LTP、10ZONE、POSTMARK、FIO等工具对测试系统产生负载,同时需要验证功能
部署方式测试
特点:1)针对不同应用和解决方案,文件系统部署方式会有显著不同
2)部署方式测试需要测试不同场景下的系统部署方式,包括自动安装配置、集群规模、硬件配置(服务器、存储、网络)、自动负载均衡等
方式:需要根据应用场景来设计解决方案和具体部署,再进行手动测试
数据一致性测试
含义:数据一致性是指文件系统中的数据与从外部写入前的数据保持一致,即写入数据与读出数据始终是一致的
方式:测试可用diff、md5sum编写脚本自动化测试,LTP也提供了数据一致性的测试工具
压力测试
含义:验证系统造大压力下,包括数据多客户端、高OPS压力、高IOPS/吞吐量压力,系统是否仍然能够正常运行,功能是否正常,系统资源消耗情况