基于虚拟化架构的软件开发与测试环境自动化_第1页
基于虚拟化架构的软件开发与测试环境自动化_第2页
基于虚拟化架构的软件开发与测试环境自动化_第3页
基于虚拟化架构的软件开发与测试环境自动化_第4页
基于虚拟化架构的软件开发与测试环境自动化_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于虚拟化架构的软件开发与测试环境自动化龚爱斐1,张文静21. 重庆邮电大学移动通信重点实验室,重庆 (4000652. 北京邮电大学通信网络综合技术研究所,北京 (100876E-mail:gongaifei摘要:基于虚拟化架构的软件开发与测试自动化环境是一个新的概念。通过架设基于Hipervisor 层的虚拟化服务器,并辅以软件开发测试自动化工具VMware Lab Manager进行管理、优化,提出了一种新的软件开发测试自动化方案,阐述了该方案相对于传统的软件测试环境搭建的优越性。并进行环境搭建和实施实验论证了该方案在配置和部署开发测试环境的灵活性和良好的可用性。关键词:虚拟机;虚拟化;

2、软件开发测试环境;自动化中图分类号: TP311 文献标识码:A0 引言软件开发与测试环境的搭建是整个软件开发流程中一个重要环节,不同版本的操作系统、数据库、网络服务器以及应用服务再加上不同的系统架构的组合,使得要构建的软件测试环境种类繁多,大部分的软件开发环境具有可重用性,但往往不同的软件开发与测试环境需要交替进行,而且随着软件运行环境的多样性、配置各种相关参数的复杂性以及测试软件的兼容性等各方面的需求增多,构建软件开发测试环境的工作变得愈加复杂和频繁。因此有必要引入自动化的方法来对软件开发测试环境的搭建方案进行改进。基于虚拟机技术的封装性和隔离性等优点,可以创建具有复用性的软件开发环境库1

3、,这对提高软件开发测试效率以及灵活性是一种更有效的方法。1 开发、测试虚拟机及其集合的概念虚拟机(Virtual Machine是利用虚拟机监视器(Virtual Machine Monitor,简称VMM作为一个软件抽象层(Hipervisor插入硬件层与软件层之间2,可以为应用提供独立的运行环境,屏蔽硬件平台的动态性、分布性以及异构性,将单个的物理硬件平台虚拟成多个虚拟机,使得不同的操作系统可以同时在其上运行,支持同一硬件之本课题得到863计划引导项目(课题名称:TD-SCDMA 手机关键技术的研究与应用,课题编号:2004AA001390的资助。上的虚拟机之间共享和复用硬件资源,以及共享

4、相同的内核运行代码,并且为每个开发人员和用户提供独立、隔离的使用环境。虚拟机与真实的计算机类似,拥有自己的CPU、内存、硬盘、软驱、光驱、网卡等,可以安装Windows、linux等各种版本的操作系统(视软件抽象层VMM的架构不同而稍有区别。在操作系统之上安装相关的开发测试工具,并配置好系统参数就形成了开发测试虚拟机。在实际开发测试过程中往往需要多台虚拟机组成的联合环境进行系统性的开发测试,而与具体的软件开发测试相关的多台虚拟机环境,就形成了一个集合。在实施基于虚拟化架构的软件开发和测试自动化环境搭建过程中,我们往往面对的是一组虚拟机的集合所构建的环境。由于硬件平台的升级、维护等情况会影响软件

5、开发测试的持续稳定进行,因此屏蔽硬件资源的动态变化以及增强开发测试环境部署的灵活性就成为实现软件开发测试环境自动化中的重要问题。通过VMM虚拟的虚拟机硬件平台具有通用性。以往当新的硬件或者操作系统发布时,一些不兼容这些新的硬件和操作系统的应用软件往往会制约硬件平台的升级,而虚拟机技术允许在新的硬件平台上构建的不同的虚拟机硬件,同时支持新老版本的软件。目前,硬件平台和操作系统对虚拟机的支持已非常普遍。因此,虚拟机的执行效率和稳定性在底层环境的得到了保证。2 基于虚拟化架构的软件开发测试环境2.1 虚拟化架构种类的选择在虚拟机的发展过程中,对应于不同的应用需求出现了多种虚拟机,可以按照虚拟化的规模

6、、指令集、宿主环境等方面的多种标准对虚拟化架构进行分类2,本文研究的开发测试环境主要考虑虚拟机的性能和环境部署的灵活性等方面的内容,因此从虚拟机的宿主环境的选择来考虑虚拟化架构。按照虚拟机的宿主环境可以将虚拟机分为寄生虚拟机和经典虚拟机。宿主环境是虚拟机的运行支撑环境,寄生虚拟机是指宿主环境是操作系统的虚拟机,如VMWare、Virtual PC,这种情况中,VMM是位于操作系统层以上的。而经典虚拟机的宿主环境是硬件平台本身,即VMM 是存在于物理硬件层与虚拟机之间的,如VMWare面向企业推出的VMWare ESX Server 等。通常我们所熟知的是寄生虚拟机,并且使用较多,但经典虚拟机可

7、以绕过操作系统直接访问硬件,因此在性能上具有更大的优势。基于这点,我们选择经典虚拟机作为本文所述开发测试环境的虚拟化架构的基础。2.2 虚拟机的关键特性虚拟机技术通过解除硬件和软件资源的体系结构、用户感知的行为与其物理实现之间的耦合,去解决计算机系统的安全、性能和可靠性等问题3。根据虚拟机的应用分析,我们认为虚拟机具有以下关键特性:1硬件独立性:虚拟机可以转移到其他物理服务器上不加修改地运行。2封装性:虚拟机中操作系统、软件及其运行环境都被封装在一个独立的虚拟机硬盘文件中。虚拟机的安装、备份、复制、分发都可以通过对该虚拟硬盘文件进行操作,减小软件开发测试环境分发和配置的难度,提高了部署的灵活性

8、。3隔离性:多台虚拟机可以在同一物理主机上互不干扰地同时运行,即共享底层硬件资源,又可以各自安装不同版本的操作系统与软件。并且一个虚拟机出现故障不会影响其他虚拟机的正常运行。4易管理性:虚拟机硬件的添加、修改、删除以及开机、关机、休眠等都有特定的编程接口。通过将这些编程接口封装成远程服务,可以实现硬件资源的集中管理和远程控制,从而形成一体化的软件开发测试环境。2.3 开发测试环境的自动化基于虚拟机建立的软件开发环境往往只关注单个虚拟机的上的技术,缺乏对多台虚拟机组成的联合开发环境及其如何实施自动化的研究。此外,由于缺乏对虚拟开发测试环境的设计、管理、监控等功能的支持,传统的由虚拟机建立的开发测

9、试系统无法体现联合虚拟开发环境的特点。而多台虚拟机之间依据开发环境所含有的内在联系绑定在一起更符合实际的软件开发测试环境。1开发测试环境的模板化。软件开发环境与操作系统的选择,参数的配置,相关数据库、应用软件的安装等相关联。一般的软件测试环境都是专用的测试环境,测试脚本、测试用例的选择以及测试环境接口都与被测软件密切相关。当测试不同的软件时,需要针对特定的测试对象构建专用的测试环境、配置系统参数等等。而且一些可重用的测试脚本在更改测试环境参数后无法在新的测试环境中得到有效的利用,因此如果能把开发测试环境封装成一个模板,在需要的时候快速实例化该模板,生成即配即用的环境5,对于联合开发和测试将节省

10、用于重复配置测试环境的时间。2联合开发测试。一般的软件开发测试往往是由几种开发测试环境组成的,如客户端、服务器端、数据库服务器等。而某种软件的测试往往同时跟一种以上的测试环境有关,需要联合几种环境进行开发和测试。基于虚拟机的封装性和隔离型,可以将多个开发环境组成虚拟机的集合,并依据该集合内多种虚拟机环境之间的关联性,对这个集合进行模板化和实例化的操作。3 虚拟化软件开发测试环境的体系结构 图1 虚拟化开发测试环境体系结构如图1所示,虚拟化软件开发测试环境体系结构中核心部分为:Lab Manager服务器、被管理主机以及存储服务器。1Lab Manager服务器:为整个测试环境提供Web与SOA

11、P接口。Lab Manager服务器对被管服务器资源池进行配置的管理和部署工作。开发和测试人员可以通过IE浏览器远程登陆Lab Manager服务器所提供的管理页面或通过相应的软件工具调用Lab Manager服务器提供的SOAP API接口4对虚拟机集合进行管理和使用。Lab Manager正是利用了虚拟机的相关管理编程接口对被管服务器中的虚拟机进行各种操作。可以同时对多台被管服务器进行开发测试环境的配置和管理。2被管服务器:安装了虚拟化软件层(如VMware ESX Server等和管理代理软件的高性能服务器。实际中往往选取高性能服务器进行开发测试环境所需的虚拟机的安装和配置。被管服务器可

12、以是多台同时工作形成服务器群集。虚拟化层之下的围栏驱动实现了对虚拟机集合的隔离,使得不同的开发测试环境可以重复生成和同时部署而不会在网络上引起IP地址、MAC地址或者SID的冲突。3存储服务器:用于存储封装虚拟机的虚拟硬盘文件以及开发测试人员常用的光盘镜像文件等。当实例化一个虚拟机环境模板时,虚拟机调用的是被管服务器的硬件资源,但对于虚拟机环境的读写操作最终会对存储服务器中的虚拟机硬盘文件产生作用。4 虚拟化开发测试自动化环境的搭建及实验如图2所示,虚拟化开发测试自动化环境的系统拓扑图的关键节点为Lab Manager服务器。被管服务器是安装了VMware ESX Server虚拟化层的高性能

13、服务器。图2 虚拟化开发测试自动化环境系统拓扑图通过Lab Manager服务器中基于虚拟机编程接口提供的系统管理功能可以实现以下功能:1创建单台虚拟机模板,并在其中安装需要的操作系统;2将不同的虚拟机模板组合成的开发测试环境导入配置集,形成虚拟机的集合,进行统一管理、部署、监控;3对于隶属于不同项目的开发测试人员进行相应权限的分配,以及开发环境的共享和独占的设置;4实时捕获运行中的虚拟机集合的状态,并保存到状态库,并交给后续流程的开发测试人员使用。后续的开发测试人员可以利用保存的状态文件立即部署开发测试环境。5对虚拟机状态可以实现增量复制和完全复制。增量复制可以有效减少新的虚拟机实例占用的硬

14、盘空间;而完全复制可以对虚拟机封装文件进行完整备份。 (NFS等通过对虚拟化开发测试自动化环境中虚拟机模板的创建和虚拟机集合的配置、部署、启动、实时捕获联合开发测试环境中虚拟机的状态等功能的测试6,得到如表1所示的实验结果。实验所用的环境为:被管理服务器为2台HP dl380两路服务器,Lab Manager服务器是安装了Windows 2003 Server系统的普通PC机,其中HP dl380服务器作为虚拟机创建和运行的环境。实验结果中记录了虚拟机模板的创建、操作系统的安装、虚拟机复制、开发测试虚拟机集合的配置、环境部署时间、启动时间等。该实验中创建了3种虚拟机模板,分别安装了WinXP、

15、Win 2003 Server、Linux RHEL4操作系统,并安装了相应的开发测试软件。每台虚拟机分配的磁盘空间为5G,从表1的实验结果可以看出,配置起始虚拟机模板的时间与一般的物理机配置时间类似。如果将这些虚拟机模板实例化,即生成可以用于实际开发测试的虚拟机,所需时间仅为8-12s,而针对实时运行的虚拟机状态的捕获时间则与同时被捕获的虚拟机数量相关,捕获后的状态可以存储到状态库中成为开发测试环境的镜像拷贝,在需要的时候可以立即实例化状态镜像进行作业。模板的实例化与虚拟机的状态的捕获过程是无需人工参与的。因此模板的建立是比较耗时的一个关键步骤,当拥有配置好的虚拟机的模板后再进行开发测试环境

16、虚拟机实例化时将会节省大量重复性劳动的时间,甚至可从一个模板实例化出2台以上的可运行的虚拟机。可以看出利用自动化环境可以大大减轻开发测试人员的工作强度和减少重复性劳动时间。表 1 虚拟化开发测试环境创建实验5 结论本文首先从软件开发测试环境的复用及自动化分发出发,引入了开发、测试虚拟机及其集合的概念,通过对虚拟机技术选择的分析,以及虚拟机关键特性的总结,分析了利用虚拟化架构建立软件开发测试自动化环境的可能性。阐述了基于虚拟化架构开发测试自动化环境的体系结构核心模块组成,及该环境可以为软件开发测试人员提供硬件资源共享和开发环境集中管理与共享等功能,并实现开发测试环境自动化地复制分发。最后通过基于

17、VM Lab Manager、ESX Server等工具搭建的虚拟化开发测试自动化环境配置及部署实验,分析了该自动化环境的优越性。参考文献1Magnusson P S,The virtual test labJ.IEEE Computer,2005, 38(5:95-97.2Smith J E,Nair R,The architecture of virtualmachinesJ.IEEE Computer,2005,38(5:32-38.3Figueiredo R,Dinda P.A,Fortes J.Resourcevirtualization renaissance J. Compute

18、r, 2005,38(5:28-31.4Ji Hu Cordel,D Meinel,Virtual machine managementfor Tele-Lab "IT-security" serverC/ Pro of 10thIEEE Symposium on Computers andCommunications ,2005 :448 -453.5Eickelmann N S,Richardson D J,An evaluation ofsoftware test environment architecturesC/Pro of the18th Internatio

19、nal Conference on SoftwareEngineering,1996:353 - 364.6Jang,Jiyong Han,Saeyoung Kim,JinseokPark,Sungyong Bae,Seungjo Woo,Young Choon.APerformance Evaluation Methodology in VirtualEnvironmentsC/Proc of the 7th IEEE InternationalConference on Computer and InformationTechnology,2007:351-358.Type of inst

20、ance Size(MB InstallTime(min DeployTime(sBootTime(sCaptureTime(sOne VM Template(fresh 5000 39 5 52 N/AOne VM Instance(based on Template 16 N/A 8 40 113One Configuration with 3 VMs(based on Template15000 N/A 12 55 288Automation Environment for Software Developing and TestingBased on Virtualization Ar

21、chitectureGong Aifei1,Zhang Wenjing21.Key Laboratory of Mobile Communications Technology,Chongqing University of Posts andTelecommunications,Chongqing (4000652.Institute of Telecommunication and Network Technology,Beijing University of Posts andTelecommunications,Beijing(100876AbstractIt is a new concept that a environment for software

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论