用户验收测试(UAT)和端到端(E2E)测试是一回事吗?

问题描述 投票:0回答:4

我一直试图在网上找到这个问题的答案,但我找不到足够好的答案让我确信答案。

我相信它们本质上是相同的,但用户验收测试(UAT)需要真实用户,而端到端(E2E)测试使用自动化工具来模拟用户?

testing end-to-end user-acceptance-testing
4个回答
49
投票

用户验收测试是典型软件开发过程中的一个阶段

从另一方面来看,端到端测试是测试复杂应用程序的方法之一,它涉及应用程序的所有层在测试执行期间相互交互。

这意味着您可以在用户验收测试阶段执行端到端测试,并且您不能将这两个术语视为一个,具有相同的含义。


23
投票

TLDR;

验收和端到端测试旨在从用户的角度测试应用程序的功能,您可以将它们组合为“功能测试”。不要模拟数据库或网络访问,这些测试应该针对生产环境运行。使用TestCafe

单元测试涵盖一个工作单元,这意味着单个方法。模拟依赖项,例如数据库或网络访问。使用开玩笑

集成测试涵盖多个相关的工作单元,例如单个/多个 ReactJS 组件。模拟依赖项,例如数据库或网络访问。使用开玩笑


验收和端到端测试旨在测试应用程序的功能。它们通常由 BA、QA 和工程人员在开发开始前创建,然后在开发过程中由工程师自动化。

1。端到端测试(操作)

通常由团队中的某人手动完成,以确保所有功能在新更新后仍然有效。这可以通过使用像 TestCafe 这样的 UI 测试工具来自动化。

例如“经过身份验证的用户可以启动职位申请,输入所有相关详细信息,然后提交申请。”

2。验收测试(视觉)

验收测试通过Jest/TestCafe等工具实现自动化,并专注于故事功能和/或发生操作时页面上存在的内容。

例如“经过身份验证的用户可以在仪表板页面上查看所有职位申请。”

3.单元测试

由工程师在开发过程中创建。测试一个工作单元,可以是单个方法,也可以是由多个私有方法组成的方法。一个好的经验法则是仅测试类的公共接口。

私有方法并不总是需要测试,因为它们是工作单元的一部分。但如果私有方法中有复杂的逻辑,那么单独测试它可能是个好主意。您可以在模拟工作单元(例如数据库和网络访问)的依赖关系时使用Jest

4。集成测试

由工程师在开发过程中创建。在不进行模拟的情况下测试工作单元。通常关注比单元测试更广泛的范围。例如,创建用户可能包括在数据库中存储详细信息、向服务发送 Web 请求以及响应客户端。通常需要内存中的 Web 服务器来运行测试。使用开玩笑


6
投票

端到端测试通常由技术 QA 团队执行,而用户验收测试通常由业务用户执行。观点不同,虽然可能会发生一些重复工作,但发现的缺陷可能会有所不同。


2
投票

坦率地说,对于不同级别的测试,我们没有通用的确切含义。 TDD 世界中测试的每个阶段都有很多不同的含义或术语。有些使用“验收测试”作为“端到端”测试,有些则互换使用这些术语。例如在非常著名的 TDD book 中,Steve Freeman 是这样区分各个级别的: 测试级别:

验收:整个系统可以工作吗?

  1. 集成:我们的代码是否与我们无法更改的代码兼容?

  2. Unit:我们的对象是否做正确的事情,它们是否方便使用?

  3. 有人可能会说这些定义太宽泛,可能不太准确。但测试的目的是确保整个应用程序按预期工作,并且随着新功能的添加,可以进行可靠的扩展。
有些将集成测试定义为测试与应用程序单元的交互,有些将其定义为依赖测试。含义可以改变,但目的永远不会改变,确保有效应用。我想说的是,每个组织都有不同风格的测试流程,因此不要寻求 TDD 术语的确切定义。只需大致了解这些内容和用法的含义即可。

© www.soinside.com 2019 - 2024. All rights reserved.