端到端测试

本文介绍了端到端测试的概念,包括其在验证复杂应用程序功能和性能中的作用,以及如何通过水平和垂直测试方法进行。文章详细阐述了实施端到端测试的步骤,从确定关键测试、选择测试框架到与SDLC集成,强调了原型环境创建的重要性。
摘要由CSDN通过智能技术生成

什么是端到端测试?

端到端测试是一种用于在类似生产产品的环境和数据下验证应用程序流的功能和性能的方法。

这不仅包括单个软件模块,还包括应用程序所依赖的内部和外部 API、网络和数据库基础设施 - 因此,名称为“端到端”。

目标是模拟真实世界的用户场景,以确保应用程序在整体上按预期运行,而不仅仅是单个组件(由其他类型的功能测试涵盖)或与第三方或真实最终用户场景隔离的系统(系统测试涵盖了这一点)。

端到端测试的好处

由于复杂的现代应用程序建立在内部和外部子系统之上,现代软件产品需要进行整体验证,而不仅仅是部分验证;虽然子系统可能单独通过测试,但它们作为完整应用程序交互的方式可能会出现故障和错误。

进行端到端测试有助于确保您的软件逐层做好生产准备。

以下是它对您成功至关重要的几个原因:

端到端测试确认您的应用程序的运行状况

端到端测试可以在多个系统上从前到后、从整体上验证您的软件功能。同时,它提供了跨不同最终用户环境的应用程序性能的视角,并确保最终用户体验按预期工作。

端到端测试扩大了测试覆盖范围

通过考虑服务和子系统之间的交互,端到端测试还扩大了测试覆盖范围,超出了通常在更孤立的测试实践中考虑的范围,以进一步确保质量并降低风险。

E2E 测试发现更多错误并提高应用程序生产力

在现代敏捷或 DevOps 开发环境中执行的端到端测试通常在每次迭代或每隔几次迭代进行一次,这意味着可以更快地捕获和纠正错误。这减少了错误被深埋在产品中的机会,使它们变得难以发现和修复。

端到端测试减少工作量和成本

通过每次迭代的全面测试以及已发布产品中错误和故障的减少,端到端测试减少了重复测试或重做工作的需要,最终降低了与测试相关的成本和时间。

端到端测试如何工作

由于端到端测试涵盖整个应用程序,因此正确规划和迭代部署新的端到端测试程序非常重要。

如果子系统出现故障,未能进行端到端测试可能会导致应用程序崩溃。

例如,假设您购买了 Evernote 这样的软件产品。从您作为最终用户的角度来看,该过程可能如下所示:

  • 访问 Evernote 网站。
  • 导航至“比较计划”页面,了解成本、功能和规格。
  • 选择高级计划并点击“免费试用”。
  • 继续创建用户名和密码,然后单击“继续”。
  • 输入您的账单信息,然后单击“开始免费试用”。
  • 登陆 Evernote 的网络应用程序主页。
  • 从主页导航到“比较计划”页面。
  • 单击高级计划上的“免费试用”按钮。
  • 填写并提交用户名和密码字段以创建帐户。
  • 输入并提交账单信息。

然后,您可能还会收到一封确认您注册的电子邮件,然后是一封包含有关如何使用 Evernote 的资源的后续电子邮件。

从开始到结束,您希望此过程能够从网站加载到能够导航注册过程并接收电子邮件无缝流动。

作为最终用户,您不会考虑每个步骤所依赖的后端系统,但对于 Evernote 的质量保证和控制团队来说,仅此用户流程中的步骤数量就可能使测试其平台变得复杂且耗时-消耗。包括核心应用程序之外的其他服务,例如支付处理器和电子邮件系统,测试完整的工作流程可能是一场噩梦。

验证保持网站正常运行和响应所需的网络基础设施是否正常工作、用户界面的外观和功能是否符合预期、您共享的私人财务信息在传输过程中和静态时都经过加密、电子邮件是否正确触发和发送……

移动部件的数量可能相当巨大,并带来了一系列故障点和可能性。

端到端测试不仅确保像这样的复杂工作流程从用户的角度跨各种界面运行,而且还确保 Evernote 的应用程序、网络设备以及(可能是第三方)电子邮件和应用程序之间的信息流。信用卡处理平台也按预期工作。

端到端测试流程

由于其范围广泛,端到端测试可以由许多复杂且独特的部分组成,但基本过程如下:

  1. 需求规划:分析您现有的系统和子系统,并定义最低和建议的软件和硬件需求。
  2. E2E系统设计:概述端到端测试系统的组件、工具、工作流程、方法和指标,以及所有相关团队成员的个人角色和职责。
  3. 测试组件设计:为每个子系统设计单独的测试用例。
  4. 测试基础设施开发:编写测试用例并设置测试环境所需的硬件和软件基础设施。
  5. 测试执行和测量:测试您的系统,记录所有输入和输出数据,并根据您的目标指标进行分析,以识别缺陷和故障。

端到端测试方法

端到端测试主要通过两种方式进行:水平测试和垂直测试。

横向端到端测试

横向端到端测试主要从用户的角度进行操作,从头到尾逐步执行应用程序业务逻辑的每个阶段,以确保每个相互关联的流程正确执行。

在我们的 Evernote 示例中,他们的应用程序不仅需要从 UI 角度工作,还需要与其支付处理器和电子邮件系统以及网络和数据库基础设施正确集成。

由于水平测试发生在发布周期结束时(当系统和子系统的更改完成时),因此测试团队在执行之前完全设置测试环境至关重要。

垂直端到端测试

垂直端到端测试涉及从上到下测试应用程序架构的每一层,这意味着每个子系统都是独立测试的,然后通过网络基础设施、API 集成和 UI 层继续测试。

因此,在我们的 Evernote 示例中,他们的核心系统将通过单元测试进行精细测试,然后是支付处理系统,然后是电子邮件系统,然后再继续测试网络、API 集成,最后是 UI。

由于其关注点细化,垂直测试通常使用行为驱动开发、测试驱动开发或持续测试等策略更多地集成到开发周期中。

虽然水平测试可以由相对独立的团队设置和执行,但垂直测试与现有 SDLC 的紧密集成意味着每个主要利益相关者(开发人员、测试人员、产品所有者)都需要支持并协助测试过程。

优点

两种类型的端到端测试(水平和垂直)都可以帮助您实现相同的目标(确保整个应用程序高效且有效地运行),但每种方法都有独特的优点和缺点,使它们更适合与某些团队一起实施。

水平测试的好处:

  • 专注于最终用户的角度,以确保最终应用程序按预期工作。
  • 确保覆盖业务逻辑需求。
  • 可独立设置和执行
  • 通过集中测试提高核心代码的覆盖率。
  • 更快的测试执行和缺陷解决
  • 可以分阶段实施(不需要首先设置完整的应用程序测试环境)。

水平测试的缺点:

  • 减慢测试执行和缺陷修复的时间(必须等到所有版本更改完成)
  • 需要所有主要 SDLC 利益相关者的支持和协调

垂直测试的好处:

  • 通过集中测试提高核心代码的覆盖率。
  • 更快的测试执行和缺陷解决
  • 可以分阶段实施(不需要首先设置完整的应用程序测试环境)。

垂直测试的缺点:

  • 需要所有主要 SDLC 利益相关者的支持和协调

创建端到端测试系统

E2e测试系统分为三个主要阶段——用户功能、测试条件和测试用例。

1. 构建用户函数

第一步是构建模拟真实用户行为和应用程序使用的函数。

因此,在 Evernote 示例中,我们需要为以下函数建模:

构建用户功能涉及:

  1. 列出应用程序的功能及其在核心系统和互连子系统中的关系。
  2. 列出每个函数的操作以及输入和输出数据。
  3. 确定函数是独立的还是重复的(以便一个编码函数可以在测试用例中重复使用)。
2. 构建测试条件

一旦映射和构建了用户功能,就可以创建条件来评估测试是通过还是失败。

这包括为每个用户功能设置有关时序、数据和顺序的参数。

在我们的 Evernote 示例中,条件可能包括:

  • 单击主页上的导航项后 x 秒内完成“比较计划”页面的加载。
  • 单击“比较计划”页面上的免费试用按钮后 x 秒内完成“创建帐户”页面的加载。
  • 检查用户名是否已被使用。
  • 检查提交的密码的强度。
  • 检查付款信息格式是否正确
  • 检查付款方式是否有效/有效
  • 检查提交付款信息后是否触发自动电子邮件回复
  • 检查触发后是否自动发送邮件。
3. 构建测试用例

构建了用户函数并设置了条件后,就可以构建测试用例,根据特定的工作流程场景执行函数并根据测试条件测量性能。

应构建多个测试用例来测试每个用户场景以及每个单独的条件。

端到端测试中的衡量指标

与任何测试过程一样,重要的是要确保团队的时间和精力不会因为跟踪一些成功的关键指标而浪费。

对于端到端测试,这些包括:

  • 测试用例准备状态:将已准备和正在准备的测试用例数量与计划用例总数进行比较。
  • 每周测试进度:衡量每周完成的测试数量占计划测试总数的百分比,以及通过和失败的测试数量。
  • 缺陷详细信息和状态:跟踪每周打开和关闭的缺陷的百分比,以及基于严重性和优先级的缺陷分布。
  • 测试环境可用性:监控测试环境中分配给运行测试的时间以及实际使用的时间。

如何实施端到端测试

现在您已经更好地了解了端到端测试是什么、它的好处以及它的工作原理,也许您已经准备好开始实施您自己的系统了?

但你如何在你的组织中做到这一点呢?您如何从“这是个好主意”到实际执行测试和修复缺陷?

一旦您致力于端到端测试,以下是我们建议的基本实施流程:

1. 确定最重要的测试

特别是对于大型企业应用程序,端到端测试的范围可能会变得巨大。我们建议不要尝试测试每个软件产品中的每个可能的测试用例,而是从一个最重要的应用程序(对您的业务最关键或最容易出现缺陷)开始,并概述一些要在其中进行测试的最重要的用例该应用程序可以尽早最大化投资回报率。

2. 选择测试框架

定义最重要的测试后,评估各种端到端测试框架,找到最适合您业务的框架。与大多数业务解决方案一样,主要标准是功能集(它们是否满足您的需求)、成本(它们是否符合您的预算?)和易于实施(您能否快速设置它们?)。

一些更流行的端到端测试框架包括:

  • 量角器
  • 夜间值班
  • 卡斯珀JS
  • 测试咖啡馆

3. 将 E2E 测试与现有的 SDLC 集成

确定了基本测试并选择了端到端测试框架后,下一步是确定如何将端到端测试集成到现有的软件开发生命周期中。

这里的主要选项是:

  1. 每次代码推送时都运行 E2E 测试。
  2. 定期运行这些测试(可能每晚、每周或每月)。

垂直端到端测试非常适合“每次推送”测试周期,因为它更容易将其精细测试集成到您的开发过程中,而无需在开发过程结束时增加大量测试开销,但如果您的组织有资源的话水平测试也可以发挥作用。

定期运行 e2e 测试是一种更简单的策略,因为它不需要太多测试,并且可以更快地交付软件。然而,如果您现有的流程存在质量保证挑战,这最终可能会导致更多的返工/用户体验缺陷,因为更多有缺陷的代码被推向生产并需要被发现、修复和重新部署。

4. 创建原型测试环境和流程

最后一步是创建概念验证测试环境、流程和测试用例来验证新的测试系统,而不会中断正常的工作流程或可能破坏现有的代码库。

创建一个独立的代码存储库并在临时环境中运行测试,然后在完善测试过程时,开始将其与现有的 SDLC 和基础设施完全集成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wouderw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值