我一直试图在网上找到这个问题的答案,但我找不到足够好的东西让我对答案感到肯定。
我认为它们基本相同,但用户验收测试(UAT)需要真实用户,而端到端(E2E)测试使用自动化工具来模拟用户?
答案 0 :(得分:17)
用户验收测试是典型软件开发过程中的阶段。
另一方面,端到端测试是测试复杂应用程序的方法之一,它涉及应用程序的所有层在测试执行期间相互交互。
这意味着您可以在用户验收测试阶段执行端到端测试,并且您不能将这两个术语视为一个具有相同含义的术语。
答案 1 :(得分:4)
端到端测试通常由技术QA团队执行,而用户验收测试通常由业务用户执行。这些观点是不同的,虽然可能会发生一些重复工作,但所发现的缺陷可能会有所不同。
答案 2 :(得分:4)
整个测试堆栈主要由工程师负责。
验收和端到端测试是由BA,QA和Engineering在开发开始之前设计的,然后由工程师或在某些情况下使用Cucumber之类的工具由BA进行自动化。
单元和集成测试是由工程师在开发过程中创建的。
1。端到端(操作)
团队中的某人通常手动进行操作,以确保所有功能在新更新后仍能正常工作。可以使用TestCafe之类的UI测试工具来自动执行此操作。
例如“经过身份验证的用户可以启动工作申请,输入所有相关详细信息,然后提交申请。”
2。验收(视觉)
使用诸如Jest之类的工具可以自动进行验收测试,并专注于故事功能和/或操作发生时页面上的内容。
例如“经过身份验证的用户可以在仪表板页面上查看所有作业应用程序。”
3。单位
由工程师在开发过程中创建。测试一个工作单元,该工作单元可以是单个方法,也可以是由多个私有方法组成的方法。一个好的经验法则是只测试一个类的公共接口,私有方法不一定总是需要测试,因为它们是工作单元的一部分。但是,在私有方法中存在复杂逻辑的情况下,最好单独进行测试。使用JUnit和JMockit。模拟工作单元的依赖性,例如数据库和网络访问。
4。整合
由工程师在开发过程中创建。测试工作单元而无需嘲笑。通常,比单元测试侧重于更广泛的范围。例如,创建用户可能包括将详细信息存储在数据库中,向服务发送Web请求以及响应客户端。通常需要注视内存中的Web服务器以运行测试。使用JUnit或Spock
这有助于我将端到端视为动作,并将验收测试视为视觉
答案 3 :(得分:1)
坦率地说,对于不同级别的测试,我们没有一般的确切含义。 TDD世界中的每个测试阶段都有很多不同的含义或术语。有些使用接受测试作为端对端测试,有些则互换使用这些术语。例如,在非常著名的TDD book中,史蒂夫·弗里曼(Steve Freeman)像这样区分每个级别:
测试级别:
接受:整个系统正常工作吗?
集成:我们的代码是否与我们无法更改的代码兼容?
单元:我们的对象是否做正确的事,使用起来方便吗?
有人可能会说这些定义太宽泛,可能不够准确。但是测试的重点是确保整个应用程序能够按预期工作,并且随着新功能的添加,可以可靠地扩展。
一些人将集成测试定义为测试与应用程序单元的交互,而另一些人将其定义为依赖性测试。含义可以改变,但目的永远不会改变,从而确保正常工作。我想说每个组织都有不同的测试过程样式,所以不要为TDD术语寻求确切的定义。只需大致了解这些用法和用途。