软件开发与测试环境自动化研究

软件开发与测试环境自动化研究

[摘要]在软件开发工作中,开发及测试环境的自动化水平直接影响到软件开发效率。通过采用虚拟化服务器,借助其Hypervisor层建设虚拟化架构,并通过VMwareLabManager测试工具来进行辅助,以此实现对软件开发及测试的高效管理与优化,这种自动化方案能够使软件开发及测试环境的部署与配置变得更加灵活。

[关键词]虚拟化;软件开发;测试环境;自动化

引言

在软件开发工作中,需要搭建用于软件开发和测试的环境,以使网络服务器、操作系统应用服务以及数据库能够得以有效组合起来。考虑到软件的运行参数比较复杂,而且其运行环境也比较多样,并且还要对软件兼容性进行测试,这使得软件开发测试环境的搭建也比较复杂与繁琐。所以,需要通过自动化方法来改进原有的软件开发测试环境搭建方案。通过虚拟机技术的应用,能够使软件开发与测试环境以复用库的形式进行创建,从而使软件开发与测试环境的搭建变得更加高效和灵活。

一、用于软件开发与测试的虚拟机介绍

所谓虚拟机是在软件层和硬件层中插入一个虚拟监视器,该虚拟监视器可看作是软件抽象层,以使软件应用的运行及测试能够具备独立的环境,消除硬件平台给软件运行所带来的动态性、异构性以及分布性等方面的影响,在物理硬件平台中,通过虚拟机能够划分成多个软件开发与测试环境,进而使软件能够在不同操作系统环境下进行开发与测试,并且,这些操作系统环境中配置有相应的开发测试工具,通过对各个操作系统环境的系统参数进行配置,进而形成相应的开发测试环境集合。在软件开发与测试中,常常要应用到多台虚拟机组,以此共同搭建软件开发测试环境,这些虚拟机组所搭建的环境便组成了相应的集合。考虑到人们在维护与升级硬件平台时会对软件开发与测试工作造成一定的影响,所以需要对硬件资源所具有的动态性特征进行屏蔽,以此消除硬件资源变化所带来的影响,此外,还需提高软件开发与测试环境在搭建过程中的灵活性,这也是软件开发与测试环境自动化中需要重点考虑的问题。

二、虚拟化架构下软件开发与测试环境分析

(一)虚拟化架构类型。以宿主在虚拟机中的环境类型,可将虚拟机分成两种,一种是经典虚拟机,另一种则是寄生虚拟机,其中经典虚拟机的运行环境是指其平台本身,也就是VMM处于虚拟机和物理硬件层之间,而寄生虚拟机的环境为操作系统。对于经典虚拟机而言,其在运行过程中不需要依赖对硬件平台的访问,而是通过操作系统来运行,这使其不会受到硬件平台的限制,从而使其具有更高的性能。所以,在本文中对虚拟化架构的建立便是采用的经典虚拟机。

(二)虚拟机特性介绍。在虚拟化架构中,其体系结构采用虚拟机技术,以此对软硬件资源进行解除,并从物理层面上和用户感知进行耦合,从而使计算机系统的安全、性能等问题得以有效解决。虚拟机的特性如下:其一,虚拟机能够在任意物理服务器中进行转移运行,这使其具有硬件独立性;其二,虚拟机能够在单独的虚拟机硬盘中进行封装,封装内容包括运行环境、软件和操作系统,利用虚拟硬盘能够实现对虚拟机的备份、安装以及分发等操作,从而使软件开发与测试环境的部署变得更加灵活;其三,隔离性,在物理主机中能够实现若干台虚拟机的同时运行,而且每台虚拟机在运行过程中都不会受到其他虚拟机的干扰,这使其能够实现对硬件资源的底层共享,如果某台虚拟机在运行过程中产生故障,也不会对其他正在运行的虚拟机造成影响;其四,在虚拟机中配置有相应的编程接口,这使人们能够利用该端口来添加、删除与修改硬件,此外还能把编程接口进行封装,使其成为远程服务。

(三)软件开发与测试环境自动化。对于以往的软件开发测试环境来说,虽然有部分能够进行重复使用的脚本能够进行调用,但测试环境参数一旦改变,这些脚本便难以再次使用。而在虚拟化架构下的软件开发与测试环境自动化中,可将开发测试环境进行模板封装,以便于在需要应用时能够快速调用该模板,以此生成相应的软件开发与测试环境。由此可见,采用虚拟化架构下的软件开发与测试模板,能够使软件的开发与测试环境配置时间得以有效节约。依据虚拟机所具有的隔离性与封装性特点,可采用若干虚拟机集合来建立对应的开发环境,以此实现对软件的联合开发与测试。

三、虚拟化架构下软件开发与测试环境

(一)体系结构。在虚拟化架构下,软件开发与测试环境的体系结构主要包括三大核心组成,分别是被管理主机、LabManager服务器和存储服务器。首先,对于被管理主机来说,需要对虚拟化软件进行安装,比如VMwareEXSServer、用于对软件进行管理的高性能服务器等,以此形成软件应用层,在虚拟化层中,虚拟机集合的隔离采用围栏驱动来实现,从而使其能够重复生成与同时部署不同的软件开发测试环境,并且不必担心虚拟机运行过程中产生的网络MAC地址、SID以及IP地址冲突。其次,对于LabManager服务器而言,其服务器配置了SOAP、Web接口,以此实现对测试环境的接口支持,从而便于更好地部署与管理被管服务器资源池。软件开发测试人员能够利用IE浏览器来访问LabManager服务器,并由LabManager服务器为其提供管理页面。此外,LabManager服务器还可通过SOAPAPI接口来为软件开发测试人员提供软件工具,以便于其对这些工具进行使用。最后,对于存储服务器而言,其能够对封装虚拟机中的虚拟硬盘文件进行存储,此外软件开发与测试人员所经常使用的光盘镜像文件也会被存储于存储服务器中。

(二)环境搭建及测试。LabManager服务器可以看作是虚拟化架构下软件开发与测试自动化环境中拓扑图的重要节点。VMwareESXServer虚拟化层中的高性能服务器是被安装于被管理服务器中的,利用LabManager服务器,并通过虚拟机编程接口,能够实现多种系统管理功能,这些功能主要包括以下几点:其一,能够对单台虚拟机模板进行生成,然后在需要的操作系统中安装该模板;其二,可将若干个虚拟机模板按照不同功能要求来进行组合,以此对具体的开发测试环境进行搭建,通过对配置集进行导入,使虚拟机形成集合,以便于对其实施统一管理;其三,能够将具体权限同时分配给不同项目中的软件开发与测试人员,使其能够对开发环境进行高效共享会单独使用;其四,能够对虚拟机集合的运行状态进行实时检测,并将检测信息存储于状态库中,这样软件开发与测试人员便可通过对状态库中存储的检测文件进行调用来实现对开发测试环境的快速部署;其五,能够测试虚拟化开发测试自动化环境中的虚拟机配置、启动、部署、实时捕获以及创建虚拟机模板等功能。为了验证这种环境搭建方案的可靠性,需要确定实验环境,在该环境中有两台两路服务器,即被管理服务器,并且将Windows2003Server系统安装于LabManager服务器中,虚拟机创建与运行的环境为服务器。在实验中需要对虚拟机模板生成、启动时间、安装操作系统、部署环境所花费的时间、复制虚拟机、配置软件开发与测试虚拟机集合等内容进行记录。实验结果表明,相比于一般的物理机配置时间,对起始虚拟机模板进行配置所花费的时间是非常接近于前者的,当需要对虚拟机模板进行实例化应用时,也就是对能够用于软件开发与测试的虚拟机进行生成时,只需花费8至12s的时间,但对虚拟机在实时运行过程中的状态信息进行捕获时所花费的时间则和虚拟机的被捕获数量是有联系的,通过对状态信息进行捕获后,可将其当作软件开发与测试环境中的镜像拷贝文件来使用,以便于软件开发与测试人员能够利用该实例化镜像拷贝文件来进行立即作业。

四、结语

综上所述,本文以软件开发与测试环境的搭建、复用和分发的自动化为论述点,将测试虚拟机、虚拟机集合概念引入其中,以此分析了虚拟机架构类型的选择,并阐述了虚拟机的主要特性,深入研究了虚拟化架构下对软件开发与测试自动化环境进行搭建的可行性。探讨了虚拟化架构下软件开发与测试自动化环境中构成其体系结构的关键模块,以使软件开发与测试环境在复制与分发过程中实现自动化。利用ESXServer、VMLabManager等工具来对虚拟化架构下的软件开发与自动化环境进行了搭建与测试,以此验证其优越性。

参考文献:

[1]王进文,张晓丽,李琦,吴建平,江勇.网络功能虚拟化技术研究进展[J].计算机学报,2019,42(2):185-206.

[2]张富勇,王光旭,李志刚.信息化软件开发架构分析与设计[J].中国新通信,2019,21(10):61.

[3]周俊威.Docker技术在软件开发过程中的具体运用[J].电子技术与软件工程,2018(14):24-25.

[4]龚爱斐,张文静.基于虚拟化架构的软件开发与测试环境自动化[A].第二十二届中国(天津)2008IT、网络、信息技术、电子、仪器仪表创新学术会议论文集[C].北京市电子学会、天津市电子学会、天津市仪器仪表学会、重庆市电子学会、四川省电子学会、河南省电子学会,2009:62-65.

[5]李静,赵志升.面向高校教学应用与科研开发建设通用软件自动化测试环境[J].河北北方学院学报(自然科学版),2014,30(2):26-30.

作者:韩燕 单位:江苏商贸职业学院电子与信息学院