软件测试毕业论文优秀范文推荐10篇之第五篇:大数据软件测试技术的类型及挑战
摘要:随着大数据技术的发展、大数据系统不断出现,用户对系统质量的期望,大数据测试技术也将不断完善。该文把大数据测试和传统软件测试进行对比,详细阐述了大数据功能测试的步骤,简单介绍了几种大数据非功能测试类型以及大数据测试面临的挑战。
关键词:大数据; 软件测试; 步骤;
大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化力的海量信息,在运行方面具有数据流庞大、数据种类繁多、数据价值量密度较低以及数据运行和处理的速度极快等基础特征。[1]当前,我国大数据的应用领域已经从政府、金融延伸到医疗、生物、电商、安防等各行各业。随着云计算技术与应用、物联网、大数据等技术的不断发展,应用于各个领域的大数据系统也不断形成。这种大数据系统的系统结构复杂,数据类型更加丰富,更有TB级别的海量数据量,要使系统平稳运行,比起传统软件更是需要软件测试技术作为支撑。随着大数据技术的发展也逐步形成具有独特特征的大数据测试技术。
1 大数据测试与传统测试的比较
传统软件测试是在系统已知的前提下对从用户需求提取到的测试任务进行的测试,用户的行为直接影响系统的最终执行结果。传统软件测试最主要的两种测试类型为功能测试和性能测试,都是简单的从用户界面入手,比如12306中注册、登录、下订单、支付等,可直接使用黑盒测试方法即可。传统软件测试技术已经比较成熟,也形成了各种配套的自动化测试工具。
软件测试类型很多,包括功能测试、性能测试、安装与卸载测试、兼容性测试、健壮性测试、文档测试、回归测试等等。大数据测试和传统软件测试相比,主要测试类型都是功能测试和性能测试,但在测试目的和测试流程存在一定差异,主要表现在大数据测试更多的是去验证其数据处理而不是验证单一的功能。
大数据测试与传统测试的区别如表1所示。
2 大数据功能测试步骤
整体而言,大数据功能测试可以分为下面四个步骤:
2.1 数据预处理验证
大数据测试的第一步,也称作pre-hadoop阶段。本阶段主要验证:
表1 大数据测试与传统测试的区别
1)来自关系数据库、日志系统、社交网络、互联网文本和文件等各种数据资源应该要被验证,确保是正确的资源被加载进系统[4];
2)数据加载后还要验证推送到hadoop系统中的数据和源数据是一致的[4];
3)验证正确的数据被提取并被加载到HDFS(Hadoop Distributed File System)正确的数据节点中。
2.2"MapReduce"验证
经过数据预处理验证、数据成功加载到HDFS后,MapReduce开始对数据进行并行处理。由Google公司最早提出的MapReduce是一种面向大规模数据处理的并行技术模型,也是当前公认的最易于使用的大数据并行处理技术。大数据测试工程师根据业务需求,在每个节点上进行业务逻辑验证,确保如下操作的正确性:
1)MapReduce并行处理正常运行,得到想要的文件;
2)在数据上实施数据聚合或隔离规则[6];
3)数据key-value关系已正确生成;
4)验证经过map reduce后数据的准确性;
5)按照大数据业务需求,验证输出数据文件格式的规范性。
2.3 数据仓库验证
根据业务逻辑要求进行处理后的数据最终将按用户需求导入到数据仓库。在这个阶段需要验证数据转换规则是否正确应用,仓库中的数据是否有损坏、数据完整性约束使用是否正确等。
2.4 分析报表验证
数据处理完成导入到相应的数据仓库后,可使用工具自带的报表工具得到分析报告,该阶段要验证自动得到的分析报告是否满足用户、业务需求。
3 大数据主要非功能测试类型
在系统功能正常使用的基础上,用户对系统的非功能特性要求也越来越高。大数据功能测试是所有其他测试的基础,此外还需要行多项非功能测试,这主要包括下面几种:
3.1 性能测试
网页浏览速度慢、文件下载速度慢、双11没有办法支付、春运期间抢不到回家的车票等等,其实都是属于系统性能问题。对一个大数据系统来说,所需监控的性能指标包括吞吐量、响应时间、服务器资源利用率等。性能测试和功能测试理论上是可以同时进行的,但一般都是在软件公司完成功能测试后再把系统部署到真实环境中进行性能测试。因为系统的性能影响因素很多,除了系统代码外,还跟硬件、网络、部署方式有关。大数据系统性能测试执行过程一般是:
1)根据业务需求设计性能测试场景;
2)初始化大数据集群环境;
3)准备性能测试脚本;
4)执行并分析测试结果,如果指标不达标,需要分析性能瓶颈、调整参数并重新测试;
5)提交性能测试分析报告。
3.2 可用性测试
ISO/IEC 9126-1将可用性定义为"在特定使用情景下,软件产品能够被用户理解、学习、使用、能够吸引用户的能力".大数据系统的可用性测试是检验系统是否达到用户要求的可用性标准,一般可通过招募代表性用户用手动测试完成。可用性测试通过观察有代表性的用户完成产品的典型任务,从而界定出可用性问题并加以解决的过程。可用性测试可发现用户体验上的问题;可检验期望的设计目的是否实验、是否满足用户期望;可了解用户的使用习惯、了解用户的认知;可对产品进行评估。大数据系统可用性测试执行过程一般是:
1)确定测试任务;
2)招募典型、有代表性的用户;
3)测试前准备;
4)实施测试;
5)测试分析和测试报告。
3.3 稳定性测试
大数据系统通常是部署在服务器上、长时间不间断运行,系统的稳定性尤为重要。测试人员不可能长时间不休息、一直守在电脑前观察系统运行情况。和传统软件测试类似,大数据系统的稳定性测试也是验证系统在长时间运行下是否出错,一般借助于自动化测试工具完成。
4 大数据测试面临的挑战
与传统软件测试相比,大数据的多样性给从事大数据测试的软件测试工程师带来了新的挑战,可能面临下面几个挑战。
4.1 自动化
当前传统的软件测试功能测试还是手动测试居多,在高回归的情况下才会借助selenium、UFT等工具实现自动化。因大数据系统的数据量巨大、速度快、数据类型多、数据价值低等特点,借助测试工具实现自动化是从事大数据测试必备的技术,但当前市场上的自动化测试工具并不具备处理异常的能力,意味着现有测试工具可能并不完全适用,这就要求测试工程师需要自己编写合适的测试工具,编码能力将是大数据测试工程师的必备技能。
4.2 虚拟化
当前业内大规模使用虚拟化技术,但虚拟机的延迟有可能造成大数据实时测试处理的异常。
4.3 海量数据集
大数据系统需要验证的数据量往往是TB级别的,并且要求处理的速度更快,对这类系统进行测试需要有效的自动化测试手段。
5 结束语
大数据分析已经毫无争议地成为信息技术发展趋势和热点,广泛被工业界和学术界热推[5].目前针对大数据测试的研究同其设计开发的研究相比相对薄弱。但随着大数据工程和数据分析逐步进入新的阶段,大数据测试将成为必然,也必定成为未来的一个热门的职业方向。本项目对大数据测试的相关理论、常用测试方法进行研究,后续将给出大数据技术与应用专业《软件测试基础》课程标准,为大数据测试人才培养做好准备。
参考文献
[1]秦怡。大数据背景下软件测试技术面临的挑战与发展方向[J].电子技术与软件工程,2019(9):46-47.
[2]张丹。大数据背景下的测试技术教学改革探索[J].黑龙江科学,2019(8):20-21.
[3]岑柏滋,刘丽琳。基于大数据的软件测试分析[J].智库时代,2019(7):231,233.
[4] 大数据测试方法[EB/OL].http://blog.csdn.net/test_soy/article/details/49617143.
[5]代亮,陈婷,许宏科,等。大数据测试技术研究[J].计算机应用研究,2014(4):1606-1611.
[6] 大数据测试类型&大数据测试步骤[EB/OL].http://blog.csdn.net/henni_719/article/details/54911090.