基于云计算的软件测试技术研究

2019-07-16 03:17秦文江李换萍黄泽张鸿瑞朱海蓉
电脑知识与技术 2019年14期
关键词:软件测试云计算

秦文江 李换萍 黄泽 张鸿瑞 朱海蓉

摘要:由于云计算快速发展的不断壮大,云测试技术也逐步成为最热门的研究话题。软件测试作为一种保证软件产品质量的有效手段,具有更加敏捷,更加高效的特点,其作用也日益凸显。在云平台环境下的软件测试技术在今天也是软件测试领域的一种发展趋势。该文旨在以软件测试为前提,探讨基于云计算的软件测试技术的应用与发展。

关键词:软件测试;云计算;云测试

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2019)14-0235-03

在今天的信息时代,云计算作为一种新型的计算模式,已经成为当前 IT 领域最热门的词汇之一,近年来,云计算的发展及应用成为一些学者、专家谈论最热烈的话题之一,在此基础上,云测试技术的研究也逐渐成为热点。那么,基于云计算的软件测试技术作为测试领域的一种发展趋势,它已成为如今人们就测试领域的又一探究目的。

1 云计算概述

我们知道云测试是在云计算的基础上结合软件测试技术发展而来的,那么在研究基于云计算的软件测试技术之前,我们先来认识一下什么是云计算技术。根据文献我们了解到云计算技术是一种由分布式计算技术、网络计算技术和并行处理计算技术相结合并发展得来的新型计算模式,它在互联网的依赖下,可以直接将一些共享资源和硬件信息提供给计算机,这些资源具有多用户共享特性,可供用户方便快捷的操作,可见云计算是一种新型且易扩展的动态计算模式[1]。

云计算作为一种新型技术,对分布式的处理、并行处理和分布式的数据库存储等一系列技术做了进一步的改善,在互联网宽带技术和虚拟化技术高速发展的今天才有云计算的萌发。随着云计算的快速发展,计算机发展到今天的客户端一服务器模式,这使得计算机的类型具有巨大的转变,从而改变了人们获取信息、软件、硬件资源的途径[2]。

2 基于云计算的软件测试技术

2.1 云测试技术优势

云测试技术是一种新型测试方案,它以云计算平台为基础,是对软件测试的进一步改善与拓展。对于云测试技术的实现则需要满足以下两个方面的条件:首先,云测试技术需拥有自身的测试手段、测试方法以及测试流程;其次,要求这些测试技术的流程、方法等能够在云端实现[1]。用户将相关测試工具与测试环境部署到云端,就可以在本地进行测试工作,方便又省力。如今用户使用云测试技术,可以完成软件或其他项目的性能、负载、功能等负面的测试,还可以完成自动化的测试,以及软硬件环境的测试等。

云测试技术具有很多优势,在各个方面均有体现:1)减少人力及硬件资源:这是云测试技术最显著的优势,使用云测试技术的时候,测试人员可以在指定硬件配置上利用相关技术在云平台搭建测试环境,可以减少手工测试带来的人力资源浪费,从而节省了人力资源和硬件资源。2)提供专业知识:在云测试技术下,用户可以通过测试相关服务使用专业知识,如设计测试用例、制定测试计划等,有利于用户在云测试平台的测试过程中加深对专业知识的使用[1]。3)降低成本:首先,在云测试技术中可以减少个人电脑、各种测试工具的购买实验,测试人员只需要提供测试需求、测试环境搭建、需要涉及的虚拟机数,完成这些简单工作后实现按需支付即可。其次,如今软件技术的快速发展,一些测试环境已不能满足测试的需求,就需要更新换代,毫无疑问要更新就需要做好维护,相应地就会有较高的费用。但是,在云测试环境中企业不需要为了这些因素而产生烦恼,企业只需要将其上交至提供云测试服务的供应商即可,供应商会解决这些问题。很显然这样可以极大地降低成本。4)提升效率:使用云测试技术,可以节省一些设备、工具的安装,极大地减少了工作量。在进行测试之前,用户首先将测试所需要的环境需求提交给云测试服务商,然后直接使用即可完成测试。这使得测试的效率有很大的提升。5)装备完备:用户可以使用云测试平台完整的测试环境,云测试可以额外的为用户提供其他附加服务。对于大规模的测试,云测试可以提供多台测试客户机,他们从主控机上下载测试用例,执行并汇报测试结果,主控机将结果汇总后报告给测试人员[1]。

2.2 云测试技术挑战

云计算在各领域的广泛应用,自然滋生了一些附属产品及功能属性的应用,但由于基于云平台的发展还没有完全成熟,达到深入人心的效果,由此在云平台下的软件测试面临着莫大的机遇和挑战,在此,通过查阅文献书籍我们总结出云测试在许多方面所面临的挑战和不足:1)移动平台:无论是云计算还是云测试,这些云应用都需要对智能手机终端及计算机等进行访问,在手机终端和计算机上会出现基于云应用的移动Web版本界面,这就对本地终端的接口提出了更高的要求,因此要对本地应用的接口不断地进行测试。2)性能测试:我们在实际进行测试的过程中,要使得云测试的性能测试达到最佳效果的测试相当弱,并且在许多特殊的情况下对性能测试的效果能够达到最佳有较高需求,而对平均性能测试的要求较弱一些[1]。这就好比每逢双十一淘宝为了更好地满足用户的需求,就需要进行最佳性能的测试,因此云计算软件测试需要加强对最佳性能的测试。3)分布式的云测试:云计算不够在不受空间的限制下,实现在其他不同方面的应用,因此分布式的云测试仍然是一项新的挑战。4)断开及连接测试:云环境中的软件是一种连接模式的设计,其数据只在服务器端存储,而在客户端没有数据的存储,所以当连接断开时将储存在本地的数据,与连接测试时在服务器端储存的数据能够以某种技术相互联系是又一挑战。5)可移植性测试: 在私有云和公有云混合的情况下,应当能够实现更高层次的测试功能,这样能够确保云的可移植特性,在未来的云测试技术研究过程中应当将可移植性测试作为重点研究方向[1]。

2.3 云环境下的软件测试技术

2.3.1 自动化测试

自动化测试指通过系统或自动化的测试工具,将测试人员依靠手工逐步执行测试用例的操作,使用自动化执行的过程代替,它主要集中在自动执行测试,包括实施和管理测试活动等内容。因为机器具有高可靠性和永不疲惫性的特性,可以帮助查找一些通过人工无法查找的性能bug。虽然称为自动化测试,但有时也需要测试人员手动插入脚本的验证点,因此自动化测试并不是完全自动的。即便如此,自动化测试也很大程度地降低了测试成本和时间,为测试人员和企业带来更大的经济效益。

下面来介绍自动化测试的三个重要发展阶段:

第一阶段:录制和回放[2]。在使用自动化测试工具(如Loadrunner测试工具)时,你所做的一系列操作都会被录制下来并形成脚本,在需要时还可以手动插入验证点,之后再回放脚本。录制脚本的过程就如同用录像机录像的过程,可见操作较简单,也可以达到自动化测试的基本要求。使用测试工具录制脚本仍存在缺陷:1)缺乏灵活性,它自身没有判断能力,因此容易记录一些错误的或无用的信息,一旦测试的界面内容稍微发生变化,就需要录制一个新的脚本完成后面的测试,可见测试脚本的可利用率极低。2)数据冗余:录制脚本后测试脚本会保存所有操作的数据文件,这就使得操作数据和程序内的运算数据发生混淆,因此所录制脚本的利用率很低。

第二阶段:数据驱动[2]。可以实现从专有的数据文件(如数据池)中读取数据,读数据和操作过程的脚本实现了分离,并将这些测试数据通过变量的形式传入事先录制好的测试脚本中,且不同的数据文件对应于不同的测试用例。和最初的自动化测试相比,增加了检查点的功能,即可以针对某个功能点进行功能和属性的检查,以此来判断该功能是否正确实现,提高了脚本的利用率,但是同样受到被测软件界面变化的影响。

第三阶段:关键字驱动[2]。该测试技术在数据驱动方式上做了一些新的改进,相比于前两个阶段,具有更好的可靠性和灵活性。它将测试逻辑按照关键字进行分解,形成一个已经筛选好的关键字数据表,经过筛选后表格内容包括一些特性数据以及相关的操作记录,需要将表格存储在数据库指定的位置,其中关键字驱动比较重要的三个内容就是操作对象、操作及值。因为不同的数据保存在不同的模块,调用起来相当方便,大大提高了录制测试脚本的可利用率,并且更加安全可靠。

根据自动化测试的发展趋势和流程,我们由此可得出自动化测试的框架主要由以下三部分组成:1)测试用例的自动生成;2)测试工具的自动执行;3)测试报告可以自动生成。自动化测试的整体框架如图1所示:

2.3.2 云测试平台

云測试平台是云计算技术为测试提供服务的载体,工作人员将所需测试工具、测试数据等资源部署到服务器上,并向用户提供调用接口,用户只需要通过云测试平台的前端创建测试项目,上传测试脚本,即可完成测试工作,最后查看并分析测试结果,用户并不需要了解云测试平台是如何完成测试的,这样节省了测试时间、人力资源。

根据文献3我们了解到云测试平台的架构设计分为IaaS 层、TaaS 层和用户层。其中最底层IaaS 是指基础设施即服务,该层主要实现虚拟化的物理资源,使得用户可以同时拥有大量的硬盘和资源来进行更好的测试,也有对云平台和测试框架的管理,并通过虚拟技术为测试用户提供仓储、计算和网络等资源;中间层TaaS指测试即服务,它提供了一种按需的软件测试服务,主要实现测试项目的管理、测试代码的分析与预处理,通过与数据库服务器的交互,来保存用户创建的测试项目和上传的测试脚本,并通过与上下层的交互,完成测试环境的自动配置,生成测试报告;用户层则为最顶层,该层主要是面向用户服务,用户可以通过互联网对此接口访问云平台,便可以进行自己所需要的测试。云测试平台的整体架构如图2所示:

3 基于云计算软件测试的应用

3.1 云测试在学术界的应用

我们都知道,任何一门技术在学术界,教育界都会有着不同的教育方式,云测试在学术界也具有一定影响力。在我国,云测试技术的应用主要体现在国内相关学者与他国的专家、学者进行的相关研究与交流,旨在探寻新技术、新发展,可以在软件测试的基础上有进一步的拓展。通过查阅参考相关资料,我们了解到国外一些高校就云测试方面所做的一些研究,日本驻波大学的一个教授带领他的团队在讨论实践中开发出一个基于云计算的软件测试平台,在一般的软件测试平台中不支持故障插入技术,而他们的开发正好克服了自动化测试的这一缺陷,成了行业领域下的里程碑。另外,在芬兰的拉普兰塔理工大学的一些学者主要针对在云计算环境下软件测试和预期的软件质量之间的关系做了研究,“测试即服务”这个新的概念模型也正是有他们提出的,之后他们又对此进行进一步完善、补充、应用、实践等环节,此概念模型再云领域下也取得了很好的成就。此外,国内很多学者也致力于研究云计算环境下的软件测试,就关于测试的资源调度和优化处理算法等方面取得了很大的进展[4]。对于这样的行业趋势中,云测试虽然还没有达到深入人心的境界,但它已经拥有自己的圈子,才有讨论与发展、策略与技术、敢作为、有新意的这样一个新兴潮流方向,为学术界带来了新的研究方向。

3.2 云测试在工业界的应用

对于不断更新迭代的知识来说,利用好它才会发挥它最好的价值。对于云测试技术,它具有很好的商业技术前景。各大商业平台,IT巨头也敏锐地嗅到了这个商机,抓住机会并在此方面上进行创新,基于现在的发展水平,能够较完善的提供云测试服务的网络平台并不是很多。Testin云测试服务,Cloud Testing测试云,这两家企业是目前在云测试领域站的较高较稳的,他们在赚取利润的同时也为新型软件的发展尽了自己的一份力。他们的平台在云计算涉及的领域主要有私有云、公共云和混合云这三种类型,提供自行测试和测试外包这两种不同的业务模式。综上所述,我们可以得出云测试在工业界的主要应用涉及以下三个方面:1)测试人员可以在云平台上使可用多种不同的测试工具完成项目测试;2)云测试的服务商给予企业或专业人员测试的服务;3)用户可以搭建不同的环境进行不同类型的软件或项目测试。4)用户可以根据自己的需求,软件的类型规格,不同的测试环境,测试成本的高低,来选择值得信赖或者对企业发展更有利的测试平台进行测试,从而达到云平台供应商和用户双赢的一个互惠互利的商业合作[4]。

4 云测试的未来发展方向

在我们看来,云测试技术是一个欣欣向荣的发展产业,但是在它的蓬勃发展之路,仍然存在很多待解决及难以解决的问题,因此就不能够满足用户的测试需求。以下是我们了解到的一些云测试面临的问题:1)在我国国内,针对云测试技术的研究仍处于萌芽阶段,技术尚未浅,因而不能全面满足用户的测试需要,还待做很多改进与完善,达到进一步的发展。2)同时,安全性和可靠性对于云测试至关重要,是云领域需要特别关注的两个特性[5-6]。因为技术的不成熟,测试成本不确定,也让云测试的劣势逐渐的大于它的优势。但是,我们对于云测试技术研究一直没有停止,专家学者们花费大量的时间研究如何提高在云环境下软件测试的效率,降低它的成本,在云领域的路上越走越远。基础越牢,后期发展才能越稳健,对于新的研究热点,我相信云测试技术会有大好的前程,在互联网的推动下,一步步地做大做强,为用户带来福音,成为改变人们在云环境下进行软件测试新的里程碑。

5 结束语

在云计算的不断发展以及云测试模式的不断深化的今天,云测试必然将大规模的遍及软件技术研发中。固然,云测试这种新型模式从萌生到今天,也饱受业内人士的质疑,以至于会面临许多待解决的问题,目前云测试的运用仍然在它的初级阶段。基于云计算软件测试技术的发展还需我们不断的努力,不断地拓展与完善,才能使得云测试技术更好地应对应用方面的挑战和困难,才容易让用户在短时间内接受和认可,只有这样才能够实现基于云计算软件测试技术的广泛应用。云计算技术以互联网为前提,我们相信在不远的未来必定成为人们日常生活的一部分。

参考文献:

[1] 王明珠. 基于云计算的软件测试技术探索与研究[J]. 无线互联科技, 2015(22): 10-11.

[2] 高丽萍. 云环境下自动化测试的研究与实现[D]. 西安: 西安工业大学, 2016.

[3] 陈平, 周坤, 董长青, 等. 基于云計算的软件测试技术研究[J]. 电脑知识与技术, 2015, 11(28): 65-67.

[4] 王文东, 刘继梅, 王嵃灏, 等. 基于云计算环境下的软件测试研究[J]. 电脑知识与技术, 2017(27).

[5] 王清玲, 张文静. 云计算环境下的软件测试研究[J]. 电脑迷, 2017(5).

[6] 赵涛. 基于云计算的软件测试技术探索与研究[D]. 西安: 西安电子科技大学, 2014.

【通联编辑:谢媛媛】

猜你喜欢
软件测试云计算
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
实验云:理论教学与实验教学深度融合的助推器
智能电能表软件测试技术概述
《软件测试》课程教学策略研究