APP下载

基于云计算的软件自动化测试研究

2022-10-23尚云鹏

信息记录材料 2022年8期
关键词:测试人员测试用例软件测试

尚云鹏

(广州城市理工学院 广东 广州 510800)

0 引言

目前,随着软件结构的复杂程度不断提高,进行软件测试所花费的成本日益增加,效率却很难得到大幅度的提高。为了解决这一困境提高软件开发的成功率,本文提出了基于云计算的软件自动化测试方法,以此来提高测试效果,也能保证测试成本的最小化。关于这方面的研究在国内外已经有了一定的研究基础。国外的软件自动化测试起步较早,因此该技术也更加完善。美国IEE和ACM等组织针对软件测试制定了一系列规范,Washington、Rational公司和卡内基梅隆等很多大学与大型公司也开展了关于软件测试的研究工作。而国内则因起步晚,软件测试发展进程缓慢,但也取得了一定成果。比如冯玉才教授(华中科技大学)基于关键字驱动基础建立了自动化测试框架模型。但是综合国内外的研究成果不难发现现在针对软件自动化测试系统还存在一些问题,如缺乏集成的统一平台、测试环境花费高、缺乏良好的数据挖掘与预测子系统等问题。因此本文以云计算为基础对云计算软件测试方法、流程进行了研究,提出了具体的测试实现方案,并从投入和效益两个角度对其进行比较,评价研究方案的优势,然后通过实验分析采用回归测试法验证该测试方法的优势,最后对该方法使用过程中的用例设计原则进行论述。

1 云计算软件自动化测试概述

受互联网行业发展不断加快的影响,云计算技术在互联网中的应用逐渐广泛。对于云计算而言通常将Web作为依托,必须由本地进行测试的软件转变为服务器端实现测试,然后第一时间反馈测试结果,使得共享算力资源得到最大化,大部分企业在硬件投入方面也得到有效控制,将算力资源的利用率得到强化。所以互联网计算的发展重要内容为云计算,在算力资源共享的过程中结合每个用户的不同需求进行资源最优分配。

在测试工程师未参与的情况下,自动化测试工具可直接对软件进行测试,其不但为更多的企业提供了帮助,同时也有效减少软件测试的时间和成本。针对云计算的软件自动化测试而言,其实际是一种新的测试方式,例如人们熟知的Cloud-testing平台,其不仅仅能支持诸多浏览器,而且还能实现自动化测试,另外用户也能通过编写测试脚本在此平台中实现软件测试[1]。

2 云计算软件测试自动化流程

在敏捷实践不断被重视采用的背景下,更新换代中的手动测试逐渐被淘汰。而自动化测试是在创建测试环境的前提下,借助测试脚本、套件以及各种工具完成测试,其与手动测试相比具备一系列独特优势,包括操作性较强、效率性较高以及能重复性操作等,已成为软件测试的关键。测试自动化可应用于测试阶段的各个环节,覆盖性能测试、兼容性以及回归测试等多方面。基于云计算的软件自动化过程:一是以测试实际需求为依据进行规划,并完成测试脚本;二是以云资源为依据创建测试环境后执行测试;三是将测试报告进行分析后及时反馈。

性能测试期间要匹配高配置环境,该环境需要测试人员提前构建,同时性能环境无法进行固定,只能在测试完成后立即撤销,再次进行测试时还要重建,这也是在性能测试中将测试环境放在首要位置的主要原因。而利用云资源构建测试环境则要简单许多,不仅能将准备时间有效缩短,还能避免传统方式引发的虚假错误。

兼容性测试的关键在于功能兼容与软件兼容,因此,要确保被测软件和操作系统、Web 浏览器或其他操作环境的兼容性,并严格按照软件操作的规范流程和其他平台开展信息交流与共享。兼容性测试对测试环境的需求较为多样化,基于云计算的软件自动化测试,能够借助云资源为其及时地提供相应的测试环境,大大地降低了对本地硬件资源的依赖。

3 云计算软件测试方案

利用云计算平台完成软件测试能够实现整个测试过程各个环节服务的全方位提供。在平台测试过程中可以不受时间与地域的限制实现随时访问,结合需求对其进行测试,软件服务资源与基础设备资源主要由云平台提供。集中动态资源分配的优势可通过该工作模式得到有效发挥,在自动化测试的过程中充分提升效率[2]。采用云方式下的软件测试主要是在云架构框架下,建立统一的虚拟化资源平台,然后利用云计算来提供具有一致性的测试服务,能够保证测试过程的规范性和过程的一致性,云测试平台的层次架构分别为资源层、用户层、管理层。

用户层将图形化Web操作页面发给测试人员,然后由测试人员对平台展开测试,主要测试内容为访问测试与管理测试。测试平台的登录主要通过浏览器进行登录,然后由管理者展开操作,如配置测试、测试资源请求、上传脚本以及显示结果等内容。在实施操作的过程中通常可以进行远程操作,在管理与指导过程中也可实现远程操作。

在用户的测试请求发送到测试平台后,如果请求被允许,则后续工作主要由管理层来进行调度,其业务范围内容很广泛,需要对整个测试的全过程进行监控和管理,要完成测试安全管理、任务调度、结果管理以及负责对资源层的调用管理等。在测试开始之前平台管理层需要对用户及其请求的合法性进行验证,对其提交的脚本和请求的资源进行安全评估,通过后会直接根据用户测试请求内容来进行测试资源的调度,然后通过API接口实现各项测试任务的合理化自动化安排调度。同时管理层会及时地将测试结果反馈传送到云数据库,整个测试完成后由管理层形成完整的测试报告,并发送到用户界面供用户浏览和下载等。

资源层主要包含三个方面:即网络资源、存储资源和传统物理计算资源,其在整个自动化测试平台中发挥着至关重要的作用,资源层主要是在软硬件基础上利用虚拟化技术来提供测试用的资源池。当测试内容和要求不同时,能够采用不同的虚拟化方案来调动云平台的硬件资源,实现资源的灵活使用,在提供高质量测试服务的同时能够最大化地利用各种资源。另外也可以给予用户更大的自由度,具体表现就是用户既能够通过平台提供的公用测试服务来完成测试,也可以按照自身需求利用其闲置资源来自主构建测试环境。

4 云计算软件测试效益评估

4.1 评估方法

在对软件自动化测试期间,效益评估的作用在于分析收益和投资成本,从另一方面来说,其在研究测试方案期间发挥着至关重要的作用。通过研究发现,该项评估方法具有一定的合理性,其不但能直接体现出测试方案的好与坏,而且还能及时发现存在的问题,由此为后期方案的完善提供帮助。

比较评价法是此次测试方案效益评估所应用的方法,整体流程共分为五个步骤:其一,评估指标的选择。此次测试方案应用的效益评估指标共分为四个方面,即测试收益、脚本开发成本、测试平台维护成本和云计算资源成本等,然后在上述四项指标的基础上进行细化得到其各自的子指标;其二,为指标体系中的各个指标指定权重值,具体方法可以利用专家经验打分或者通过实验来得出;其三,评估效益的核算。通过核算总成本和测试收益,可有效得出最终效益;其四,测试结果评估,利用相关的方法对测试结果可靠性进行校验;其五,做出最终测试结论并展开效益分析,主要是与传统测试进行对比从而来证明在新测试环境中是否达到了提高软件测试效益的目标。

4.2 评估模型

其一,云计算资源成本。云计算资源可通过两个方面来实现,即自行搭建私有云和租用公有云。由于不同的方案成本不同,所以,作为软件测试请求发起方的用户需要结合自身需要来完成具体的方案确定[3]。自行搭建私有云涉及的范围较广,包括云平台维护费用、虚拟化软件成本、存储硬件成本等。

其二,测试平台维护成本。首先,虽然云计算测试平台基于虚拟化构建但是也需要具体的物理硬件及软件支持,因此就必须有必要的专业维保人员对其进行有计划的管理和维护;其次,测试系统变更程度和更新频次能为平台维护成本带来不同程度的影响。

其三,脚本开发成本。为了实现软件测试的自动化必须有专业人员来进行测试脚本的开发,由于对脚本的要求较高,需要开发人员具备更高的专业素质。另外,不同测试项目需要开发有针对性的测试脚本,彼此之间存在差异,无法实现标准化,所以会耗费较多的时间和精力。

其四,测试收益。云计算平台开发机构通过提供测试服务来得到相应的收益。

可构建测试指标见表1。

表1 基于云计算软件测试方案效益评估指标

从上表所列指标可知云计算软件测试的总费用计算公式如下:

其中,一级指标权重值为a1、a2、a3。

由此看出,总效益最大化就是在降低各指标费用投入的同时尽可能地节省部分费用从而实现收益与成本之差的最大化,即mabe=IN-C。

5 测试方案实验分析

5.1 测试准备与执行

本测试平台按照B/S架构要求进行开发,其中WEB服务器在Linux环境下搭建,其前端页面开发使用JavaScript脚本语言,并综合应用了Angular JS框架和query插件;云端资源利用Openstack进行具体控制,虚拟化资源池的建立则给予KMM技术来完成;测试脚本采用TCL语言编写;采用Selenium作为测试的执行引擎。

预置四台物理机,处理器和运行内存分别为八代Core i5四核、8 GB,系统选定despin 15.0。在此情况下,为四台物理机分别增设虚拟机,并将20 GB存储空间、1 GB内存和1个CPU核心作为虚拟机的标准配置[4]。在虚拟机环境搭建完成后,需要根据待测试的目标项目要求来完成分析和脚本编写,上述工作完成后即可登录平台进行上传,然后对测试过程进行必要的配置并启动自动化测试过程来进行测试,得到最终的测试结果。在这里需要特别强调的是,如果按照传统测试方法来完成,在准备阶段还要完成测试软件和具体操作系统环境的安装和配置。

5.2 实验结果

利用回归测试的方法对测试过程中使用到的元器件时间进行计量分析,得到如表2所示的测试时间统计结果。

表2 测试花费时间表 单位:min

由表2可以看出,在环境配置和测试执行时间方面,相比传统测试方法而言,基于云计算软件自动化测试方案具备的优势更加显著。结果报告时间达到一致性,或许是因为测试软件的规模不大,所以新方案的优势未能有效体现。

同时根据对CPU利用率的监测结果发现,在云测试平台环境下,CPU能够得到充分利用,利用效率接近80%,而传统测试仅达到71.8%,由此看出,新方案在CPU资源利用率方面获得了明显提升。

5.3 软件测试优势

(1)降低了测试成本。对于测试人员来说,在利用云平台完成软件测试任务时,首先需要建立存储设备、计算资源和软件系统等一系列硬件体系,然后在互联网云端的作用下,促使测试平台和云端联系在一起,如此一来既降低了物理设备的购置开销,又实现了平台维护投入的最优化,并且具有了远高于专属硬件平台的适应性,能够随时按照用户需求来优化资源配置,向其分配一定的动态资源,这样可以节约资源,防止造成浪费,即使出现资源短缺时,也可以在规定时间内完成扩展,完成测试后,资源可以得到释放,最终为用户搭建一个资源共享平台。

(2)测试效率高。软件测试过程中,测试人员不需要把软件系统安装在终端,只需要在云端平台上就可以完成文件的上传以及资源测试等工作,测试完成后,云端服务器中就会自动保存测试结构,通过网页登录,企业内部人员就可以下载测试结果,测试人员在整个测试过程中,无须做任何工作,整个测试过程的主要任务就是根据报告来进行测试结果分析。

(3)提高数据安全性。在传统方式下数据需要本地存储,储存资料时需要硬盘,这样不仅会导致储存容量过剩,同时也会造成不必要的资源浪费,硬盘数据备份也是十分烦琐的过程,并且也不具备较高的安全性,如果硬盘出现损坏现象,储存的数据很容易丢失。但是云端储存具备较高的安全性,储存空间也能得到扩展,数据需要备份时,可以自动化完成,通过机密技术,也能将数据安全性提升。

(4)能够充分利用网络的共享性。软件测试过程中的各种信息和数据都属于云端储存数据,保存时使用文档形式即可,通过网页也可以完成数据内容的访问,管理人员进行项目和平台管理时,也可达到全方位以及多方面的结果,针对测试项目,测试人员之间也可以增加沟通频率,按时完成测试,从而将企业整体工作效率提升。

6 自动化测试用例设计原则

自动化测试工具能将测试维护成本最小化,这也是其最大的优势,自动化测试用例设计的优劣和自动化测试的效果的成败有直接关系,因此,开发设计自动化测试用例时,应严格遵守以下原则。

6.1 优先考虑核心测试点和需重复执行的测试点

自动化测试用例设计过程中,测试人员习惯使用自动化测试,其认为通过自动化测试也能达到百分之百的覆盖率,但这样往往会对测试结果造成极大影响。对于大型项目而言,其测试时需要使用一定数据的用例,如果在此过程中出现复杂的程序,就会导致测试时间增加,实际上,通过自动化测试并不能完成所有的测试用例,软件版本的更新速度和测试用例数量之间属于正比关系,更新速度越快,用例数量就会越多,无疑将提升后期的维护难度[5]。因此,核心测试点和需重复执行的测试点也成为该项工作的重点。

6.2 优先考虑以正常情况为主

通常情况下,测试用例设计分为两种情况,即正常情况和异常情况,正常情况下,不会出现太多问题,但对于异常情况来说,相对烦琐,其测试用例会达到几十个,如果通过自动化测试用例来完成测试工作,后期的维护工作难度会一直上升,因此,自动化测试设计中会适当使用反向测试用例。

6.3 需重视数据的初始化

自动化测试完成后,可能会出现数据变更的现象,因此,每次测试完成后,都需要提高对数据初始化回归的重视程度,防止出现麻烦,例如,数字电视直播时,SI信息功能测试会被删除,测试完成后需要重置SI信息。

7 结论

综上所述,在云计算技术支持下进行软件测试,能够实现自动化,可以实现云端资源与具体业务需求的灵活统筹,优化编排,可以让资源与业务融合在一起,然后完成效益评估指标的测试分析,并根据分析结果建立测试方案效益评估模型,通过搭建实验平台,证实了该方案具有一定的高效性。通过本文研究表明,将云计算与软件自动化测试融合在一起,不仅能发挥相互两者的优势,同时也看到了其日后的应用前景,摒弃了传统软件测试的劣势,其重点将转移到云计算资源的优化上,通过较少的资源,完成高质量的测试工作。

猜你喜欢

测试人员测试用例软件测试
软件测试方向人才培养“1+X”融合研究
基于LDA模型的测试用例复用方法*
论职务犯罪侦查中测谎技术的应用与完善*
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
浅析软件测试中的心理学应用
关于 Web 应用系统的软件测试的研究
软件测试中的测试用例及复用研究
绿植防辐射只是个传说,是真的吗?
测试工时受限的测试策略研究