大数据背景下软件测试若干问题研究

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

大数据背景下软件测试若干问题研究摘要:随着移动互联网、物联网、云计算的迅猛发展,大数据引发了新一轮技术发展的浪潮,同时也给软件测试带来了挑战。本文从以下几个方面重点分析了大数据给软件测试带来的挑战:1)大数据处理框架带来的测试挑战;2)传统测试平台无法满足大数据处理的需求;3)数据的多样性带来的正确定判断问题4)大数据的预测本质导致测试的定位困难。关键词:大数据,软件测试,挑战1引言随着移动互联网、物联网、云计算的迅猛发展,全球数据出现爆炸式增长。IDC2013年发布的DigitalUniverseStudy指出,全球信息总量每过两年,就会增长一倍。仅在2013年一年,全球被创建和被复制的数据总量就达到4.4ZB,较2011年同期上涨2.6ZB,到2020年这一数值将增长到44ZB。维基百科对大数据的定义是,指所涉及的数据量规模巨大到无法通过人工,在合理时间内达到截取、管理、处理、整理成为人类所能解读的信息。随着软件形态的不断变化,软件测试的重点和方式也在不断发展。在单机软件时代,很少测试并发性能,而在C/S以及B/S时代,性能测试其重要性在某种意义上比单项功能测试更加重要。但由于大数据的4V特征使得大数据处理技术和传统方式有很大不同,从而给软件测试带来新的挑战。本文重点分析大数据给软件测试带来的挑战。2大数据时代软件形态的变化大数据具备四个层面的特点:第一,数据量巨大(Volume),从PB级别,跃升到EB级别,甚至ZB级别。第二,数据类型繁多(Variety),比如网络日志、视频、图片、地理位置信息等。第三,价值密度低(Veracity),不相关信息数量庞大,需要深度挖掘分析。第四,处理速度快(Velocity),一秒定律,即实时分析而非批量试分析,立竿见影而非事后见效,这与传统的数据挖掘技术有着本质的不同。大数据的4V特征带来了软件形态和特征的变化。大数据处理在当前软件技术能力下是及其困难的。维基百科中定义的大数据,或称巨量资料、海量资料,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到采集、管理、处理并整理成为帮助企业经营决策的有价值的信息。在这个定义中,其核心的思维是“无法通过目前主流的软件工具、在合理时间内达到……”,其背后的含义是数据量已经超过当前的软件的处理能力。美国MIT的SamMadden对此作了进一步的阐述,大数据之所以称为大,是因为其超出了当前的处理能力。大数据软件所需要产生的结果是未知的。李国杰院士在《大数据的科学问题研究》中指出大数据软件特征等多是像“大海捕鱼”而不是“大海捞针”。“大海捞针”的前提是先知道有一枚“针”在海里,而海量数据的挖掘往往不知道海里有没有“针”。大数据分析的目的是发现隐藏在数据之中的关系,是否存在数据之间的关系,这些关系是什么,这些在运行之前和是未知的。就像“大海捕鱼”,捕到什么鱼算什么鱼。如果没有捕到什么鱼,是因为海里没有鱼,还是由于网眼太大,把鱼给漏掉了。如果捕到了一些鱼,是否该捕的鱼都捕到了。大数据软件的思维模式和传统软件具有巨大的差异。在传统软件中,是先建立数学模型,软件中一般采用软件规格说明书来表示。数据和数据之间的关系,特别是软件的输入和输出之间关系事先是确定的,然后利用程序来实现相关的数学模型。而大数据的研究,目的是找出数据和数据之间的关联关系。数据的关系和特征隐藏在数据网络中,大数据往往以复杂关联的数据网络这样一种独特的形式存在,软件并不知道数据存在的具体形式,也不知道它是否真的存在,所以大数据软件在思维方式和传统软件将会产生巨大的差异。3大数据背景下软件测试若干问题3.1大数据处理框架带来的测试挑战大数据处理框架MapReduce是Google于2004年提出的。该框架把数据密集型应用的数据处理过程简化抽象成map和reduce两个阶段,用户在设计分布式程序时,只要实现map()和reduce()两个函数,其它细节,如数据分片、任务调度、机器容错、机器间通信等,都交由MapReduce框架处理,如图1所示。在这种背景下,用户承担的功能不如框架自身的功能丰富,给测试带来了很大的困难。图1MapReduce框架由于MapReduce自身分布式的特点,其测试具有在传统应用不存在的困难:1)无法知道任务由JobTracker动态调度分配到集群中的哪一个TaskTracker节点中执行;2)无法提前预知某个map或reduce任务在哪个节点执行;3)无法在错误发生前设定断点;4)有些功能依赖分布式集群的情况,例如分区partitioner功能在,但节点无法预测。3.2传统测试平台无法满足大数据处理的需求传统的C/S和B/S时代的性能测试,通过控制器协调本地向服务器发出服务请求从而实现服务器的压力测试,测试负载产生器都是基于局部的物理主机。例如IBM的PerformanceTester、HP的LoadRunner、Mircofocus的SilkPerformance等厂家的传统工具均是采用类似的方式实现。对由少量服务器构成的应用系统而言,并发用户数在百、千量级的应用服务,这种方式能够满足应用的需求。在大数据背景下,为了应对数据爆炸性增长,数据处理平台均架构于可动态扩展的PaaS平台。Apache基金支持的Hadoop平台就是目前最著名的大数据处理系列,数据处理的软件可以架构于千万级服务器的资源上,而测试时要架构如此规模的客户端,将会遇到极大的困难。测试客户端的能力可能无法达到服务器端的测试需求。3.3数据的多样性带来的正确定判断问题大数据的基本特征之一就是数据的多样化,除了结构化数据,非结构化的文本数据,半结构化的社会媒体数据,基于位置的数据等都在快速的增长中。结构化的数据往往存储在关系型数据库RDBMS表或者结构化的文件中(例如XML),对于具有事务本质的结构化数据可以简单地存在文件和RDMBS表,以用于软件测试时验证软件正确性。半结构的数据没有预定义的格式,但是可以根据数据的模式推导出其基本结构。非结构的数据没有任何的格式,存储在一个文档或者Web页面中。采用非结构化的数据作为软件,将是一件极其复杂而耗时的工作。尽管对于非结构化数据可以采用部分的自动化工具抽取其中内容变成结构化数据,但是由于数据本身可能存在的异常和数据格式在测试过程中将会发生变化。数据的多样化无论在输入端还是输出端都存在类似的问题。在输出端,假若输出的是海量的非结构化数据,并且由于输出数据的分布性,使得正确性判定将会更加困难。3.4大数据的预测本质导致测试的定位困难只找数据相关性而不是找到准确的因果性。找因果关系的成本和难度远大于找相关性。什么是相关性?就是当出现A现象时必然会出现B现象。但是是由于C原因导致A现象和B现象先后出现,还是由于A现象出现导致了B现象的出现呢?引用了李国杰院士的一个例子[4]:下雨之前常见到燕子低飞,从时间先后看两者的关系可能得出燕子低飞是下雨的原因,而事实上,将要下雨才是燕子低飞的原因。大数据是对所有数据进行分析处理而不是随机样本,最有价值的数据是异常数据,对全部数据进行统计分析发现这些小概率的异常数据对其分析是大数据分析的最大价值,异常数据说明认知和建模还有漏洞,从而可发现过去未知的新事物,完善我们的认知模型。测试设计的测试系统或测试评价模型对挖掘出的bug数据集的质量非常重要,否则在寻找bug集与质量相关性时,就会很难或不靠谱。如果原来程序就采用全部数据,能否构造另一个和原来数据集等价的数据集?全部输入数据是否等于所有的输入可能性?测试是否还有存在的必要?4总结本文着重分析了大数据时代软件测试面临的挑战,基于以上分析,建议可以在以下几个方面作进一步的改善。1)测试技术由单一测试技术向多元测试技术综合应用发展。2)探索面向智能数据处理带来的问题。测试用例的设计,不仅限于输入数据的边界要求、属性要求等,更多需要考虑输入数据的样本及的大小,样本集的分布特征。3)构建面向云环境的自动化环境。要满足大数据处理的云环境的测试需求,测试环境,特别是客户端环境的能力必须和服务端的需求匹配。5参考文献[1]蔡立志,阎婷.大数据背景下软件测试的挑战与展望[J].计算机应用与软件,2014,02:5-8.[2]蔡立志.大数据来临,软件测试准备好了吗[J].软件产业与工程,2013,05:15-17.[3]张波.基于测试覆盖的安全关键软件测试策略研究[D].中国科学院研究生院(长春光学精密机械与物理研究所),2012.[4]孟祥超.云计算环境下的软件测试服务研究[D].大连海事大学,2013.[5]赵涛.基于云计算的软件测试技术探索与研究[D].西安电子科技大学,2014.[6]ZhitaoHe;HaihuaYan;ChaoLiu;HuacanHe,AFormalDefinitionofSoftwareTestingBasedonFuzzyMeasure,SoftwareEngineering(WCSE),2013FourthWorldCongressonDOI:10.1109/WCSE.2013.13PublicationYear:2013,Page(s):59–63.[7]MohamedSuffian,M.D.;Ibrahim,S.;Abdullah,M.R.,Aproposalofpostgraduateprogramforsoftwaretestingspecialization,SoftwareEngineeringConference(MySEC),20148thMalaysianDOI:10.1109/MySec.2014.6986041PublicationYear:2014,Page(s):342–347[8]Kapur,P.K.;Singh,G.;Sachdeva,N.;Tickoo,A.,Measuringsoftwaretestingefficiencyusingtwo-wayassessmenttechnique,Reliability,InfocomTechnologiesandOptimization(ICRITO)(TrendsandFutureDirections),20143rdInternationalConferenceonDOI:10.1109/ICRITO.2014.7014679PublicationYear:2014,Page(s):1-6[9]Lodha,G.M.;Gaikwad,R.S.,Searchbasedsoftwaretestingwithgeneticusingfitnessfunction,ComputationalIntelligenceonPower,EnergyandControlswiththeirimpactonHumanity(CIPECH),2014InnovativeApplicationsofDOI:10.1109/CIPECH.2014.7019065PublicationYear:2014,Page(s):159-163[10]Pandey,S.;Tokekar,V.ProminenceofMapReduceinBigDataProcessing,CommunicationSystemsandNetworkTechnologies(CSNT),2014FourthInternationalConferenceonDOI:10.1109/CSNT.2014.117PublicationYear:2014,Page(s):555-560

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功