APP下载

云测试系统研究与实现

2017-09-29刘新娥李维勇刘宗昌

软件导刊 2017年9期
关键词:云计算虚拟化

刘新娥 李维勇 刘宗昌

摘 要:基于云计算技术,提出测试资源的云端管理系统,将测试资源云化、虚拟化,在云端共享,借助统一的测试平台——云测试系统,实现测试资源统一调度和应用,同时给出了云测试系统的框架和部署。该系统的应用有助于打破资源壁垒,降低测试网络维护成本,提升测试效率,从而提升企业的软件测试能力。

关键词:云计算;云测试;虚拟化;SPL框架

DOI:10.11907/rjdk.171355

中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2017)009-0123-03

Abstract:Based on thecloud computing technology, the testing resource management system of the cloud is proposed, the cloud of test resources, virtualization, sharing in the cloud, by means of the unified test platform-cloud testing system, and to realize the unified dispatching test resources application, and gives the framework and deployment of cloud testing system. The application of the system helps to break the barriers to resources, reduce test network maintenance costs, improve test efficiency, thereby enhancing the software testing capabilities of enterprise.

Key Words:cloud computing; cloud testing; virtualization; SPL framework

0 引言

測试作为产品研发中至关重要的环节,其意义已超出了一般的软件故障发现活动。在当今全球电信设备厂商激烈角逐的态势下,只有通过了苛刻的入网测试、验收测试、招标测试等各种类型的测试,厂商才有机会进入高端市场。

传统的测试模式将被测对象/测试资源(DUT/SUT)按团队/项目等各种组织方式进行分配,资源之间相互独立。随着软件系统复杂度/规模的增加以及业务的高速发展,传统模式下的测试已不堪重负,测试周期长、资源消耗大[1],具体有以下弊端:①维护成本高。复现一个故障或验证一种功能,要经常往返于机房,搭建网络环境,尤其对于方案级的测试环境,搭建、维护相当复杂;②资源壁垒。由于资源紧张,搭建网络环境时,需要经常沟通、协调。资源使用权在项目/组织,因此资源壁垒给跨项目/组织协调带来困难,某些资源紧张时,而其它项目/组织的资源可能被闲置,资源复用率低;③资源浪费。设备种类多、电源管理复杂、自动化控制程度低,对于不同业务、不同场景,设备工作周期不固定,难以对电源管理进行统一控制,存在很大浪费。

效率的提升不仅依靠技术创新,更多地要靠模式创新,才能为企业带来更大的产出效益。测试资源的云端管理模式,即是针对测试过程中涉及的各种测试资源,充分开放配置到云端,同时在调度、流程、应用、数据、分析、决策等方面进行统一管理,打破资源壁垒,充分协调、共享测试资源。

1 云测试系统研究

测试资源的云端管理,即利用云计算技术,将测试资源云化、虚拟化,在云端共享,构建云测试系统(Cloud Testing System),实现统一调度。

1.1 云计算技术

云计算(Cloud Computing)是一种网络计算模式,它能够根据需求,以服务的方式向用户提供动态、弹性、可伸缩的资源[2],降低管理成本。

云计算包含3种服务类型:SaaS(Software as a Service,软件即服务)、PaaS(Platform as a Service,平台即服务)与IaaS(Infrastructure as a Service,基础架构即服务)。云计算的服务模式以其松耦合、绿色、灵活等特点受到人们青睐[3]。

在基于云计算的测试研究方面,文献[4]提出根据被测试程序的特征和所执行的测试类型确定测试何时适合迁移到云环境中,但并未涉及具体实施方案;文献[5]设计了一个基于云计算的 D-cloud平台,用于测试大规模软件的可靠性;文献[6]提出一个包括测试用例设计到执行完整过程的并行测试方案,但对于测试资源到云环境的迁移过程,或者测试资源的云端管理模式上,相关研究及其应用尚不成熟。

1.2 云测试研究

云测试是基于云计算的一种新型测试方案,通过测试资源云端以按需、易扩展的方式向测试交付所需资源,包括被测对象、测试平台、测试仪表等服务。

测试资源云端管理从资源的云端视觉出发,通过智能化、虚拟化等一系列方法,实现对测试领域的多维度、多层面覆盖,并实现对测试资源多层次、多应用的整合,同时打破测试资源壁垒,降低测试网络维护成本,提升测试效率,如图1所示。

1.3 云测试框架

云测试系统框架,参考云计算服务类型,分为测试软件系统SaaS、测试业务扩展平台PaaS、实验室管理服务LaaS,上述服务框架简称为云测试SPL框架,如图2所示。

LaaS(Lab as a Service,实验室即服务),指以服务形式提供测试实验室管理,包括网络设备、服务器、测试仪表等。将这类实验室设施采用云端管理后,可借助虚拟化技术构建测试环境,交付测试使用。endprint

PaaS(Platform as a Service,平台即服务),指以服务形式给开发人员提供测试平台,展开各种测试业务。平台服务一般包括数据存储服务、资产报表服务、版本构建服务、持续集成服务、自动化测试服务、制品仓库服务、流程编排服务。

SaaS(Software as a Service,软件即服务),指通过浏览器以服务形式给用户提供应用程序,诸如云测试涉及到的资源ERP、资产管理、运维服务、业务重现等。

2 云测试系统实现

结合上述云测试SPL框架,下面进一步考虑云测试系统的实现方案。

2.1 云测试系统框架

云测试微服务框架分为4层:基础设施层(Infrastructure)、服务层(微服务,Service-Oriented)、应用层(Apply-Oriented)、UI层(User-Oriented),如圖3所示。

(1)基础设施层,提供实验室基础设施服务(机房/实验室、DUT/SUT、服务器/虚拟机、存储和网络硬件),包括虚拟机的创建销毁服务、存储分配、网络拓扑服务。

(2)服务层,具体分为面向实验室的服务(infra-Oriented)和面向测试应用的服务(apply-Oriented)。面向基础设施的服务,包括云资源发现、网络拓扑自动构建、虚拟机管理、资源信息数据库服务、存储服务;面向应用的服务,包括资源调度服务、脚本运行服务、报表服务、网络管理服务、版本管理服务、缺陷管理服务、用例管理服务等。该层是云测试微服务非常重要的一层。

(3)应用层,是对下层的微服务,结合测试需求场景,作进一步的大颗粒度编排。包括报表服务(Report)、集成测试服务(CI)、自动化测试服务(ST)等。

(4)UI层,提供给用户Web(浏览器)、桌面系统(Desktop)、APP(手机终端)等操作平台。

2.2 云测试系统部署

一般在网络实验室进行私有云部署,包括各种网络资源、存储资源、计算资源,并通过LaaS提供测试实验室服务。在私有云LaaS上,驱动服务器负责网络构建、虚拟机创建与存储资源管理。网络监控实时将资源状态汇报给LaaS,以保证基础设施的健壮性、可用性等。

公有云部署包括调度服务器部署、监控服务器部署等。调度服务器使服务与动态资源虚拟化,为用户提供资源透明的云测试服务,包括资源创建/销毁等。队列服务器面向SaaS应用,提供云资源的请求队列管理等。

应用部署可以是桌面系统、IE浏览器等,提供云测试的一系列访问接口。私有云部署/公有云部署/应用部署如图4所示。

2.3 云测试系统优势

云测试系统具有以下优势:

(1)立即可用。云测试提供一整套测试环境,测试人员利用虚拟桌面等手段登录到该测试环境,即可展开测试,并将软硬件安装、环境配置、环境维护的代价转移给云测试提供者。以现在的虚拟化技术,在测试人员指定硬件配置、软件栈(操作系统、中间件、工具软件)、网络拓扑后,可以很快创建一套新的测试环境。

(2)装配完备。云测试不但可以提供完整的测试环境,还可以提供许多附加服务。对于测试机,它可以提供还原点,以便测试人员将虚拟机重置到指定状态;对于测试执行,它可以监控被测试程序,帮助测试人员发现问题、定位错误;对于大规模测试,云测试可以提供多台测试客户机,从主控机上下载测试用例,执行并汇报测试结果,主控机将结果汇总后报告给测试人员。

(3)按需提供。在测试过程中,如果不了解测试需求,将导致测试资源的极大浪费,而云测试提供了一种按需测试的方式,用户可以灵活、按需地部署测试资源与环境,并在测试完后释放相关资源。

3 结语

借助云计算/虚拟化技术等构建的测试资源云端管理系统,可打破资源壁垒以共享资源,降低维护成本以提升测试效率。本文介绍了云测试系统的框架与实现方案,通过测试资源的云端管理模式创新和云测试的技术创新,有助于提升企业的软件测试能力,加快产品的市场投放。

参考文献:

[1] CHANA I, RANA A. Empirical evalulation of cloudbased testing techniques: a systematic review[J]. Acm Sigsoft Software Engineering Notes,2012,37(3):1-9.

[2] ARMBRUST M. Above the clouds: a berkeley view of cloud computing[R]. Berkeley,USA: Electrical Engineering and Computer Sciences University of California,Tech. Rep.:UCB/EECS-2009-28,2009.

[3] 殷星,周剑雄,王明哲.企业云应用研究策略多时段分析[J].计算机科学,2014,41(6):188-192.

[4] YU LIAN, TSAI W T, CHEN XIANG JI ,et al.Testing as a service over cloud[C]. Proc of the 5th IEEE International Symposium on Service Oriented System Engineering,2010:181-188.

[5] BANZAI T, KOIZUMI H, KANBAYASHI R, et al, D-cloud: design of a software testing environment for reliable distributed systems using cloud computing technology[C]. Proceedings of the 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing. Melbourne, Australia: IEEE Computer Society,2010.

[6] 黄晓玲,陈桂林,赵生慧.基于云计算的并行测试方案设计与实现[J].计算机工程,2012,38(24):27-31.

(责任编辑:黄 健)endprint

猜你喜欢

云计算虚拟化
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
虚拟化技术在CTC/TDCS系统中的应用研究
虚拟化技术在计算机技术创造中的应用
实验云:理论教学与实验教学深度融合的助推器
高速公路服务器虚拟化技术应用与探讨
存储虚拟化还有优势吗?