李苗
(安徽新华学院信息工程学院,安徽合肥230088)
云计算自动化测试的研究
李苗
(安徽新华学院信息工程学院,安徽合肥230088)
如今随着软件产品对社会的影响的逐渐加大,用户对软件意识的不断提高,使得越来越多的软件开发商在软件开发过程中加大了对所开发软件的测试力度以及提高测试费用的比重。当下,云计算平台是一种具有海量的可拓展的动态资源,在对软件测试过程中能缩短测试时间并降低测试成本。同时,自动化测试具有快速、可靠、全面、可重用和可编程等特点,能有效解决手工测试的诸多缺陷,将云计算和自动化测试相结合将会有效地缩短软件测试的周期并提高软件测试质量。
云计算;自动化测试
如今随着IT行业的快速发展,软件质量问题越来越受到用户的重视,这就导致很多软件公司在软件开发过程中渐渐重视起了软件测试环节并提高了测试费用所占的比重。总的来说,在如今的软件工程开发领域中,软件测试是保证软件质量问题的最重要的方法。
随着信息技术的快速发展,人们的对于产品的质量意识逐渐提高,而软件测试是为了保证软件产品质量的重要手段之一。为了从重复繁杂的测试工作中解放测试人员,进一步地去缩短软件开发周期,提高测试效率,因此自动化测试技术也渐渐发展了起来。然而,测试环境准备工作依旧给人们带来了很大的不便,因此将云计算与自动化测试进行相结合可以解决这一问题。
1.1 理论价值
自从Google公司提出云计算这一概念之后,云计算就迅速吸引了各IT行业的人的眼光,而云测试就是作为云计算在软件测试方向的一种应用技术。不同于其他传统测试方法,云测试提高了软件的测试效率,受到IT行业人士的追捧。云测试相较于传统测试而言,它的成本更加低廉、计算能力更强、效率更高,是未来软件测试的主要研究。
1.2 实践意义
目前国内有一家叫易测云的自动化云测试产品,它是一款为安卓程序提供功能测试、性能测试、适配测试以及遍历测试等多种服务的真机产品。易测云支持的开源框架有Guerrilla、Robotium等,主要是为所有安卓程序开发者和测试者提供优质、高效的云测试服务,解决了应用程序测试投入成本高和效率低等问题。
2.1 软件测试概述
软件测试主要是为了发现软件错误和缺陷(统称bug),是保证软件质量的关键步骤。软件测试是在软件开发结束之后投入运行之前,对软件设计进行最终的复审,确保程序的功能和性能满足开发前所提出的要求,是软件开发过程的重要组成部分。
软件测试是为了证明程序是有错的,一个好的测试用例是可以发现那些未发现的错误,而一个成功的测试是可以发现那些程序中未发现的错误测试。
2.2 软件测试方法
测试工作是确保软件质量必不可少的环节,无论是利用手工测试还是自动化测试。手工测试最大的特点就是具有探索性,进行手工测试可能需要测试人员具有很高的手工测试知识和很强的应变和判断能力,在需要时进行人为主观上的判断以及主观感觉来对测试对象做出评价。手工测试是一项很机械烦躁的工作,操作的重复性比较大。手工测试人员进行这样重复性的回归测试,使得测试成本变得昂贵,而且较易出错。回归测试是指在对软件进行了增加、删除、修改操作之后,对改变之后的部分进行测试的方法。这种修改需要保证软件修改部分不会影响软件原有的功能,还必须能对软件的原有功能的正确性测试进行很好验证准确性。往往完成这种测试需要进行成百上千的回归测试,这对于测试人员是非常机械烦躁的,严重影响了测试人员的积极性,间接导致了人力资源的部分浪费,进一步提高了软件的开发成本。
3.1 云计算的介绍
云计算是由虚拟化、网络存储、效用计算、并行计算、分布式计算、网格计算等一系列网络技术与计算机技术融合的结果。它可以通过网络把多个成本相对较低的计算实体进行整合,形成一个有强大计算能力的系统,并利用IaaS、PaaS、SaaS把这项强大的计算能力分布到各个终端之中。云计算为用户提供了安全可靠的数据存储中心,用户不必担心数据丢失和病毒入侵等问题;其次,云计算的客户端的轻量化,使用户不仅可以轻松携带,而且其能耗低、辐射小、具有强大的可伸缩能力。用户可以很便捷根据需要来使用计算资源,进而避免传统模式下需要不断地更新自己的软件和设备;最后,用户在云计算模式下可以极大地提升计算机硬件资源的使用效率,从而进一步提高了社会的投入产出比。经过相关研究的表明,在云计算模式下,资源利用率一般会提高80%到90%左右的效率。
在服务方面,主要是以为用户提供各种基于云的服务为主,分为三个层次:第一,Software as a Service软件即服务,简称SaaS,这层的作用是以基于Web的方式为用户提供服务;第二,Platform as a Service平台即服务,简称PaaS,这层的作用是为用户提供应用的开发平台服务;第三,Infrastructure as a Service基础架构即服务,简称IaaS,这层的作用是将所有的底层计算和存储等资源服务以服务的形式给用户提供。从用户的角度来看,这三层服务之间是相互独立的,因为它们提供的服务是不同的,面向的用户也不完全相同。再从技术的角度来看,云服务的这三层之间的关系是存在依赖关系的,而并非是相互独立的。
云平台的优点是具有动态可扩展的资源,自动化测试拥有全面、可靠、快速、可重用、可编程等优点,可以有效解决手工测试的诸多缺点。因此,两者的结合是可以解决很多测试人员的问题,是研究基于云计算的自动化测试平台的出发点。
3.2 自动化测试介绍
自动化测试是将以人为驱动的手工测试行为转化为由机器执行的一种过程,即由机器替代人工来进行测试。自动化测试的过程,由测试人员依照测试用例中的步骤来进行顺序执行,然后将得到的结果与预期结果进行对比,查看是否出错。在现在的IT行业中有很多开源自动化测试框架,如Junit与se⁃lenium或者STAF等,各个公司可以根据这些框架来定制设计自己专属的自动化测试工具,进而有效地节省了投入测试工具的成本。此外,自动化测试能够完成更多更繁琐的软件测试,完成手工测试中比较难以实现的测试。自动化测试的资源利用率更高,程序的回归测试更加便捷。很好地复用性以及一致性增强测试效率。
在测试用例通过评审之后,测试人员便根据测试用例中所描述的步骤来进行顺序执行,然后将测试结果同预期结果进行对比。为了节省对比过程中时间、人力及硬件资源,提高测试效率,我们利用自动化测试来执行这一步。通过自动化测试可以提高回归测试、稳定性测试和兼容性测试等测试的测试效率。
3.3 云平台自动化测试的优势
云测试是一种新型的基于云计算的测试技术,他的原型是基于Web的自动化测试来进行设计,由测试和云计算两者组成。测试主要是指软件测试,软件测试具有自己的测试方法、测试过程。由于测试环境和测试管理都构建在云计算之中,然后通过云计算技术来实现测试过程和方法,因此在测试方法、过程等方面,云测试技术拥有一些自己独有的特征。它可以通过在服务器上部署多个虚拟机来提供测试环境,然后通过提供远程测试服务,这样用户再也不需要在自己的机器上安装软件自动化测试工具,可以轻松地在云测试平台上完成测试任务。
首先,云计算下的自动化测试为用户提供了一个简洁友好的界面,用户可以通过Web访问的方式,通过云测试网站实现测试脚本的上传、执行及结果的展示等功能。其次,基于云计算的自动化测试支持跨浏览器使用。也就是说,同一系统下,目前的那些主流的浏览器都可用与软件测试,而且还可以支持不同版本下的浏览器测试,包括FireFox、Chrome和Internet等浏览器。另外,云环境下的自动化测试不仅可以支持目前主流的开源自动化测试框架,还可以运用云计算的优势对测试任务进行分发与调度。最后,云环境下的自动化测试可以支持并行测试。当执行测试用例是几千个的时候,如果使用传统的顺序测试方法,而Web的功能测试是1对1进行测试,这就会导致测试时间变长,进而测试执行效率就会变得很低,而且还增加了测试成本。因此,需要对测试用例进行并行化的测试,这会提高测试的执行效率、节约成本。
[1]钟文斌.云环境下的自动化测试平台设计[D].上海:东华大学,2014.
[2]常征.功能测试中自动化测试框架的分析与应用[D].北京:北京林业大学,2007.
[3]赵涛.基于云计算的软件测试技术探索与研究[D].西安:西安电子科技大学,2014.
[4]孟祥超.云计算环境下的软件测试服务研究[D].大连:大连海事大学,2013.
[5]曹咏春,刘小君.云测试综述[J].现代计算机(专业版),2011,12 (23):25-29.
[6]钟华.基于云计算的软件测试服务研究[D].上海:东华大学, 2012.
[7]郑阳.云测试中资源调度的研究[D].上海:华东理工大学, 2015.
G456
A
1009-3044(2017)19-0197-02
2017-05-12
李苗(1984—),安徽蚌埠人,女,硕士,主要研究方向为计算机科学与技术。