1、“云测试”简介
云测试是基于云计算的一种新型测试方案,云计算通过网络以按需、易扩展的方式向用户交付所需的资源,包括基础设施、应用平台、软件功能等服务。
云计算包含三种不同服务类型:SaaS、PaaS和IaaS。SaaS(Software as a Service,软件即服务)指的是通过浏览器,以服务形式提供给用户应用程序;PaaS (Platform as a Service,平台即服务)指的是以服务形式提供给开发人员应用程序开发及部署平台,让其利用此平台来开发、部署和管理SaaS应用程序。平台一般包含数据库、中间件及开发工具,所有都以服务形式通过互联网提供;IaaS (Infrastructure as a Service,基础架构即服务)指的是以服务形式提供服务器、存储和网络硬件。这类基础架构一般是利用网格计算架构建立虚拟化的环境,因此虚拟化、集群和动态配置软件也被涵盖在IaaS之中。
从云计算的服务类型来区分,基于云计算技术的云测试属于PaaS层。它是软件测试工具(包括功能测试工具、性能测试工具等)服务商提供一个测试平台,软件开发企业在其平台上进行相关自动化测试、不再在本地计算机上安装和使用这些工具。这种无须本地安装和配置测试环境,在远程测试平台上进行测试的方式就叫云测试。
2、“云测试”的必要性
在企业的信息化建设过程中,通常需要对软件全生命周期进行系统化的测试,确定系统过程度量和质量度量,保证企业信息系统有序可控的设计、开发和运行,并实现对软件全生命周期的质量控制和过程管理。同时许多应用系统的上线运行、升级改造、运行维护都需要进行大量且频繁的系统测试。在日常的测试工作中,出现因测试资源不足而推迟测试时间、环境工具配置复杂而延长测试周期的情况。测试任务重、成本高、时间紧、人员和软硬件资源缺乏成为当前需首要解决的问题。
针对当前存在的问题,利用云计算技术可以实现企业内多个团队的测试平台共享。在建设测试基础设施方面,云测试可实现巨大节省,将前期的高额投入分摊到多个测试用户上,无需担心大量的硬件、软件和人力资源成本。
云测试提供一整套测试环境,测试人员登录到该测试环境,就可以立即展开测试。这将软硬件安装、环境配置、环境维护的代价转移给云测试提供者,极大地减少了测试环境搭建时间,如机器和网络准备、操作系统安装、各种测试工具软件安装等,提高了测试效率;在云测试平台上进行性能测试,可以开启更多的客户端,获得更加强大的运算能力,能够尽早发现和应对意料之外的流量高峰,让测试软件获得巨大的性能改善。
云测试不但可以提供完整的测试环境,还可以提供许多附加服务,如提供测试用例、测试数据、自动测试服务等。相比提供虚拟化的测试环境,此类服务更专注于特定的业务领域,提供了稀缺的专业技能,附加值更高。
3、大型企业信息系统中的“云测试”应用
(1)选择云配置
国家标准与技术研究院(NIST)提出一套关于云的定义,该定义提出了4种不同的云配置:
公共云:公共云的云服务通常遍布整个因特网,能够服务于几乎不限数量的、拥有相同基本架构的客户。如Cloud Testing企业能提供多种浏览器的平台,一般的用户在本地用Selenium把自动化测试脚本编写好,然后上传到企业网站,就可以在其平台上运行Selenium脚本。
私有云:这种类型的云针对单个机构特别定制,例如一些金融机构或政府机构。私有云都会采用一些虚拟化操作系统和网络技术,因此能够降低使用服务器和网络设备的数量,或者使这些设备的管理更为明晰。
社区云:社区云专为一系列互不相连的、严格界定的机构而设立,如供应链或是多个政府机构的联合体等使用实例。
混合云:这种云表现为以上多种云配置的组合,数个云以某种方式整合在一起,为一些商业计划提供支持。有时用户可能需要用一套单独的证书访问多个云,有时数据可能需要在多个云之间流动,或者某个私有云的应用可能需要临时使用公共云的资源。
结合大多数企业信息系统建设的现状,从成本、应用、管理、安全性等多方面考虑。私有云在安全性、可扩展性上优于公共云,且易于管理,更加适合于企业的云配置。
(2)云测试内容
目前企业云测试的测试内容主要包括:
测试内容 | 描述 |
硬件环境 | 测试软件在不同应用场景下对硬件环境的要求 |
软件环境 | 测试软件对不同运行平台(如操作系统、数据库、浏览器等)的适应性 |
功能 | 进行软件功能的自动化测试 |
性能 | 进行软件性能和压力测试 |
安全性 | 进行漏洞扫描、访问控制等安全性测试 |
标准符合性 | 通过二次开发的方式测试软件协议、接口、数据等的标准符合性 |
随着企业业务和云计算技术的发展,为软件测试服务的各种应用亦将得到发展,云测试的测试内容也应即时得到整理和更新。
(3)构建云测试平台
依据云配置,构建适用于企业的云测试平台应分为以下四层:资源层、资源管理层、服务管理层、访问管理层。
底层是资源层,资源层是构建云测试平台的基础,它包括服务器、存储和网络设施等。资源层由资源管理层管理,负责高并发量的用户请求处理、大运算量计算处理、及云数据的存储等。
资源管理层监控和管理平台资源的使用情况,迅速反应,完成节点同步配置、负载均衡配置和资源监控等工作,确保资源能顺利分配给合适的用户,动态地部署、配置和回收资源。
服务管理层提供管理和服务,对云用户和用户选择的云测试服务进行管理。云测试服务部署在服务管理层,是平台的核心内容。
最上面一层是访问管理层,提供云用户请求服务的交互界面,根据用户请求并转发到相应的程序,是用户使用云测试平台的入口。
这四层包括硬件和软件,共同构成了云测试平台。企业可以将应用程序、测试工具部署在平台中,提高测试的效率。
(4)扩展云测试应用
除利用云测试平台进行大规模的用户模拟外,结合企业测试业务,还可开展大量的测试应用。
企业测试工具集
通过将企业现有的测试工具整合到云测试平台,可以解决工具资源不足、配置复杂等问题。若需使用企业未购买且不经常使用的测试工具,还可通过公共云进行一次性的付费测试,降低测试成本。
基于企业的测试知识库
通过测试案例、业务知识、测试技术的积累,形成具有对象性的系统化的测试知识库。此类服务更专注于企业的业务领域,可以快速提升测试人员的专业能力。
4、可能存在的问题
使用云测试平台进行测试在很大程度上可以节约企业的测试成本、提高人员的测试效率,但是云测试固有的模式决定其在以下几个方面存在着不足和缺陷,需要靠相应的技术手段来完善和规避。
安全问题(企业信息安全和网络安全)
在进行功能测试或性能测试的过程中,软件如何实现相关功能的逻辑信息和技术手段都会部分体现在测试脚本中,软件的漏洞及性能状况也将会体现在日志中,若没有足够的防护措施造成这些信息的泄漏则对企业产生不良影响。
同时云测试基于网络,对网络传输速率和稳定性有较高的要求,网络中断、网速过慢、病毒攻击等问题都会限制云测试的应用。
适应范围限制
与C/S结构软件相比,B/S应用的软件更加适用于云测试应用。C/S结构软件仍需在云测试平台中安装被测试软件,实现手段上较为复杂。
对于因保密等原因限制网络访问的软件,也不适应于云测试,需要搭建专有的测试环境进行软件测试。