基于虚拟化技术的自动化测试系统的设计与实现

时间:2022-10-13 11:43:34

基于虚拟化技术的自动化测试系统的设计与实现

摘要:目前计算机信息技术已经成为社会发展中必不可少的重要科技,且随着其应用范围的不断扩大和涉及领域不断增多,用户对信息技术所提出的要求也越高。尤其是在软件的应用中,用户对其功能的完善性、性能的稳定性以及更新的速度都提出了更高的要求。在此情况下, 各种新型软件不断被研发出来,给软件的回归性测试工作带来了很大压力。为了缓解这一压力,自动化测试系统的设计与实现就显得很有必要。现本文就在从虚拟化技术出发,来探讨自动化测试系统的设计与实现。

关键词:虚拟技术;自动化测试;设计;实现

在软件的开发过程中,软件测试是一项必要环节,是确保软件性能稳定的重要手段。但是目前我国很多软件研发人员往往只重视软件的研发,而没有重视软件的回归性测试。这样一来,就常常会出现软件产品研发成功并发行之后,用户却常常反应软件系统的各种性能缺点,这给软件产品的销售带来极大不利。因此软件开发时,除了要注重产品的开发,还要注重产品的性能测试。以往的软件测试大都是采用手工测试的方法,这种方法效率低、准确性差,且日益增多的软件产品也给手工测试带来较大压力,因此研究新的自动化测试系统是当前软件开发行业的重要研究内容。

1、自动化测试技术概述

所谓自动化测试技术,就是指利用计算机和相关软件程序进行软件系统测试,或者是指利用专门的自动化测试工具,在一定测试计划的指导下来对软件系统进行测试。这种软件测试手段相对于传统的手工测试来讲,是具有很大优越性的,弥补了手工测试中很大的不足。如自动化测试能够覆盖所有的代码路径,工作效率较高,不会出现逻辑错误,能够持续测试较长时间等等。但是需要注意的是,自动化测试技术并不能完全取代手工测试技术,在软件开发的过程中还是需要一定的手工测试的。如在大量测试用例的维护下,就需要使用手工测试辅以一定的自动化测试来实现。在现阶段,只有两者相互辅助,才可以更好的完成软件回归性检测。

2、虚拟化技术概述

这里所指的虚拟化,主要是指计算机系统中不使用真实设备进行计算的一种虚拟计算方式,其主要是利用虚拟计算设备来运行计算。在计算机技术领域,采用虚拟化技术是有着很大优越性的,尤其是那些单独为CPU运算而设计的虚拟化技术,更是可以用一个CPU模拟很多CPU的运行,还可以再一个硬件系统中对多个操作系统进行操作,所有系统的应用程序都可以正常运行,各自有自己独立的运行空间,互不干涉打扰,这极大的加快了计算机的运行速度,提高了计算效率。

3、基于虚拟化技术的自动化测试系统的设计与实现

为了能够说明自动化测试系统在软件检测中所具备的检测优势,笔者决定以大型数据库软件IBM DB2 for z/OS为例,通过设计和实现,证明在虚拟化技术的基础上进行自动化测试,能够提高测试系统的并行度和运行效率,同时也不必为硬件设施花费更多成本,实现了较好的自动化经济效益。

3.1自动化测试系统结构设计

RNC为IBM DB2 for z/OS QA Team根据自动化测试思想,结合虚拟化技术设计实现的一个自动化测试框架。经过多年的改进,如今的RNC己经有了新的功能侧重点,在系统架构上也有了很大的改进。从功能上,RNC分为四层:资源层、交互层、服务层和功能层。RNC系统采用B/S结构,是吸取某些桌面测试工具升级难,不能适应需求变化快的情况。尤其是在RNC系统中,功能更新换代比较快,如果采用C/S架构,客户端的频繁升级将会变得非常困难。RNC系统中使用的虚拟测试环境是基于IBM z/VM虚拟机设计实现的。但随着日益多样化的测试环境的要求,RNC系统需要频繁的通过CMS修改虚拟平台的配置参数,效率低下。有些RNC系统引入了EC(Extended Control) Machine。RNC功能系统可以通过模拟登录CMS系统实现与测试环境的通讯,但此方法每次通讯都需要进行身份的验证,在时间效率上有所损失。目前RNC系统中使用的两大主流通讯方式是基于z/VM系统的信任应用,免去了身体验证的效率损失,也简化了通讯步骤。第一个主流通讯方式是传统的CGI服务,另一个是基于REXX-SOCKET的P2P通信方式。目前在RNC系统中REXX-SOCKET方式正逐步取代传统的CGI方式。

3.2系统详细设计与实现

3.2.1测试用例管理模块

测试用例管理模块主要用于维护C/S-MODE的测试用例。RNC系统中测试用例分为两个层级进行管理:TC和BUCKET。测试用例管理模块主要用于维护C/S-MODE的测试用例。RNC系统中测试用例分为两个层级进行管理:TC和BUCKET。BUCKET 由数个测试用例组成。BUCKET内测试用例的组合是由人工管理,一般是基于以下规律:1)有“前导”,“后继”关系的测试用例链;2)测试的功能点一致或相近的数个测试用例;3)基于相同的初始式和收尾式测试用例,并可重用;4)基于相同的测试环境(往往会有一些基于共同的特殊测试环境的“散装”测试用例会被打包进同一个BUCKET,以便于管理)。

3.2.2测试执行引擎

测试执行引擎是RNC系统中的一个核心组件,它负责整个测试任务的执行过程。整个过程涉及:测试人员提出测试请求;根据测试人员提出的测试请求,建立测试环境(这部分主要由测试环境引擎来完成);运行测试用例(KICKOFF);根据结果重跑测试用例(RERUN)。

3.2.3测试环境的准备

由于采用虚拟化技术,测试环境的建立步骤主要是针对z/VM的特性来设计的。测试环境建立步骤为:1)APPLY APAR 。目的:将APARs放置到DB2的载入目录下,当DB2被初始化时,可以把这些测试目标载入DB2运行环境中。2)IPL(EC Setup)目的:建立基础测试环境,载入DB2库,激活DB2运行时环境;前一步骤的APAR列表将会被加入到运行时环境中。3)TCPUN。目的:对于TRAD-MODE提交测试用例到EC环境中,用于本地运行测试;对于C/S-MODE,提交针对特殊测试用例的初始化任务。4)BIND&LOAD 目的:绑定网络访问模块到DB2运行时环境中;测试用例将通过网络与DB2交互;然后载入一些模拟数据到数据库中,准备将来测试之用。5)SetupClient 。目的:主要是针对 C/S-MODE 的,对客户端绑定 JCC,做好与虚拟端 DB2 网络连接的准备。

3.2.4系统的测试运行

RNC服务控制端部署在Windows XP操作系统上,该系统必须能够通过网络访问到虚拟测试环境,STAF/STAX控制端安装在RNC服务控制端和所有的C/S-MODE的测试客户机上。系统的测试运行状况为:1)用户需要输入用户名和密码进入RNC系统的主界面。2)测试用例管理,用户可以添加、删除、修改BUCKET的组合或测试用例的参数信息。3)C/S-MODE测试请求,用户需要指定测试用例,测试步骤等相关信息。 4)C/S-MODE测试监视,通过页面可以观察到测试任务的运行状态,并可以控制测试流程的中止、暂停。图中绿色的条目,表示当前正在运行的BUCKET。5)生成测试报告。最终得出:系统的测试运行状况良好,各页面组织连贯,功能运行正常。

4、结语

综上所述,在软件测试系统中运用虚拟化技术进行自动化测试系统的设计与实现是非常可行的,并且实践证明,这种自动化测试系统的运行效率要远远大于手工测试,是一种值得大力推广和应用的软件测试方法,在软件开发过程中具有非常大的实用意义。

参考文献

[1] 董耀祖,周正伟. 基于X86架构的系统虚拟机技术与应用[J]. 计算机工程. 2006(13)

[2] 邱彦卿. 软件测试自动化技术及其应用研究[D]. 华中科技大学 2007

[3] 徐泽南. 软件自动化测试框架的设计与应用[D]. 复旦大学 2011

上一篇:浅谈LED路灯在实际应用中的争议问题 下一篇:关于中职数学课堂教学与计算机多媒体技术结合...