1.“云测试”简介
云测试是基于云计算的一种新型测试方案,云计算通过网络以按需、易扩展的方式向用户交付所需的资源,包括基础设施、应用平台、软件功能等服务。
云计算包含三种不同服务类型:SaaS、PaaS和IaaS。SaaS(Software as a Service,软件即服务)指的是通过浏览器,以服务形式提供给用户应用程序;PaaS (Platform as a Service,平台即服务)指的是以服务形式提供给开发人员应用程序开发及部署平台,让其利用此平台来开发、部署和管理SaaS应用程序。平台一般包含数据库、中间件及开发工具,所有都以服务形式通过互联网提供;IaaS (Infrastructure as a Service,基础架构即服务)指的是以服务形式提供服务器、存储和网络硬件。这类基础架构一般是利用网格计算架构建立虚拟化的环境,因此虚拟化、集群和动态配置软件也被涵盖在IaaS之中。
从云计算的服务类型来区分,基于云计算技术的云测试属于PaaS层。它是软件测试工具(包括功能测试工具、性能测试工具等)服务商提供一个测试平台,软件开发企业在其平台上进行相关自动化测试、不再在本地计算机上安装和使用这些工具。这种无须本地安装和配置测试环境,在远程测试平台上进行测试的方式就叫云测试。
云测试是一种利用云优势的测试方法,主要用来降低测试所耗时间或者模拟应用的真实流量。此外,为了满足高流量web应用的扩展需求,测试需要具有扩展性。
Matt Heusser提到,过去非常流行测试实验室,占用了许多空间和各种机器。
实验室面积数百平方英尺,包含5-20台计算机。每一台计算机配置不同组合的系统软件。我们不得不安装、测试,然后可能为了下一次测试而重装机器。
如今情况大有不同。在类似VMware Fusion的工具的帮助下,我们可以在同一台机器上运行不同的软件配置。同样,在同一台物理设备上也可以运行若干服务器的实例。因此,创建测试环境就像输入一行命令那样简单。为了减少测试执行的时间,Matt建议使用分布式计算方法。
想象一下,把测试集合划分成十几个(或者一百个)测试,分配到15台计算机上,每台计算机执行一个测试,反馈结果,然后执行下一个。如果使用虚拟化工具,可以从云托管提供商以极低的价格租用处理器时间和空间。一次测试周期花费的时间只取决于最慢的那个测试。
凭借例如模式驱动自动化测试的方法,我们可以在很短时间内并发执行各种测试场景。
Jim Ensell认为云对敏捷开发产生了积极的影响。
据Jim介绍,开发人员和QA经理会经常希望利用云资源来多平台测试、并发运行单元测试和功能测试、有效地执行负载测试。这些测试特别适合公共云,因为它们会大规模使用云资源,并且随着时间推移有不同的需求变化。而且,云资源的定价模式也非常适合。
Devcentral提到如今Web应用的扩展性需要通过类似扩展的测试环境来测试。感谢云资源,公司可以避免耗费成本来搭建测试基础设施。
自动化的应用互联网扩展也可以采取同样的方式,以较低的成本用于互联网扩展测试解决方案。因此,你所需的只是一个能够部署在云中的负载生成客户端,一些云计算环境,和一种控制这些分布式客户端的方法,通过这种方式可以生成必要的扩展负载让应用和基础设施达到极限。
但是,云测试存在一些潜在问题。
比如,测试人员可能会像开发团队一样提问:“如果云出现故障了怎么办?”其他重要的问题还包括备份策略、修复策略和从测试数据丢失中恢复的机制。
尽管有一些问题,云提供了测试的强大平台。关键元素在于定义需求,并找到办法以较低的成本有效地利用巨大的资源。
2.“云测试”的必要性
在企业的信息化建设过程中,通常需要对软件全生命周期进行系统化的测试,确定系统过程度量和质量度量,保证企业信息系统有序可控的设计、开发和运行,并实现对软件全生命周期的质量控制和过程管理。同时许多应用系统的上线运行、升级改造、运行维护都需要进行大量且频繁的系统测试。在日常的测试工作中,出现因测试资源不足而推迟测试时间、环境工具配置复杂而延长测试周期的情况。测试任务重、成本高、时间紧、人员和软硬件资源缺乏成为当前需首要解决的问题。
针对当前存在的问题,利用云计算技术可以实现企业内多个团队的测试平台共享。在建设测试基础设施方面,云测试可实现巨大节省,将前期的高额投入分摊到多个测试用户上,无需担心大量的硬件、软件和人力资源成本。
云测试提供一整套测试环境,测试人员登录到该测试环境,就可以立即展开测试。这将软硬件安装、环境配置、环境维护的代价转移给云测试提供者,极大地减少了测试环境搭建时间,如机器和网络准备、操作系统安装、各种测试工具软件安装等,提高了测试效率;在云测试平台上进行性能测试,可以开启更多的客户端,获得更加强大的运算能力,能够尽早发现和应对意料之外的流量高峰,让测试软件获得巨大的性能改善。
云测试不但可以提供完整的测试环境,还可以提供许多附加服务,如提供测试用例、测试数据、自动测试服务等。相比提供虚拟化的测试环境,此类服务更专注于特定的业务领域,提供了稀缺的专业技能,附加值更高。
3.大型企业信息系统中的“云测试”应用
(1)选择云配置
国家标准与技术研究院(NIST)提出一套关于云的定义,该定义提出了4种不同的云配置:
公共云:公共云的云服务通常遍布整个因特网,能够服务于几乎不限数量的、拥有相同基本架构的客户。如Cloud Testing企业能提供多种浏览器的平台,一般的用户在本地用Selenium把自动化测试脚本编写好,然后上传到企业网站,就可以在其平台上运行Selenium脚本。
私有云:这种类型的云针对单个机构特别定制,例如一些金融机构或政府机构。私有云都会采用一些虚拟化操作系统和网络技术,因此能够降低使用服务器和网络设备的数量,或者使这些设备的管理更为明晰。
社区云:社区云专为一系列互不相连的、严格界定的机构而设立,如供应链或是多个政府机构的联合体等使用实例。