摘 要: 分析了国内软件质检行业资源聚合面临的问题,提出了采用云计算技术聚合各软件质检机构资源的方案,设计并实现了基于云计算技术的公共测试服务平台,该平台通过测试云服务方式以统一的接口推动国内软件质检资源共享,并为软件质检机构提供了一种新的业务模式。
关键词: 软件测试公共服务平台;软件质检资源聚合;软件测试云;云计算
0 引言
近十多年来,国家成立了多家软件产品质量监督检验中心,并投资兴建了大量的软件工程化管理和测试验证环境。这些基础设施和测试环境为国家的重点领域工程质量监督检验起到了重要的作用,但也存在一定的问题:各家质检机构地理位置分散、资源无法共享使用,资源规模建设不平衡、资源重复性建设、资源建设后闲置未用、大部分资源只能在实验室使用等,这些问题直接导致了软件产品质检资源的应用水平普遍较低,重点领域和新技术领域的检测能力不足。如何将这些软件质检资源在保障国家重点型号工程建设的同时,面向我国各行业领域企业提供便捷的质检服务,多层次化地提供质量保证服务,是一项意义重大的工作,这其中面临着如何有效整合利用这些资源的难题。国外学术界和产业界已经有不少研究人员对云计算环境下的软件测试问题开展了相关研究,相对而言,国内这方面的研究还处于起步阶段[1]。
云计算技术的不断完善,推动软件开发技术和应用模式正在向以用户为中心转变。云计算是软件服务化的模式,可以按照用户需要动态地提供计算、存储、应用等各类资源,具有可动态的伸缩性、使用成本比较低、可管理性好、节约能耗、安全便捷等优点,解决了资源难以整合使用的难题。
为此,本文分析了软件质检资源聚合技术,设计并实现了基于云计算的测试公共服务平台,最终为整合利用分散的测试资源提供了相应的手段。
1 平台的主要功能
1.1 软件质检资源聚合服务
软件质检资源主要包括硬件基础设施和软件质检工具两个方面。目前,国内软件质检机构均具有一定规模的硬件基础设施和软件质检工具,但由于地域限制、职责划分等方面的原因,未能得到高效的应用。通过统一的平台接口、结合目前业内新兴的云计算技术,可以在一定程度上聚合闲置资源,提高其利用率。
1.1.1 基础设施
采用云计算技术整合国内软件质检机构的硬件基础设施资源,对分散在各地的国内软件质检机构的硬件资源进行统一的管控,构建测试云平台的基础设施层,具体包括主机、存储、网络、其他硬件资源等。
通过统一的软件质检平台接口,根据用户需求提供基础设施服务,用户能够通过租用的方式访问并使用大量的基础设施资源,可为用户提供大规模或超大规模的性能验证能力[2]。用户在软件质检平台下使用这些基础设施资源,不需要关心硬件设施的物理位置,只需要按测试时间支付资源使用费用,用户能够以高性价比的方式获得计算资源,无需投入大型的专用测评实验室的建设。
在此基础设施层之上,根据行业发展需要,软件质检平台可以定制提供不同的大型平台应用服务解决方案,供用户灵活选择使用,如移动、电信等平台的大规模移动应用计算服务。
1.1.2 质检工具资源
软件质检平台采用云计算技术,建立统一的测试工具资源池,通过虚拟化技术,将各种测试资源按照行业领域等进行合理的配置,形成符合行业软件质量检验标准的资源模板。为用户提供“一站式服务”门户,用户需要时通过申请即可使用,使用完成后,系统自动回收资源,放入测试工具资源池。综合分析质检工具资源的使用方式主要包括以下几类:
(1)单机运行的软件。对于可单机运行的软件,通过虚拟化技术,将其移植到云计算应用平台上,通过统一的平台向软件企业或相关质检机构提供远程质检服务。
(2)分布式应用软件。对于需要超大规模并发用户数的质检服务需求,单个质检机构无法单独完成,通过平台进行管理调度,聚合多家监测机构现有的资源,发布统一的检验脚本,协作完成质检业务,同时平台汇总质检结果数据。
(3)对资源占用率较高的质检工具。由于现有的虚拟化技术存在资源损耗,平台通过视频压缩的远程显示技术,以无损的形式将相关应用提供给终端用户。
1.2 行业软件质检解决方案
经过多年的实践,各质检机构在特定行业(如轨道交通、汽车电子、航空机载软件等)的软件产品的质量监督检验过程中积累了大量的经验,并对特定行业的相关软件标准有了较深的理解,但是没有形成一个针对行业领域软件质检的完整解决方案。这就需要各质检机构及行业领域相关组织共同研究分析,将这些经验和理解知识化、系统化,使之形成特定行业的软件质量监督检验解决方案,并通过软件质检平台对外提供服务,具体包括如下内容:
(1)通过软件质检平台联合特定行业的龙头企业,以联合实验室、技术中心等不同形式发布有针对性的软件质量监督检验整体解决方案,帮助企业增强创新能力,形成具有自主知识产权的技术和产品;推动产学研联合,促进技术成果转化、适用技术推广和创新资源共享;培育示范试点工程,建设不同领域软件质量监督检验推广示范中心,辐射全国,带动全行业、全领域的软件质量提升。
(2)以行业领域为背景,将各质检机构成功的测试案例进行分类整理,构建对应的软件质检知识库(包括测试用例库、产品缺陷库、质检工具应用方案等),并使用语义和数据挖掘技术对这些信息资源进行处理,用户可通过软件质检平台快捷地获取相关领域的质检方案。
(3)软件质检平台可以记录行业软件质检过程和结果,不断丰富知识管理的各个信息库,并获得更精确的质量数据。
(4)某些行业对软件开发的过程已有相关标准要求,这些标准规定了行业相关软件工程化管理的内容。对于这些行业来说,软件产品的标准符合性检查是软件质检的必要工作。将这些标准与行业实际需求结合并系统化、流程化,通过软件质检平台提供规范化的软件过程管理工具,指导相关行业的软件企业的开发过程,确保其软件过程的标准符合性。
2 平台架构及关键技术
公共服务平台的整个框架[3-4]由物理资源、资源池、管理中间件、软件即服务组成,如图1所示。其中资源池将经过虚拟化的测试资源、计算资源、存储资源、管理资源和数据资源以基础设施即服务的方式通过网络提供给用户使用和管理。为了能够实现高层次的资源管理逻辑,必须对资源进行抽象,也就是对硬件资源进行虚拟化。虚拟化的过程一方面需要屏蔽掉硬件产品上的差异,另一方面需要对每一种硬件资源提供统一的管理逻辑和接口。
管理中间件层包括用户管理组件、任务管理组件、资源管理组件、安全管理组件等。资源管理主要包括资源部署、资源监控、负载均衡、故障恢复等[5]。
用户管理主要提供计费管理,云计算倡导“按使用计费”的模式。面向公众提供服务的公共测试服务云,主要的计费模式是依据某个时间段内所使用的测试资源以及所消耗的存储、网络、内存等资源向用户收费。
安全管理主要提供身份认证、访问授权、综合防护和安全审计等功能。
最顶层为软件即服务层,是整个公共服务平台的一个门户[6],对用户开放测试申请功能以及面向行业领域的测试应用;为行业解决方案提供商提供内容管理功能,以供其管理或维护其货架上的测试资源。
关键技术包括支撑测试云建设的桌面虚拟化技术、桌面显示协议技术、基于视频压缩的远程显示核心技术。
(1)支撑测试云建设的桌面虚拟化技术
基于VDI的虚拟桌面解决方案[7]是在服务器侧为每个用户准备其专用的虚拟机并在其中部署用户所需的操作系统和各种应用,然后通过桌面显示协议将完整的虚拟机桌面交付给远程的用户,其实现基础是服务器虚拟化。服务器虚拟化主要有完全虚拟化和部分虚拟化两种方法:完全虚拟化能够为虚拟机中的操作系统提供一个与物理硬件完全相同的虚拟硬件环境;部分虚拟化则需要在修改操作系统后再将其部署到虚拟机中。基于VDI的虚拟桌面解决方案通常采用完全虚拟化技术构建用户专属的虚拟机,并在其上部署桌面版Windows、Linux用于提供服务。
采用基于VDI的解决方案,用户能够获得一个完整的桌面操作系统环境,与传统的本地计算机的使用体验十分接近。用户虚拟桌面能够实现性能与安全的隔离,并拥有服务器虚拟化技术带来的其他优势,服务质量可以得到保障。
(2)桌面显示协议
桌面显示协议是影响虚拟桌面用户体验的关键,当前主流的显示协议包括PCoIP、RDP、SPICE、ICA等,并被不同的厂商所支持。
传输带宽要求的高低直接影响了远程服务访问的流畅性。桌面显示协议采用具有极高处理性能和数据压缩比的压缩算法,极大地降低了对网络带宽的需求。图像展示体验反映了虚拟桌面视图的图像数据的组织形式和传输顺序。其中PCoIP采用分层渐进的方式在用户侧显示桌面图像,即首先传送给用户一个完整但是比较模糊的图像,在此基础上逐步精化,相比其他厂商采用的分行扫描等方式,具有更好的视觉体验。虚拟桌面视图内容以图片方式进行传输,所以视频播放时的每一帧画面在解码后都将转为图片从而导致数据量的剧增。为了避免网络拥塞,可以获取用户侧设备的处理能力,自适应地将视频解码工作放在用户侧进行。
(3)基于视频压缩的远程显示核心技术[8]
服务端使用视频编码技术把桌面图像信息进行视频压缩处理,极大地减少了网络带宽,实时地将桌面图像信息传输到远程终端;终端使用带有视频解码的嵌入式处理器实现桌面图像信息的实时、快速及高效解码;终端的键盘、鼠标、U盘等USB设备,采用输入输出重定向虚拟映射技术可以映射到服务端。
3 结论
本文分析了聚合国内软件质检机构测试资源面临的问题,并给出了一种基于云计算的软件测试公共服务平台设计方案,通过测试云服务等方式以统一的平台接口推动国内软件质检资源共享,提供不同行业的软件质检方案,规范相应软件质检标准和流程,全面提升国内软件质检水平。借助于云计算技术的按需服务和计费的模式,大大降低软件企业在软件质检方面以及质检机构的运营成本;另外也从根本上解决了政府重复投入、检测资源浪费的问题。本文的平台设计方案已在某国家级软件产品质量监督检验中心的测试云平台建设中得到成功应用,取得了良好的效果。下一阶段的工作重点将面向各行业领域测试解决方案的构建。
参考文献
[1] 王伟军,姜毅,刘蕤,等.云计算环境下软件测试研究进展[J].现代图书情报技术,2012(11):3-9.
[2] 陈铁南,唐震,王晓冉.基于云计算的大规模性能测试服务平台[J].计算机科学,2014,41(9):63-66.
[3] 李志刚,冯亚娜.云计算虚拟环境下第三方软件测试环境研究[J].信息技术,2013(8):183-185.
[4] 杨本生,袁祥梦,黄晓光.基于云计算的软件测试系统框架研究[J].计算机测量与控制,2014,22(6):1683-1686.
[5] 余凤,徐晓钟,李建军.基于云计算IaaS产品测试技术的研究[J].电视技术,2014,38(15):272-276.
[6] 王奇,曹良帅,赵贤敬,等.基于SaaS的自动化测试云平台研究[J].电信工程技术与标准化,2012(10):67-71.
[7] 陈铁南,唐震,王晓冉.基于虚拟桌面架构的实验机房环境构建[J].沈阳师范大学学报(自然科学版),2014,32(3):401-404.
[8] 张鹏.虚拟桌面压缩技术进展[J].电脑知识与技术,2013,9(34):7788-7791.