在制定云测试策略之前,确定计划测试的内容非常重要。云测试可能意味着不止一件事。
云计算支持大量新软件开发,交付和支持方法。因此,云测试策略可能属于以下描述之一,每种描述都有不同的方法:
测试云资源; 测试云原生软件;和 通过基于云的工具测试软件。 在本文中,我们将向您介绍每种方法。首先,让我们开始解释云计算。
什么是云? 云计算是一种服务模型,其中组织根据需要消耗计算资源。这些资源的交付是通过Internet或通过内部网络进行的。云具有许多优势,包括较低的成本和广泛的可扩展性。借助云,组织可以消除前期基础架构成本,而只需为使用的资源付费。可以快速构建云环境。
云架构基于即服务交付模型,其中组织付费使用按需使用计算资产,而不是自己购买和维护这些资产。
服务云有三种主要类型:
基础架构即服务(IaaS)。硬件资源(包括服务器,网络和存储设备)由第三方提供商管理。用户共享这些资源,但不知道其他租户。尽管用户无法更改基础架构本身,但IaaS提供商也提供管理服务。 平台即服务(PaaS)。云提供商管理完整的运行时环境,而不管理应用程序和数据。组织使用PaaS来建立支持应用程序开发和交付的环境,而无需管理基础资源。 软件即服务(SaaS)。SaaS是云提供商托管,运行和管理的软件。组织购买许可证以使用基于SaaS的产品,并且可能能够进行自定义,但不支持该软件。 公共云为所有人提供服务。客户要求云服务或资源,并按使用量付费。AWS,Microsoft Azure和Google Cloud是公共云提供商,并且各自提供一系列服务。
私有云运行在单个公司拥有的数据中心中,或者与其他租户隔离。它仅由有权访问组织防火墙的用户共享。
混合云是公共云和私有云的混合。混合云使组织能够根据需要使用公共云,同时维护组织内的某些服务。
开发,测试和生产代码,或这三者的某种组合,可能存在于云中。云测试策略通常是指评估通过服务交付模型提供的基础架构,平台和软件包。相反,云服务使软件质量检查团队能够更快,更有效地执行应用程序测试。
测试云资源 云测试策略可能是指对支持组织业务工作的云体系结构和资源的评估。因此,此策略涉及测试云提供商的IaaS或PaaS产品,以确保其按预期工作。
质量检查专业人员可以将功能测试应用于基于云的软件。选项包括验收,系统验证和互操作性测试。但是,为了确保应用程序可以在云上运行,请执行非功能测试。测试人员,操作人员,数据科学家和云架构师等IT专业人员都承担着非功能性云测试的责任。一些常见的IaaS和PaaS非功能测试包括可伸缩性测试,灾难恢复测试和数据测试。
云可扩展性测试。可伸缩性是系统使用更多资源来处理增加的工作负载并随着需求下降而减少使用资源的能力。与其他应用程序托管方法相比,可伸缩性是云计算的显着优势。虚拟化使系统能够增加大小和功能,从其他未使用的基础架构中获取更多容量。云资源可以在几分钟甚至几秒钟内扩展。因此,可伸缩性是组织为应用程序选择云策略的主要原因之一。
可伸缩性测试是一种非功能性测试,可随着用户数量的增加来衡量应用程序或网络的性能。组织测试云的可伸缩性,以确保可以成功满足突然对更多云资源的需求。
在云计算中,可通过三种方式实现可伸缩性:
垂直增加现有服务器的电源; 横向地,增加分配给实例的服务器数量;要么 对角线,这两种方法的组合。 测试水平和对角线缩放比例需要全面而复杂的测试设计。无论采用哪种架构,测试都应在开发初期就开始,并应在系统成熟和负载增加时经常执行。这些测试有助于尽早发现并解决潜在的可伸缩性问题。根据应用程序及其体系结构自定义可伸缩性测试设计。
在任何可伸缩性测试方法中,都有几个要衡量的标准,包括:
response time
failure rate
throughput
memory
CPU usage
network usage
确保测试的负载远高于实际预期的最高需求,并随着负载的增加监视性能水平。
灾难恢复测试。IaaS和PaaS的优势之一是能够在灾难发生时启动更多环境来托管应用程序。云灾难恢复可帮助组织从因电源故障,不道德的黑客攻击,天气紧急情况或其他问题而造成的中断或中断中恢复。所有组织都应制定灾难恢复计划,然后执行灾难恢复测试以确保其有效性。
灾难恢复测试方法取决于组织的云策略。公共云客户应与提供商合作制定和测试灾难恢复计划。大多数供应商都可以轻松备份云工作负载并将其分散到其他区域的资源上。公共云提供商可能会提供灾难恢复服务。AWS,Microsoft和Google都提供云产品以促进数据恢复。
混合或私有云采用者可能会选择灾难恢复作为服务提供者,或者创建自己的基础架构环境和计划。在云中,新环境可以通过虚拟化启动,因此它们不需要组织投资重复的基础架构,除非您需要创建新的备份位置。测试所有数据恢复计划,不仅要确保其技术上可行,而且还要确保所涉及的团队成员正确执行这些计划。
有多种测试灾难恢复的方法。纸质评论可以验证计划,但不提供实际操作经验。相反,请执行并行测试,在该测试中,新环境与生产一起运行。这种并行测试方法阐明了计划或应用程序设计中的任何缺陷,并且还为团队提供了实用的学习经验。仅在需要时才设置和支付云资源的能力使该测试方法既实用又高效。
云数据测试。数据在云应用程序中提出了一些独特的测试挑战。测试人员必须了解数据如何在云中迁移,并计划评估静态和动态迁移的数据。
数据隐私和安全性是云测试策略的关键组成部分,因为所有数据(包括非公共信息)都通过云传输并存储在云中。质量保证专业人员必须在测试框架中验证传输通道以及云租户的安全性。
测试云原生软件 作为另一种云测试策略,质量检查专业人员可以评估驻留在云中的软件。SaaS对不同的公司意味着不同的事情。一些SaaS产品是为大量客户设计的,例如Salesforce,SAP和Workday。其他SaaS产品面向内部受众,这需要不同的策略。或者,质量保证专业人员可以从客户的角度测试SaaS供应商的产品,这是另一种方法。在设计云测试计划之前,请考虑每种方法的独特挑战。
SaaS产品的非功能测试包括许多不同的组件。质量检查专业人员必须进行性能,负载和压力测试。他们还必须评估可用性,可靠性和可伸缩性。安全测试可能是最复杂的非功能测试,因为多租户需要对角色和权限进行深入测试。多租户提供了SaaS架构的基础,在该架构中,将相同的代码部署到多个并发用户。因此,测试必须确保一个客户的产品与其他租户隔离运行,因为他们都运行相同的代码。连接性和API测试也是SaaS测试的重要元素。
许多SaaS应用程序具有跨多种类型的云的组件,包括公共云,私有云和混合云。在这种情况下,测试将在混合云基础架构上进行。当存在许多旧系统并且需要强大的端到端测试时,这种测试方法非常有用。
但是测试不仅仅涉及技术功能,因为云带来了更多要考虑的业务案例。与大多数测试一样,挑战始于要求。SaaS供应商可以创建产品来满足许多客户的需求。采购组织必须进行差距分析,以确定如何使其业务流程适合该软件。此过程对必须将差异分析应用于质量检查的业务分析人员和测试人员均构成挑战。SaaS应用程序的核心产品代码对于购买它的任何人都是相同的,因此云测试策略从功能测试更改为业务流程测试。
SaaS提供者或购买者内部的开发团队会定制和配置产品以满足需求,测试人员必须适应。定制是指对核心产品进行的代码更改,而配置是在产品内选择的选项。质量检查工程师必须同时测试这两者,但是对所有自定义项进行回归测试尤为重要。大多数SaaS产品都需要与多个下游旧系统集成。完整的端到端系统测试是云测试策略的关键组成部分。
最后,SaaS供应商控制补丁和升级的频率以及组织必须测试的时间范围。SaaS测试策略必须考虑短迭代。敏捷方法通常在这种环境下效果最佳。
尽管这是一项复杂的工作,但SaaS测试具有其优势。测试人员不再需要在其云测试计划中包括多版本测试或向后兼容性,并且由于SaaS供应商管理软件托管,因此无需测试基础架构。
通过云工具进行测试 云测试策略也可能涉及使用云资源或工具来增强质量保证策略。云环境对于测试基于Web的软件很有用。该组织将应用程序上载到云环境中,在其中可以执行大型和真实的模拟。
使用基于云的工具进行测试具有许多优势,尤其是在环境管理领域。由于内部基础架构的可用性有限,测试人员可能难以获得所需的QA环境。多个测试团队通常共享环境,以避免浪费太多的测试资源。结果,非功能测试可能会在与功能测试相同的环境中发生。共享环境会延迟测试团队等待项目的时间。此外,测试环境通常不会反映生产环境,从而导致漏掉错误,尤其是在负载测试和性能测试中。
通过基于云的设置进行测试可以纠正这些测试环境管理问题。提供测试环境非常容易。随时可用,消除了在测试团队之间共享环境的需要。云测试环境可以扩展以反映生产,以进行更准确的非功能测试。质量保证环境及其供应归供应商所有,从而确保了标准化。最后,即服务模式降低了成本。
云资源和工具可能会带来其他开发和质量保证的可能性,而这些可能是在本地无法获得的。尽管限制因组织而异,但某些可能性可能包括针对开发人员或测试存储库以及资源的分布式版本控制,从而实现更全面的测试自动化。