“测试即服务”概念模型研究*
姜毅1,2, 曹丽3, 王伟军1, OssiTaipale4
1华中师范大学信息管理学院 武汉 430079
2浙江理工大学经济管理学院 杭州 310018
3浙江理工大学信息学院 杭州 310018
4拉普兰塔理工大学软件工程实验室 拉普兰塔 53400
摘要

给出 “测试即服务”(TaaS)概念的完整定义,并比较TaaS与传统软件测试模式的区别。在参考软件测试国际标准的基础上,提出TaaS架构层次模型,讨论TaaS的测试过程和应用现状,通过实证调查分析用户选择TaaS的影响因素,并探讨TaaS中新的软件测试质量评价方法。

关键词: TaaS; 概念模型; 服务质量; 云计算
中图分类号:TP393
Research on the Concept Model of Testing as a Service
Jiang Yi1,2, Cao Li3, Wang Weijun1, Ossi Taipale4
1School of Information Management, Central China Normal University, Wuhan 430079, China
2School of Economics & Management, Zhejiang Sci-Tech University, Hangzhou 310018, China
3School of Information, Zhejiang Sci-Tech University, Hangzhou 310018, China
4Software Engineering Laboratory, Lappeenranta University of Technology, Lappeenranta 53400, Finland
Abstract

This paper gives a complete definition of the TaaS, compares the difference between TaaS and traditional software testing model, then proposes the TaaS architecture level model on the basis of international software testing standards, explores the TaaS testing process and its application situations. It sums up the impact factors for user to select TaaS through empirical investigations, and explores the new software testing quality evaluation methods.

Keyword: Testing as a Service; Concept model; Service quality; Cloud computing
1 引言

在云计算环境下的软件测试中,“测试即服务”(Testing as a Service, TaaS)是新产生的一个重要概念[ 1],是软件测试行业一种新的服务模式。这种模式支持面向需求的软件测试服务市场,软件开发商可以按需获得软件测试服务。“测试即服务”改变了软件测试的过程和组织方式,带来了新的商业机会[ 2]。一些涉及云计算软件测试的公司已经开始提供相关服务:印度Wipro公司作为全球重要的外包企业和测试服务供应商,开通了TaaS门户网站,使用户能够在虚拟的市场中购买测试服务[ 3];IBM、惠普等公司提供了基于私有云的TaaS解决方案。国内的一些云计算企业也开始构建TaaS服务应用,如江苏太湖云计算信息技术股份有限公司(无锡云计算中心)依托IBM软件实验室的研发和实施团队,为软件园企业提供“测试云”(Test Cloud)定制方案,其TaaS服务包含“完整生命周期测试服务”(Full Lifecycle Testing Service)、“自动化测试服务”(Automated Test Service)、“测试度量服务”(Test Measurement Service)三大业务模块[ 4]。TaaS是我国推进SaaS、PaaS和IaaS等云服务模式创新发展深化的一个重要方向。

本文在总结现有研究成果的基础上,给出了TaaS概念的完整定义,提出了新的“测试即服务”架构模型和质量评价模型,并讨论了测试流程、影响因素等相关问题。

2 基本概念
2.1 定 义

目前,一般认为“测试即服务”是属于云计算环境下软件测试服务外包的一种业务模式,但是不同的IT公司和研究人员使用了不同的术语和定义来表示这种业务模式,其中,使用较为广泛的是“TaaS”和“STaaS”两种[ 3, 5]。本文除了引用原作者使用的名称外,都使用“测试即服务”、“Testing as a Service”的术语和“TaaS”的简写方式,并给出如下定义:

定义1:TaaS是指测试服务提供商利用云计算平台和基础设施给测试用户提供的第三方软件测试服务,包括功能测试、非功能测试(压力测试、性能测试、兼容性测试等)、测试维护和测试支持等测试服务。

TaaS中的第三方是指除了传统的软件开发商和最终用户之外的TaaS提供商,TaaS提供商提供部分或者全部云测试外包服务。虽然TaaS从字面来看没有强调“软件测试”的范畴,但现在已有的相关应用和研究讨论的都是软件测试问题,并不是广泛意义上的测试(例如硬件测试等)[ 2],本文也主要围绕软件测试来展开讨论。

2.2 主要TaaS类型

笔者提出一种新的基于测试业务模式的分类方法,把云计算软件测试分为4种类型,如图1所示:

图1 基于测试业务模式的云计算软件测试分类

定义2:云测试模式I(简称模式I)是指软件组织构建自己的私有云计算平台,利用私有云环境进行组织内部的软件测试业务,该测试业务由软件组织自行完成,是非外包的业务模式。

定义3:云测试模式II(简称模式II)是指软件组织利用公共云计算平台进行组织内部的软件测试业务,和模式I一样,该模式是非外包的云测试业务模式。在实施测试业务时,既可以使用通用云平台,也可以使用支持某些测试软件的专门云平台。

定义4:云测试模式III(简称模式III)是指第三方测试机构利用私有云计算平台进行软件测试外包服务。该模式是传统的软件测试外包服务和模式I的一种比较简单的组合,是对云计算新技术的利用,并没有服务模式的创新。

定义5:云测试模式IV(简称模式IV)是指软件组织将测试业务外包给第三方,第三方测试机构利用公共云计算平台进行软件测试外包服务。这种模式是传统的测试外包在云计算环境下的服务创新,是最主要的TaaS模式。

本文根据TaaS测试过程中的测试服务外包程度将TaaS分为完全模式和不完全模式。完全的TaaS模式是指软件开发商将所有的测试业务和基础测试平台都外包给TaaS服务提供商,模式IV即为完全的TaaS模式。不完全的TaaS模式是指软件开发商只是把部分测试业务或基础测试平台外包,例如仅仅使用TaaS服务提供商的云测试平台,由软件开发商自己完成功能测试等测试活动,或者TaaS服务提供商仅提供测试外包业务,使用软件开发商自己的私有云计算平台,模式II和模式III即为不完全的TaaS模式。模式I则不属于本文讨论的TaaS模式。

完全的TaaS模式包含软件开发商、TaaS提供商和最终用户三种业务角色,由TaaS提供商提供基础测试平台和测试外包服务。基础测试平台包含IaaS和PaaS两个部分,IaaS包含硬件设备、虚拟测试服务器和云资源管理工具等,PaaS包含(自动化)测试工具、项目管理工具和共享库等。测试外包服务包括启动阶段、计划阶段、实施阶段和验收阶段4个过程。不完全的TaaS模式则缺少部分要素和过程。

2.3 TaaS的优点和风险

TaaS模式以云计算平台为基础设施,支持面向需求的软件测试服务市场,允许软件组织将全部或部分测试工作外包给TaaS提供商。这些服务提供商可以承接一定规模的测试外包,利用其专业知识获取利益。随着众包的出现,TaaS也适合那些需要某些特殊领域专家知识的测试工作。在信息产业中系统和服务的共享程度越来越高,TaaS促进了新的商业服务模式的产生,这种模式可以支持更有效率的软件开发过程。TaaS模式和传统的软件测试模式有很多不同之处,有较多优点也有一定的风险。本文从7个方面总结了TaaS的主要优点和风险,如表1所示:

表1 TaaS的主要优点和风险

TaaS模式的特点决定了该模式特别适合开源软件项目的测试过程。开源软件开放源代码,需要大量用户参与测试,TaaS模式能够提供动态可扩展的云资源、基于互联网环境的测试项目管理、关键测试业务的外包和服务支持等。TaaS模式也能有效地进行众包业务,适合那些需要某些特殊领域专家知识或大量人工测试的测试工作。对于商业软件的测试活动,TaaS模式需要重点解决安全、测试数据管理和测试服务管理等问题。

3 TaaS架构模型
3.1 TaaS层次模型

传统的软件测试和软件质量保证已经存在多个国际标准,主要包括ISO/IEC 12207软件生命周期标准、ISO/IEC 15504软件过程评估标准、ISO/IEC 25010软件产品质量标准、IEEE 1012软件确认和软件验证标准。ISO/IEC 29119是正在制定中的软件测试标准,目前还没有给出云计算环境下的软件测试和TaaS的定义和结构[ 6]。Priyadarsini等[ 7]构造了TaaS的模型,但是该模型比较简单,对各个层次的划分也不太清楚。在参考多个软件测试和软件质量保证国际标准的基础上,给出TaaS层次模型,如图2所示:

图2 TaaS层次模型

可以看出,TaaS模型从上到下共分为4个层次,即软件开发商组织测试过程、TaaS提供商测试管理过程,云计算平台基础测试过程和共享库,其中TaaS提供商测试管理过程是TaaS架构的核心层次。软件开发商组织测试过程主要分为测试策略与需求确认、测试过程监控、测试结果审核三个环节;TaaS提供商测试管理过程分为TaaS测试计划制定、TaaS测试跟踪与控制、TaaS测试完成三个环节;云计算平台基础测试过程主要包括TaaS测试过程设计与规划、云计算平台测试环境配置、TaaS测试执行与维护、TaaS测试问题报告4个环节。

在测试过程中,软件开发商和TaaS提供商根据需要共享部分或全部的软件源代码、用户数据和测试文档,需要构造软件源代码库、用户数据库、测试文档库三个共享库。这个共享过程涉及到较多的管理问题和安全问题,本专题中《云计算环境下测试数据的界定与管理》和《公有云应用中测试的安全问题》(Security Issues on Testing of Public Cloud Applications)对相关问题进行了初步的探讨。

3.2 TaaS测试过程

TaaS模式将传统的自动化测试技术和云计算技术结合,能够涵盖软件生命周期中的完整测试过程,如单元测试、集成测试等。TaaS模式不同于传统的软件测试,能够充分利用云计算平台的基础设施和动态可扩展资源。TaaS模式也不同于简单的软件测试外包,在TaaS实施前必须充分分析云计算平台可能带来的收益和风险。TaaS测试过程可分为启动阶段、计划阶段、实施阶段、验收阶段4个阶段,其中计划阶段和实施阶段是核心阶段,每个阶段的详细任务如图3所示:

图3 TaaS测试过程

(1)启动阶段。在TaaS项目启动阶段,TaaS提供商需要提供有效的服务信息。软件开发商需要充分理解云计算软件测试技术,分析软件产品是否适合采用TaaS模式,制定测试策略,充分评估TaaS模式可能的风险,并选择合适的TaaS提供商。在双方签署协议后,进入TaaS测试计划阶段。

(2)计划阶段。TaaS提供商安排测试人员和测试时间,分析软件开发商提交的详细需求信息,确认是否可以在云计算平台和TaaS框架中进行服务,并和软件开发商一起确认测试需求,生成TaaS计划的初步说明。软件开发商按照自己的要求对TaaS计划进行调整和修改,反馈给TaaS提供商,多次循环直到产生最终的测试计划。

(3)实施阶段。TaaS提供商按照测试需求配置云计算平台测试环境,执行基础测试活动并跟踪软件缺陷。在软件开发商修改软件缺陷后,反复进行回归测试,直到达到TaaS测试度量要求。此过程中,软件开发商对TaaS过程进行监控,并及时修改程序缺陷。双方共享软件源代码库、用户数据库和测试文档库。

(4)验收阶段。在测试完成后,TaaS提供商生成测试报告,软件开发商对项目进行验收。

4 用户选择TaaS的影响因素

TaaS给软件测试带来了较大的收益,同时也存在一定的风险,用户在选择TaaS服务模式时,需要对这些收益和风险进行有效的分析。由于TaaS目前处于研究起步的阶段,相关知识仍然较少,在笔者与芬兰拉普兰塔理工大学的国际合作项目STX和MASTO中,采用扎根理论方法对相关问题进行了定性研究。为了了解IT企业对云测试和TaaS模式的看法,项目组对欧洲15家软件组织(包括软件开发商和测试服务提供商)进行了多轮访谈,其目的是为了分析云测试、TaaS模式和真实企业环境之间的关系,研究用户选择云测试和TaaS的影响因素。

在总共15家软件组织中,目前有7家软件组织处于对云计算和云测试技术的观望中,另外的8家对云计算技术有一定的应用,因此被挑选出来做深入分析。访谈结果发现,有些软件开发商考虑测试成本、测试效率等因素,愿意采用TaaS模式;而有些软件开发商则担心软件代码和测试数据泄露的问题,不愿意采用TaaS模式。以下是一些软件组织的典型观点。

(1)软件产品本身的特征决定是否适用TaaS模式。在调查中,曾经有4家软件组织拒绝参加访谈,其中一家公司的理由如下:

“我们的主要产品是PLC(Programmable Logic Controller)软件,整个系统中硬件设备是必须的。而且,我们的软硬件系统需要很多的专业知识,测试人员必须非常熟悉顾客业务流程、功能要求和操作环境。……我认为TaaS对我们是不适用的。”

(2)TaaS服务提供商必须保证云测试平台本身的安全。这是每个参加访谈的软件组织都会重点提及的关键问题,一段典型的访谈记录如下:

“软件测试提供商和测试用户的关系非常紧密,如果提供商出现了安全漏洞,黑客会获得测试用户系统的访问权利。我觉得这会有很大的风险,这个问题必须得到解决。”

(3)TaaS服务提供商必须保证测试数据的安全。和测试平台本身的安全一样,这也是各个软件组织重点关注的关键问题,两段典型的访谈记录如下:

“对于很多用户来说,如果需要将一些信息拿到他们的办公室之外,首先需要签订禁止公开协议NDAs(Non-Disclosure Agreements)并进行安全评估。……部分测试需求中需要用户提供一些信息和测试数据,但是他们却不能提供那些比较敏感的测试数据。……”

“我不知道用户会不会把他们的产品数据库提供给第三方测试人员,我不知道这种行为会不会让用户接受。”

(4)TaaS服务提供商需要提供合理的价格模型。合理透明的价格模型和方便快捷的支付方式能让用户有效估计测试成本,增加对用户的吸引力。两段典型的访谈记录如下:

“我认为最主要的障碍是价格模型、服务描述和服务质量相关指标。”

“如果价格模型是透明的,就很容易预测测试成本。”

(5)TaaS服务能够有效地降低测试成本。访谈的软件组织希望通过TaaS模式降低软件测试中花费的硬件成本和软件授权费用,并通过按需服务降低总体测试成本。一段典型的访谈记录如下:

“是的,我认为成本能够被降低,例如减少软件授权的费用,同时不需要为网站购买那些测试服务器了。这样就减少了管理工作,同样也能节省时间和金钱。”

(6)TaaS模式能够提高测试服务灵活性。测试用户希望能够在需要时启动和停止TaaS服务,这样他们只需要为使用的测试服务付费。一家软件组织做出了这样的预测:

“通常情况下TaaS比传统的软件开发模式提供了更多的灵活性,你可以现在开始,然后一个月后结束服务,从财务视角看,能更准确地控制费用。”

(7)TaaS模式更适合B/S架构应用程序。开发B/S应用特别是SaaS服务的软件组织更愿意采用TaaS模式。一段典型的访谈记录如下:

“对于客户进行的功能测试来说,他们计划在互联网上来测试他们的项目,这意味着他们很需要在线测试服务。……这种测试方式没有测试地点的限制。”

通过对调查数据的分析,结合相关文献和对TaaS模式的理解[ 8, 9],本文从软件特征、安全、效率、价格、设施和管理6个方面总结了用户选择TaaS的主要影响因素,如表2所示:

表2 用户选择TaaS的影响因素
5 质量评价

传统观念一般从技术角度出发,将软件测试仅仅看成软件质量保障的机制,更多地注重代码的检验和错误的发现。在TaaS模式下,软件开发者希望在软件测试质量得到保证的基础上,能够得到TaaS提供商更高质量的服务。因此,不仅需要从传统的软件质量保障的视角来关注TaaS模式的测试质量,还需要从新的服务视角考虑开发者、测试人员和最终用户之间的关系,TaaS模式质量评价应该更多地关注软件可用性、用户满意度、业务需要满足程度、系统一致性等问题。Yang等[ 10]对“软件测试即服务”的服务质量进行了一定的研究,认为“软件测试即服务”是软件测试人员对开发者和最终用户提供的两种服务的集合,将其定义为服务I和服务II,并利用SERVQUAL模型,构造了“软件测试即服务”质量评价模型TESTQUAL。该模型的构建有一定的创新,但是过于注重对服务质量的评价,缺乏软件质量的评价机制。本文从软件质量评价和服务质量评价两方面构造了新的TaaS质量评价模型,如图4所示:

图4 TaaS质量评价模型

本文构造的TaaS质量评价模型主要从服务质量的角度评价TaaS提供商对软件开发商提供的服务,从软件质量的角度评价TaaS提供商对最终用户提供的软件质量保障。服务质量的评价利用SERVQUAL模型,分为有形性、可靠性、响应性、保证性和移情性5个维度。软件质量的评价参考ISO/IEC 25010国际标准,分为功能性、安全性、互用性、可靠性、可用性、效率、可维护性和可移植性8个维度。在今后的研究中,将利用德尔菲法和扎根理论等研究方法,构造TaaS质量评价量表。

6 结语

目前,TaaS模式的研究和应用还处于起步阶段,云计算环境下TaaS模式测试平台的构建和应用、TaaS安全问题和数据管理问题、TaaS模式的价格模型和服务描述、测试服务质量评价等问题需要得到进一步的解决。在未来研究中,将更加深入系统地研究这些相关的问题,并期望能够有所突破。

参考文献
[1] Gao J, Bai X Y, Tsai W T. Cloud Testing- Issues, Challenges, Needs and Practice[J]. Software Engineering: An International Journal, 2011, 1(1): 9-23. [本文引用:1]
[2] Riungu L M, Taipale O, Smoland er K. Software Testing as an Online Service: Observations from Practice[C]. In: Proceedings of the 3rd International Conference on Software Testing, Verification and Validation. 2010: 418-423. [本文引用:2]
[3] Wipro. Testing as a Service[EB/OL]. [2012-01-05]. http://taas.wipro.com/. [本文引用:2]
[4] 陆建豪. TaaS应用—无锡云计算中心实践[J]. 程序员, 2009(12): 50-53.
(Lu Jianhao. TaaS Application——Cloud Computing Center Practice in Wuxi[J]. Programmer, 2009(12): 50-53. ) [本文引用:1]
[5] Sogeti. STaaS — Software Testing as a Service[EB/OL]. [2011-10-20]. http://www.sogeti.com/upload/Looking%20for%20Solutions/Documents/STaaS_leaflet%20v%20Feb%2009.pdf. [本文引用:1]
[6] ISO/IEC 29119 Software Testing[R/OL]. [ 2011-10-20]. ISO/IEC 29119 Software Testing[R/OL]. [2011-10-20]. http://softwaretestingstandard.org/. [本文引用:1]
[7] Priyadarsini K, Balasubramanian V, Karthik S. Cloud Testing as a Service[J]. International Journal of Advanced Engineering Sciences and Technologies, 2011, 6(2): 173-177. [本文引用:1]
[8] Cand ea G, Bucur S, Zamfir C. Automated Software Testing as a Service [C]. In: Proceedings of the 1st ACM Symposium on Cloud Computing. 2010: 155-160. [本文引用:1]
[9] King T M, Ganti A S. Migrating Autonomic Self-Testing to the Cloud[C]. In: Proceedings of the 3rd International Conference on Software Testing, Verification and Validation Workshops(ICSTW). 2010: 438-443. [本文引用:1]
[10] Yang Y, Onita C, Zhang X H, et al. TESTQUAL: Conceptualizing Software Testing as a Service[J]. e-Service Journal, 2010, 7(2): 46-65.
(作者E-mail: mycharli@163. com) [本文引用:1]