随着大数据、物联网、移动互联以及云计算等高新技术产业快速崛起,软件测试领域遭受到了巨大的冲击,如何在当前大数据背景下实现软件测试又好又快的发展已经变得非常重要。该文将分析软件测试在大数据环境下的困难和挑战,并依据分析的结果对软件测试提出未来发展的期望。
《计算机应用》创刊于1981年,是中国计算机学会会刊。以介绍计算机应用技术为重点,以推动经济发展和科技进步为宗旨,以促进计算机开发应用创新为目标。由包括张景中、潘云鹤、何积丰、周巢尘、陈国良院士在内的数十名计算机学科专家组成编委会,承担组稿、审稿、撰稿工作,另有数百名本学科其他专家参与审稿工作。
1背景研究
随着科学技术的发展,计算机硬件的更新换代,全球慢慢地走人了大数据时代。大数据时代的特征并不局限于掌握规模庞大的数据,更多的是能够拥有对相关行业的大规模数据专业化处理的能力。同时,大数据背景下,由于大数据拥有巨大的数据量、复杂的数据类型、高速信息处理以及较低的价值密度的四大特性,当前的数据处理方式相较于传统的处理方式有了很大的不同,导致软件测试形式、重点以及方法手段也在不断地更新变化。
2大数据环境下软件测试的挑战
2.1用户功能制约了软件测试的有效发展
基于大数据框架的应用和研究,在大数据的基础上成功地降低了密集数据处理程序的复杂性,以MapReduce编辑框架作为大并发运算以及海量數据读写应用设计的利器,其主要分为两个功能(map和reduce),用户只需要掌握和运用这两个功能就可以完成在分布式程序中的任务和工作。但是,相对而言,用户在大数据系统中的功能较少,这样会严重制约软件测试的又好又快发展。
2.2传统的软件测试平台达不到处理大规模数据的要求
传统的软件平台的性能测试是以借助协调控制器直接向服务器端发送响应请求作为压力源,对测试服务器进行压力测试。服务器数量随着用户量级需求的变化而变化,对于较小的应用系统来说(即拥有相对少量的服务器),只能满足数百上千量级的用户数的应用服务需求。
在大数据时代的背景下,用户主动生成的行为数据在不断地增长,其所代表的用户需求也在的增加,系统服务器的访问量和访问频次也会逐步上升,大规模的游客用户访问量将会给服务系统造成巨大的压力,这很有可能造成测试服务系统的崩溃,造成功能服务的丧失。
2.3软件服务化引起的测试难题
在当前的主流软件开发模式中,编码、结构、服务等几个部分大体构建了整个软件的开发过程。1)在软件程序编码部分,一般由软件开发人员从头到尾的用代码实现软件的功能,所有的代码基本上都是由直接的开放人员掌控,几乎可以实现关于测试和调试的所有方式。2)结构化部分的主要作用是提升软件开发的效率,基于系统类库的基础上,开发人员必须结合业务构建可以重复使用的组件和业务元素,但是由于本地运行导致耦合度偏高,同时,用户对业务组建的掌握较好,虽无法深入了解,但是用户的可跟踪性较强。3)服务部分主要作用是将调用本地组件的方法转变成远程提供服务的方式。从实际情况中可以看出,用户对控制外部服务的次数呈现不断减少的趋势,服务情况只能通过服务的输入和输出来了解和掌握。
2.4测试阶段数据信息的准确性无法确定
在计算机技术快速发展的时代中,数据库软件测试服务因为大数据环境下云计算技术的成熟而变得越来越便捷。但是在对于架构和PAAS的理解中,尤其是PAAS程序,一部分用户对于PAAS程序的理解依旧存在较大的难度,一部分用户容易对服务器请求发出大量重复无用的请求,所以在数据实际存储模糊的基础上很有可能导致不精确甚至错误的信息出现,使对软件的测试阶段数据信息准确性的确认变得尤为困难。
3大数据环境下软件测试的展望
3.1提高测试数据的准确性
因为对于数据的存储的模糊认识和发送重复无用的请求使错误的信息出现,进而造成因数据信息的准确性降低而造成软件测试效果较差。在数据库应用之前,我们需要对数据库应用软件进行多次反复的测试,使得错误数据的影响降到最低,提高数据信息的准确性。
3.2实现测试技术的改进
传统的测试人员主要使用单一的测试方式对软件实行性能测试,单一的测试方法很有可能具有局限性,软件产品是面向行业内全部生产生活人员,单一的测试方法很容易产生片面的结果。我们需要实施多元化的测试方法,将方法和技术相结合,同时汲取传统方法中的较好的部分,改进测试方法,消除对软件测试片面的认识,很好地规避了杀虫剂现象。
3.3应用智能化技术
在软件测试中运用智能化技术主要完成以下两个部分的功能:1)界定输入数据的同时规范数据的属性要求;2)实现充分考虑输入数据的大小,样本集以及输出的评判样式。在大规模数据的前提下,基于智能化技术可以消除输入与输出之间的数据流的差异,同时也能够规范输入和输出数据,使软件测试的效果更加令人满意。
3.4实现自动化环境的构建
针对于大数据处理的云计算环境是非常重要的,其对于客户端的环境要求必须得和服务端的输出需求相匹配,只有这样才能够在担当负载产生器的角色的同时能够研究并发环境下的监控以及软件测试的新手段。
4总结
综上所述,本文通过分析大数据环境下软件测试的四个挑战:1)用户功能制约了软件测试的有效发展;2)传统的软件测试平台达不到处理大规模数据的要求;3)软件服务化引起的测试难题;4)测试阶段数据信息的准确性无法确定以及对应的成因,同时提出四点解决问题的展望:1)提高测试数据的准确性;2)实现测试技术的改进;3)应用智能化技术;4)实现自动化环境的构建。希望本文的研究可以为以后的软件测试研究中提供一些理论基础和实践帮助。