📜  软件测试——云测试

📅  最后修改于: 2022-05-13 01:56:17.840000             🧑  作者: Mango

软件测试——云测试

云测试是一种软件测试,其中使用云计算服务对软件应用程序进行测试。云测试旨在使用云计算服务根据功能和非功能需求测试软件,以确保更快的可用性、可扩展性和灵活性,从而节省软件测试的时间和成本。在这里,我们将讨论以下几点:

  1. 什么是云计算?
  2. 云计算模型
  3. 云的类型
  4. 云测试的形式
  5. 云测试的类型
  6. 云测试环境
  7. 在云中执行的测试
  8. 云测试工具
  9. 云测试与传统测试
  10. 云测试的好处
  11. 云测试中的挑战

让我们开始详细讨论这些主题。

什么是云计算?

云计算是通过互联网访问和存储数据和其他计算服务的新时代技术。它不会在您的个人计算机上存储数据。它提供服务器、数据存储、网络、数据库等计算机服务的按需可用性。云计算的主要目的是让许多用户随时访问数据中心。

节省成本的潜力是许多组织采用云服务的主要原因。云计算提供了根据您的要求使用服务的自由,并且只需为您正在使用的服务付费。以下是云计算服务的一些示例:AWS、Azure、Google 等。

云计算

云计算模型

云服务有 3 种模型:

  1. Saas:软件即服务(或 SaaS)是一种云模型,它通过互联网将应用程序作为服务交付。用户无需在设备中安装和维护软件,只需通过互联网访问即可,无需自行管理复杂的软硬件。
    它也被称为基于 Web 的软件、托管软件。它在 SaaS 服务提供商服务器上运行并管理应用程序访问,包括安全性、可用性和性能。
  2. Paas:平台即服务 (PaaS) 是一种云模型,第三方供应商通过互联网向用户提供硬件和软件资源。这些工具是应用程序开发所必需的。 PaaS 服务提供商在其基础架构上托管硬件和软件,使开发人员不必安装内部硬件和软件来开发或运行新应用程序。
  3. Iaas:基础设施即服务 (IaaS) 是一种通过 Internet 提供虚拟计算资源的云模型。用户可以使用 Iaas 获得具有所需配置的全新虚拟系统,而无需花费额外成本。

云的类型

云分为三种:

  1. 公共云:公共云提供按需计算服务和基础设施,由第三方供应商管理,并使用公共互联网与多个用户组织共享。
  2. 私有云:私有云提供云计算,其中基础设施和软件等服务专用于单个用户组织。
  3. 混合云:混合云是一种云解决方案,它结合了私有云和公共云服务,以及支持每个不同服务之间通信的专有软件。混合云通过根据需求和成本的波动在云解决方案之间转移工作负载,为企业提供更大的灵活性。

云测试的形式

执行了四种形式的云测试:

  1. 全云测试:这里将云作为一个整体,根据其特性进行测试。
  2. 云内测试:这是在云内部通过测试其每个内部功能进行的测试。
  3. 跨云测试:在这种情况下,测试是根据不同类型的云(如公共云、私有云和混合云)的规范进行的。
  4. 云中的 SaaS 测试:在此,功能和非功能测试是根据需求进行的。

云测试的类型

云测试分为三种类型:

  1. 基于云的基于云的应用程序测试:这些类型的测试有助于确定有关不同类型云的基于云的应用程序的质量。
  2. 云上基于在线的应用程序测试:在线应用程序主管/供应商执行这些测试以检查其基于云的服务的功能和性能。此测试是在功能测试的帮助下进行的。在线应用程序与遗留系统连接,并测试应用程序与遗留系统之间的连接质量。
  3. SaaS 或面向云的测试:这些测试由 SaaS 或云供应商执行。这些测试的目的是评估 SaaS 或云程序中提供的单个服务功能的质量。

云测试环境

有三种主要的云测试环境:

  1. 公共或私有环境:部署在这些云环境中的应用程序在质量方面经过测试和验证。
  2. 混合环境:在此云环境中部署的应用程序经过质量测试和验证。
  3. 基于云的环境:部署在 Saas 和 Paas 模型上的应用程序在质量方面进行了测试和验证。

在云中执行的测试

云中的测试不应该仅仅确保满足功能需求,还需要强调非功能测试。让我们探索执行的各种类型的测试。

1. 功能测试:应执行功能测试以确保产品提供用户付费的服务。功能测试确保满足业务需求。

  • 系统验证测试:此测试可确保各种模块彼此正常工作。
  • 互操作性测试任何应用程序都必须具有灵活性,不仅可以在不同平台上毫无问题地工作,而且在从一个云基础架构迁移到另一个云基础架构时,它应该能够无缝地协同工作。
  • 验收测试这里将基于云的解决方案移交给用户,以确保它符合他们的期望。

2. 非功能测试:非功能测试主要专注于基于 Web 应用程序的测试,以确保它们满足所需的需求。以下是下面提到的几种类型的非功能测试-

  • 性能测试在此测试中,必须验证对任何用户请求的响应时间,以确保即使有大量请求需要满足,一切都完好无损。网络延迟也是评估性能的关键因素之一。此外,一旦负载减少,就必须通过停用资源来完成工作负载平衡。
  • 压力测试此测试有助于确定云应用函数在峰值工作负载下运行的能力,同时保持有效和稳定。
  • 负载测试此测试有助于衡量云应用程序对用户流量负载的响应。
  • 延迟测试:在此测试中,针对用户请求,应用程序中的操作和响应之间的延迟时间。
  • 可用性测试:此测试确定云必须全天候可用。由于可能发生任何关键任务活动,管理员(即云供应商)应确保不会对客户产生不利影响。
  • 多租户测试:在此云测试中,多个用户使用云产品作为演示。当多个用户在一个实例中工作时,执行测试以确认数据有足够的安全性和访问控制。
  • 可扩展性测试执行此测试是为了确保所提供的产品可以根据客户的需要进行扩展或缩减。
  • 浏览器性能测试:在此测试基于云的应用程序的性能,即部署在云上的应用程序在不同的网络浏览器上进行测试。
  • 安全测试由于云随时提供一切,因此必须保护所有用户敏感数据并且没有未经授权的访问以维护用户的隐私,这一点非常重要。
  • 灾难恢复测试在可用性测试中,云必须随时可用,如果发生任何类型的故障,如网络中断、高负载导致的故障、系统故障等。此测试可确保故障的速度有多快捕获以及在此期间是否发生任何数据丢失。

云中的功能测试工具

有许多工具用于测试云中或云中的性能、负载、压力测试。下面提到了其中一些测试工具:

  1. AppPerfect: AppPerfect 是一家位于加利福尼亚州桑尼维尔的软件开发公司。它销售支持和开发一组测试和监控产品,用于分析、测试和监控基于 Web 和 Windows 的应用程序。
  2. Jmeter: Apache JMeter 是一个开源的、基于 Java 的应用程序软件,旨在加载测试工具来分析和监控服务和 Web 应用程序的性能。
  3. SOASTA CloudTest: SOASTA 云测试是一款跨平台的测试管理工具,设计人性化。
  4. LoadStorm:它是一个管理和监控整个云基础设施性能的工具,并生成用于性能分析的实时图表。

云安全测试工具

以下是云中安全测试的工具:

  1. Nessus: Nessus 是一种远程安全扫描工具,它会扫描系统并在发现任何漏洞时发出警报,黑客可以利用这些漏洞对敏感数据进行未经授权的访问。
  2. Wireshark: Wireshark 是一种开源数据包分析器,用于网络故障排除和监控、软件和通信协议开发。
  3. Nmap: Nmap 是一种网络扫描器,用于通过发送数据包和分析响应来发现网络上的主机和服务。

云测试的好处

以下是云测试的一些好处:

  1. 所需测试环境的可用性:在云测试中,测试团队可以轻松复制客户的环境以对云进行有效测试,而无需投资额外的硬件和软件资源进行测试。可以从任何具有网络连接的设备访问这些资源。
  2. 更便宜:云测试比传统测试方法更具成本效益,因为不需要投资额外的硬件和软件资源。客户以及测试团队只需为他们使用的东西付费。
  3. 更快的测试:云测试比传统的测试方法更快,因为大多数管理任务(如用于测试的物理基础设施管理)都被删除了。
  4. 可扩展性:云计算资源可根据测试需求随时增减。
  5. 定制:云测试可以根据用户的多样性和用户环境,根据使用量、成本和时间进行定制。
  6. 灾难恢复:灾难恢复很容易,因为数据备份是在云供应商以及用户端进行的。

云测试中的挑战

以下是云测试面临的一些挑战:

  1. 隐私和数据安全:随着云计算向所有用户提供按需服务,数据隐私和安全成为首要问题。云应用程序是多租户的,因此未经授权的数据访问的风险仍未解决。
  2. 环境配置:不同的应用程序需要特定的基础设施,如服务器、存储等进行部署和测试,云测试的环境管理变得困难并导致问题。
  3. 多云模型的使用:由于有多种云模型,如公共、私有和混合,根据客户要求部署应用程序。管理它们变得具有挑战性,这可能导致复杂性、安全性和同步问题。
  4. 数据迁移:将数据从一个云服务提供商迁移到另一个云服务提供商成为一项具有挑战性的任务,因为它可能具有不同的数据库架构,可能需要大量时间来理解。
  5. 云端升级:云测试的最大挑战是在云端进行升级,并确保它不会影响现有的用户和数据。云提供商会在很短的时间内通知现有客户进行升级。
  6. 测试所有组件:在执行云测试时,需要测试与应用程序相关的所有组件,例如服务器、存储、网络,并在所有层中验证它们。

云测试与传统测试

 

Parameters                                          

Cloud Testing

Conventional Testing

Definition

Cloud Testing is one type of software testing in which the software applications are tested by using cloud computing services.

Cloud testing intends to test the software based on functional and non-functional requirements using cloud computing services that ensures faster availability, scalability, and flexibility that saves time and cost for software testing.

Conventional testing is a type of testing in which software is tested based on pre-defined testing standards as per the quality management system to maintain standards.
Test EnvironmentCloud testing provides test environment-based application as well as on user and usage of application i.e. test environment can be customized as per need. It provides a distributed test environment by leveraging the recourses.Conventional testing has a pre-defined environment for testing any application. This testing was performed in a test lab with limited resources.
Cost of TestingThe cost of testing in cloud testing is less compared to conventional testing as there is no need to maintain physical infrastructure for testing. Users and customers only pay what they are using. The cost of testing in conventional is higher as we need to maintain physical infrastructures and software as well required for testing.
Test casesTesting of application is done in all the aspects of usage by the user. End-to-End applications is tested with real-time data also.Testing of applications is done based on fixed test cases.
Testing execution TimeCloud testing is done online in the cloud with a customized environment that leads to faster test execution.Conventional testing is done offline in a pre-configured test lab that takes more time.