基于云计算技术的软件测试探索
- 格式:pdf
- 大小:1.76 MB
- 文档页数:4
《自动化技术与应用》2019年第38卷第12期计算机应用ComputerApplications
TechniquesofAutomation&Applications基于云计算技术的软件测试探索虞泽凡(河海大学计算机与信息学院,江苏南京211100)摘要:为了确保新开发的软件系统能够在当前海量数据和复杂的网络环境中平稳、可靠运行,需要采用基于云计算技术的测试平台对软件进行性能和压力等方面的测试。云测试平台通过云控制器整合和调度网络虚拟机群进行测试,通过云存储器对数据进行分解、存储和交换。文中分析与研究了测试平台的框架结构、并行测试流程、任务调度算法等关键技术,并对平台的调度算法和安全性等方面提出了一些建议。关键词:软件测试;云计算;并行测试;调度算法中图分类号:TP311.52文献标志码:A文章编号:1003-7241(2019)12-0053-04SoftwareTestingExplorationBasedonCloudComputingTechnologyYUZe-fan(SchoolofComputerandInformation,HohaiUniversity,Nanjing211100China)Abstract:Inordertoensurethesmoothandreliableoperationofthenewlydevelopedsoftwaresysteminthecurrentmassivedataandcomplexnetworkenvironment,atestplatformbasedoncloudcomputingtechnologyisneededtotestthesoftwareintermsofperformanceandpressure.Thecloudtestplatformintegratesandschedulesthenetworkvirtualmachineclusterfortestingthroughthecloudcontroller,anddecomposes,storesandexchangesthedatathroughthecloudstorage.Inthispaper,theframeworkofthetestplatform,paralleltestflow,taskschedulingalgorithmandotherkeytechnologiesareana-lyzedandstudied,andsomeSuggestionsontheplatformschedulingalgorithmandsecurityareproposed.Keywords:softwaretesting;cloudcomputing;paralleltest;schedulingalgorithm收稿日期:2019-02-251引言软件测试是查找软件静态与动态执行状态下错误与缺陷的过程。当前,面对呈几何级数的增长的数据量,传统的软件测试方法需要不断革新,其中,基于云计算技术的软件测试正在被使用。云测试平台主要有云计算平台、数据交互平台和测试平台三部分组成,三个构成部分分工协作、各司其职。采用云测试能有效的实现测试软件和云计算技术的融合,降低了测试成本,提高了测试的效率和性能。2云测试技术的优势2.1大数据时代的软件测试软件测试是判定软件的性能符合要求、运行完好、准确的必要保证。传统的软件性能测试,主要是在本地或局域网状态下进行,用户向主机发出测试申请,由主机或服务器完成测试[1]。在用户数量较少的时候,这种测试方法是能较为有效保证测试效果的。随着互联网、物联网和云计算技术的迅猛发展,软件系统面临的用户访问量、需求种类和需要实时处理的并发指令都在不断的增大,数据呈几何级数的增长。应用软件运行状态比过去要求更高,传统测试方法已经不再能很好的适合了大数据时代的要求[2]。2.2云计算技术在软件测试中的优势云计算是使用硬件和软件系统通过互联网向终端用户交付的应用程序的集合,云计算提供各种服务,如存储和各种数据操作[3]。云计算根据一定的优先级将大量的53计算机应用ComputerApplications《自动化技术与应用》2019年第38卷第12期
TechniquesofAutomation&Applications数据进行分类,发布至不同的区域的计算机中进行存储和操作,既可以提高数据的处理速度,又可以并行的处理大量的数据信息。传统的软件测试服务需要每个公司大量的人力、设备和费用的投入,失误率也相对较高。引入云计算技术,可以通过互联网实现异地资源的远程控制、海量数据的共享和测试服务,用户不用进行测试用例的设计与选用等工作,云测试平台可以实现软件测试的自动化。开发者只需相应的费用,不需要再在人工和测试工具上有额外的花费,便可以完成测试。同时,由于平台上的资源非常丰富,测试结果的专业性、权威权能有很好的保证。采用云测试平台,软件开发者在互联网上提交待测程序,然后按照使用说明进行相应的设置,较短的时间就可以得到完整的测试结果[4]。如表1所示云测试技术与传统测试相比有着诸多优势。3云测试平台的总体框架云测试平台依托云计算技术为软件测试动态构建测试环境,平台是一个包括测试服务、分布式计算机硬件、测试控制软件的综合体系。由于计算机软件测试所涉及的内容比较多,使得平台的架构也较为复杂。国外比较成熟的云测试平台构架主要有两类:应用于亚马逊平台,由英国学者研发的YETI测试云系统架构,此平台实现软件系统的自动测试[5]。应用于IBM平台,由瑞士学者研发的CloudCloud9系统架构,此平台可以同时运行于私有云和公有云环境。表1云测试技术与传统测试差异性配套测试环境配置测试人员测试过程价格与费用传统测试软件开发公司自行购买测试用各类硬件及基础设施,人工部署测试环境,手工调配资源软件开发公司自行聘用、培养具有软件测试知识的专业人员,软件测试人员与开发人员的比例一般不低于1:1管理较为分散,无法保证每一位测试人员都较高质量完成测试一次性投入大量设备,长期聘用大量测试人员,需要较大经费投入云测试技术云测试服务商提供,云计算平台可动态分配、调用不同物理区域网络中的资源由云测试服务商自行配置测试人员,编制不隶属于软件开发公司集中统一的管理模式,软件测试的质量能得到很好保证按项目的规模、目标、进度进行付费,省去设备与部分人工费用,总体价格较低云测试平台运行过程中,根据用户的测试需求及待测试软件特点,需要构建不同的测试环境,分布在不同物理区域的计算机硬件与各类网络设备是测试平台的基础
图1云测试平台框架结构图54《自动化技术与应用》2019年第38卷第12期计算机应用ComputerApplications
TechniquesofAutomation&Applications的设施。云测试平台需要用专用的控制器、存储器及项目管理软件对其进行统一调度与管理。本文设计的云测试平台总体框架如图1所示,平台主要由客户端,项目管理工具、云存储器、云控制器、虚拟节点控制器等组成。其中,项目管理工具是整个平台的大脑,其主要功能有用户数据管理、环境配置、虚拟机调度管理、测试工具及测试案例管理和最终的报表管理。云控制器下设多个集群控制器,每个集群控制器可以组建多个虚拟节点控制器并对虚拟机进行调度、维护及管理。虚拟机通过调用云存储器中的不同任务进行软件的测试服务,每个案例测试结束后向云存储器上传测试结果。4云测试的流程4.1云测试平台的数据交互云测试流程可归结为如图2所示的硬件设施层、测试工具层、软件服务层和用户端四个层之间的数据交互。基础设施层为测试平台提供硬件保障,处于平台的最底层,测试平台通过虚拟化技术,整合网络中的资源,形成资源群。平台服务层建立在基础设施层之上,主要功能有虚拟机群管理,数据库管理、信息存储、网络拓扑构建等。软件层根据软件测试需求,通过项目管理工具作统一编排,调用下层资源进行自动化集成测试,生成各类报表。客户端层为提供给用户手机终端、桌面系统或Web网页等可视化操作界面,用户可在客户端层提出测试需求,购买相应的软件服务。并通过客户端层接收测试报表。4.2云测试平台的测试流程云计算软件测试流程主要包括如图3所示,提交测试申请、网络数据存储、动态分配调虚拟机群、并行测试、测试结果的整合及报告生成等几个步骤[6]。用户通过web或手机APP向测试平台提出测试需求,经审核通过后上传相关资料和数据信息,系统将数据存储至云测试平台,管理员分析用户需要后生成测试项目,项目负责人测试计划、测试用例后进行任务分解。
图3云测试流程系统会根据实际测试计划,将各个测试任务分配给相应的虚拟机进行并行测试。测试数据传送给虚拟机,一个测试进程完成后虚拟机将测试结果传送给服务器,并转变为待机的状态,等待云控制器下达下一条测试任务,如此循环直至测试结束。服务器接收所有测试结果后结合用户需求进行综合分析,对所有数据进行统计、整理和和分析,然后将测试结果生成报告和报表反馈给用户。5云计算的任务调度算法任务调度是云测试平台的最关键技术,
任务调度的图2云测试平台数据交互模型
55计算机应用ComputerApplications《自动化技术与应用》2019年第38卷第12期
TechniquesofAutomation&Applications算法将处理直接影响测试平台的效率与功能。目前提出了很多有益的算法,如:遗传算法、传统Min-Min算法[7]、加权方式调度算法[8]等。本文结合传统的Min-Min算法和加权调度算法,提出了带权值的Min-Min调度改进算法。传统Min-Min调度算法的思想是首先映射执行时间最快的任务到执行快的机器上。其执行过程如下:(1)若需测试软件任务集为空,执行步骤(2);为空,执行步骤(6)。(2)计算需测试的每个任务的预计需完成时间。(3)找到能最快执行完成每个任务的的机器,指派给该机群。(4)指派完成后,删除已完成的测试任务。(5)更新虚拟机群组机器状态和就绪时间,回到(1)。(6)此次测试任务结束,退出程序。改良型Min-Min算法按每个任务的预计完成时间/等待时间计算出其权重,首先执行权重最小的任务值,执行后更新任务表和权重表直至所有任务均完成,具体步骤相似于传统Min-Min,改良型算法可以有效的避免大任务的长时间待机问题。6云测试技术的数据安全性云测试技术虽然有很多优点,但数据在基础设施层、服务层、应用层、用户层之间反复传输[9]。同时软件测试过程中的随机因素也对其安全性需要提出了挑战,特别是数据安全问题,作者建议从以下几个方面来提高云测试平台的安全性能。首先,需建立有效的防火墙,对数据进行分析监测,以保证数据的合法性,使数据流符合安全策略[10]。第二,信息在网络传递时对要进行多重加密,必要时可使用专用加、解密设备。第三,在信息流通过程中引入数字签名技术,使加密服务更加地准确与可靠。第四,测试全程实时监控和管理数据活动状态,防止第三方获取数据或对数据进行篡改,一旦数据异常,平台能自主实时干涉,修复。最大程度上保证云测试平台的安全性。7结束语就当前的情况来看,云测试过程中还存在着一些问题需要完善。为确保软件测试的正确性、高效性和权威性,以云计算为基础的软件测试需要通过对自身的业务进行精准的定位和实时调整以适应网络技术的快速发展,并在此基础上不断完善云测试平台的框架结构和任务调度算法。参考文献:[1]张振华.大数据背景下软件测试的挑战及其展望探析[J].电子技术与软件工程,2016(6):61-62.[2]吴悦,张春海.改进的软件测试模型——“并”模型[J].微型机与应用,2017,36(14):14-15.[3]M.ARMBRUST,A.FOX,R.GRIFFITH,etal.Avi-ewofcloudcomputing[J].CommunicationsoftheACM,2010(53):50-53.[4]傅蓉蓉.基于云平台的移动应用测试[J].现代电信科技,2014,44(6):24-28.[5]杜娟,骆庆,张泉.计算机软件测试技术与深度开发应用探讨[J].电子测试,2017(19):127-128.[6]李菊.云计算下的软件测试系统框架构建策略[J].信息与电脑(理论版),2018(20):58-60.[7]任进.云测试平台任务调度方法[J].电子设计工程,2017,25(3):56-60.[8]CHAUHANSS'JOSHIRC.AheuristicforQoSbasedindependenttaskschedulingingridenviron-ment[C]//IndustrialandInformationSystems(ICIIS),2010InternationalConferenceon.IEEE,2010:102-106.[9]刘新娥,李维勇,刘宗昌.云测试系统研究与实现[J].软件导刊,2017,16(9):123-125.[10]周宇,辜季艳.基于云计算的计算机网络安全保护技术[J].电子技术与软件工程,2018(21):9.