Testing 用户验收测试(UAT)和端到端(E2E)测试是否相同?
我一直试图在网上找到这个问题的答案,但我还没有找到足够好的答案让我确信答案Testing 用户验收测试(UAT)和端到端(E2E)测试是否相同?,testing,end-to-end,user-acceptance-testing,Testing,End To End,User Acceptance Testing,我一直试图在网上找到这个问题的答案,但我还没有找到足够好的答案让我确信答案 我相信它们本质上是一样的,但用户验收测试(UAT)需要一个真实的用户,而端到端(E2E)测试使用自动化工具来模拟用户?用户验收测试是典型软件开发过程中的一个阶段 另一方面,端到端测试是测试复杂应用程序的方法之一,它涉及应用程序的所有层,以便在测试执行期间相互交互 这意味着您可以在用户验收测试阶段执行端到端测试,并且不能将这两个术语视为一个,具有相同的含义。端到端测试通常由技术QA团队执行,而用户接受测试通常由业务用户执行
我相信它们本质上是一样的,但用户验收测试(UAT)需要一个真实的用户,而端到端(E2E)测试使用自动化工具来模拟用户?用户验收测试是典型软件开发过程中的一个阶段 另一方面,端到端测试是测试复杂应用程序的方法之一,它涉及应用程序的所有层,以便在测试执行期间相互交互
这意味着您可以在用户验收测试阶段执行端到端测试,并且不能将这两个术语视为一个,具有相同的含义。
端到端测试通常由技术QA团队执行,而用户接受测试通常由业务用户执行。观点是不同的,虽然可能会发生一些重复工作,但发现的缺陷可能会有所不同。
TLDR 验收测试和端到端测试旨在从用户的角度测试应用程序的功能,您可以将它们组合为“功能测试”。不要模拟数据库或网络访问,这些测试应该在生产环境中运行。使用 单元测试涵盖一个工作单元,即一种方法。模拟依赖项,如数据库或网络访问。使用 集成测试涵盖多个相关的工作单元,例如单个/多个组件。模拟依赖项,如数据库或网络访问。使用验收和端到端测试旨在测试应用程序的功能。它们通常在开发开始之前由BA、QA和工程部创建,然后在开发过程中由工程师自动化 1。端到端测试(操作) 通常是团队中的某个人手动操作,以确保所有功能在新更新后仍能正常工作。这可以通过使用UI测试工具实现自动化,如 例如,“经过身份验证的用户可以启动作业应用程序,输入所有相关详细信息,然后提交应用程序。” 2。验收测试(目视) 验收测试通过/等工具实现自动化,并集中于故事功能和/或发生动作时页面上存在的内容 例如,“经过身份验证的用户可以在仪表板页面上查看所有作业应用程序。” 3。单元测试 由工程师在开发过程中创建。测试工作单元,该工作单元可以是单个方法,也可以是由多个私有方法组成的方法。一个好的经验法则是只测试类的公共接口 私有方法并不总是需要测试,因为它们是工作单元的一部分。但是在私有方法中有复杂逻辑的情况下,最好单独测试它。您可以在模拟工作单元的依赖项(如数据库和网络访问)时使用 4。集成测试
由工程师在开发过程中创建。在没有模拟的情况下测试工作单元。通常关注的范围比单元测试更广。例如,创建用户可能包括在数据库中存储详细信息、向服务发送web请求以及响应客户端。通常需要内存中的web服务器来运行测试。使用 坦率地说,对于不同级别的测试,我们没有一般的确切含义。在TDD世界中,每个测试阶段都有许多不同的含义或术语。有些使用验收测试作为端到端测试,有些则互换使用这些术语。例如,在非常著名的TDD中,Steve Freeman区分每个级别,如下所示: 测试级别:
有些人将集成测试定义为测试与应用程序单元的几个交互,有些人将其定义为依赖性测试。含义可以改变,但目的永远不会改变,确保工作应用。我要说的是,每个组织都有不同风格的测试过程,所以不要寻求TDD术语的精确定义。只要大致了解这些内容和用法的内涵。我想说,接受、E2E和集成之间有区别。需要学习的一件事是行为驱动开发(BDD),它需要使用自动化的验收测试。