36

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

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

4

4 回答 4

38

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

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

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

于 2015-05-14T20:15:37.537 回答
19

TLDR;

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

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

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


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

1.端到端测试(操作)

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

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

2. 验收测试(视觉)

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

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

3.单元测试

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

私有方法不一定需要测试,因为它们是工作单元的一部分。但是在私有方法中存在复杂逻辑的情况下,单独测试它可能是一个好主意。您可以在模拟数据库和网络访问等工作单元的依赖关系时使用Jest 。

4. 集成测试

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

于 2018-07-06T10:47:45.730 回答
7

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

于 2017-10-19T13:53:23.477 回答
2

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

测试级别:

  1. 验收:整个系统是否工作?

  2. 集成:我们的代码是否适用于我们无法更改的代码?

  3. 单元:我们的对象做正确的事吗,使用起来方便吗?

有人可能会说这些定义太宽泛,可能不太准确。但测试的重点是确保整个应用程序按预期工作,并且在添加新功能时可以进行扩展。

有些人将集成测试定义为测试与应用程序单元的交互,有些人将其定义为依赖项测试。含义可以改变,但目的永远不会改变,确保有效的应用程序。我想说每个组织都有不同风格的测试过程,所以不要为 TDD 术语寻求确切的定义。只需大致了解这些内容和用法的含义即可。

于 2020-04-18T18:06:08.983 回答