端到端测试教程:什么是 E2E 测试以及示例
端到端测试
端到端测试是一种软件测试方法,它从头到尾验证整个软件,包括其与外部接口的交互。端到端测试检查整个软件的依赖关系、数据完整性和与其他系统、接口和数据库的连接性,以模拟完整的生产环境。
除了软件系统之外,它还检查来自各种上游/下游系统的批处理/数据处理。因此,创造了“端到端”一词。端到端测试通常在完成功能测试和系统测试之后进行。它通过使用真实世界的数据和测试环境来模拟实时条件。端到端测试的另一个名称是链式测试。
端到端测试的目的是什么?
端到端测试评估整个系统流程并通过发现错误和提高子系统测试覆盖率来增强信心。现代软件系统复杂且相互关联,具有各种子系统,这些子系统可能与当今使用的子系统不同。任何子系统的故障都可能导致整个系统崩溃,这是一个可以通过端到端测试避免的重大风险。
端到端测试流程
下图显示了端到端测试过程。
需求 -
需求捕获
文档编制
E2E 设计 -
组件设计
E2E 设计
组件设计 -
组件设计和测试
开发 -
开发编码和设计
E2E 测试 -
端到端设置的环境设置
测试设计和执行
端到端测试中涉及的操作
以下是端到端测试中涉及的主要操作:
对端到端测试需求的审查
配置测试环境和硬件/软件需求
描述所有系统及其子系统的流程。
描述所有系统的角色和职责。
测试的方法和标准
端到端需求跟踪和测试用例设计
每个系统的输入和输出数据
开发端到端测试用例的最佳方法是什么?
端到端测试设计框架包含三个方面。
创建用户定义函数
构建条件
创建测试用例
让我们仔细看看它们:
构建用户函数
作为构建用户函数的一部分,应完成以下操作
列出系统特性及其关联组件。
对于每个特性或功能,列出输入数据、操作和输出数据。
确定函数之间的相互关系。
确定函数是可重用还是独立的。
考虑以下场景:您登录您的银行账户,并将资金从另一个银行账户转到您自己的账户(第三方子系统)
要使用银行系统,您必须首先登录。
检查账户余额以查看账户中剩余多少资金。
将资金从您的账户转到另一个银行账户(第三方子系统)
检查您最新的账户余额。
关闭应用程序。
根据用户的角色创建条件。
作为构建条件的一部分,执行以下操作:
为每个定义的用户函数创建一组标准
条件的示例包括顺序、时间和数据条件。
检查其他标准,例如:
登录页面
密码和用户名均无效。
验证登录名和密码
检查密码强度
错误消息检查
余额
24 小时后检查当前余额。(如果转账到另一个银行)
如果转账金额大于现有余额,则查找错误通知。
构建测试场景
为指定的用户函数创建测试场景
在这种情况下,
在系统中注册。
检查您的银行账户余额。
将资金转到您的银行账户。
创建多个测试场景
为每个场景创建一个或多个测试用例。每个条件都可能包含在单独的测试用例中。
端到端测试指标
下面列出的指标只是端到端测试中使用的众多指标中的一小部分。
**测试用例准备状态** - 它显示测试用例准备的进度与计划相比。
**每周测试进度** - 显示每周测试完成百分比,包括针对计划执行测试的失败、未执行和已完成。
**故障状态和详细信息** - 此报告显示每周开放和关闭缺陷的百分比。此外,根据严重性和优先级每周故障分布
**环境可用性** - 每天“正常运行”的小时总数 / 计划测试的小时总数
系统测试与端到端测试
下表重点介绍了系统测试和端到端测试之间的主要区别:
端到端测试 | 系统测试 |
---|---|
验证软件系统及其关联子系统。 | 仅根据标准验证软件系统。 |
它检查从头到尾的整个流程。 | 它检查系统的功能和特性。 |
将测试所有用户界面和后端系统。 | 测试将包括功能测试和非功能测试。 |
它在完成系统测试后运行。 | 它在以下集成测试之后进行。 |
外部接口可能是难以自动化的端到端测试的一部分。因此,手动测试是首选。 | 系统测试可以手动或自动执行。 |
E2E 测试有多种形式
手动 E2E 测试和自动化 E2E 测试是两种基本形式。
为了评估是否符合应用程序要求,业务测试人员会假装自己是用户(在他可以访问的尽可能多的设备和屏幕尺寸上)。例如,从电子商务商店购买商品。
测试人员将像普通用户一样购买产品:点击“添加到购物车”按钮,打开购物车,继续到购买界面并付款。
测试人员的目标是查看流程的任何步骤是否已损坏。
自动化 E2E 测试具有相同的目的。只是自动化测试提供了人类测试人员可能无法提供的更高级的功能。各种测试自动化系统提供自动化测试服务以及可以进行测试的各种设备(称为“设备实验室”)。
自动化测试与手动测试
如前所述,手动测试涉及测试人员手动执行测试。人为错误可能导致测试不佳。在自动化测试中,测试会自动进行。因此,在许多情况下,自动化测试可能更准确。
手动测试更容易设置和理解。自动化测试通常难以设置。自动化测试通常具有更陡峭的学习曲线。
手动测试需要较低的初始成本和资源投入。虽然自动化测试需要更高的初始成本,但随着测试流程的增长和发展,它会带来巨大的投资回报。因此,在选择自动化测试解决方案时需要考虑这一点。
通过手动测试更容易重现生产环境。但是,某些自动化技术使该过程变得更加困难。在功能之前手动检查是否满足某些要求很容易,但是自动化测试方法可能难以设置。
E2E 测试清单
因为用户界面由许多元素组成,所以 E2E 不仅限于测试用户界面。
对于博客网站,可以使用 API 从数据库中访问内容。在这种情况下,很明显,前端设计、数据库和 API 都必须独立且联合地进行测试。
在 E2E 测试期间应遵循的清单如下:
**数据库** - 您需要测试系统正在使用的数据库。您可以运行测试以检查数据是否正确保存、结构化、读取和更新。
**性能** - 虽然网页可能导航良好,但用户体验受其速度影响。因此,评估页面或功能的性能至关重要。
**安全** - Web 应用程序的安全级别决定了它对用户和公司的安全性。在这种情况下,漏洞测试工具非常关键。
**功能** - 测试的首要目的是确保产品正常工作。所有功能都必须按预期工作。单元测试也可以在这种情况下使用。
**可用性** - 组件应该是可用的,因为它们正在运行。用户与工具一样重要,因此测试必须包括项目上的事件(例如点击)以及正确的导航。
E2E 测试示例
在此示例中,我们将使用 Perfecto Scriptless(一个可用于端到端界面测试的无代码测试平台)来测试 Twitter 登录流程。
在我们开始构建测试之前,让我们建立一个测试流程。
访问 twitter.com 了解更多信息。
要登录,请点击登录按钮。
如果任何输入为空,请确保登录按钮不执行任何操作。
当输入不为空时,通过点击按钮提交详细信息(我们将使用错误信息进行测试)。
错误提示显示“您提供的用户名和密码与我们的记录不匹配”。请仔细检查您的输入,然后重试。)以红色显示。
测试应保存。
如果凭据正确,用户将被发送到其帐户(这可以是另一个测试)。
结论
端到端测试是在软件工程中检查软件系统及其子系统的过程。此测试最困难的部分是需要对整个系统以及相关子系统有足够的了解。