我一直在网上寻找这个问题的答案,但是我没有找到足够好的内容来使我对答案感到确定。
我认为它们基本上是相同的,但用户验收测试(UAT)需要真实用户,而端到端(E2E)测试使用自动化工具来模拟用户?
我一直在网上寻找这个问题的答案,但是我没有找到足够好的内容来使我对答案感到确定。
我认为它们基本上是相同的,但用户验收测试(UAT)需要真实用户,而端到端(E2E)测试使用自动化工具来模拟用户?
用户验收测试是典型软件开发流程中的一个阶段。
另一方面,端到端测试是测试复杂应用程序的一种方法,在测试执行期间涉及应用程序的所有层之间的交互。
这意味着您可以在用户验收测试阶段执行端到端测试,并且不能将这两个术语视为具有相同含义的术语。
简而言之:
验收测试和端到端测试旨在从用户的角度测试应用程序的功能性,可以将它们视为“功能测试”。不要模拟数据库或网络访问,这些测试应该针对生产环境运行。使用TestCafe。
单元测试覆盖的是一个单位的工作,也就是一个方法。模拟依赖项,如数据库或网络访问。使用Jest。
集成测试涵盖了多个相关的工作单位,例如单个/多个ReactJS组件。模拟依赖项,如数据库或网络访问。使用Jest。
验收测试和端到端测试旨在测试应用程序的功能性。通常在开发前由BA、QA和Engineering创建,然后在开发期间由工程师自动化。
1. 端到端测试(操作)
通常需要团队中的某个人手动执行,以确保所有功能在更新后仍然正常。可以使用UI测试工具如TestCafe进行自动化测试。
例如,“经过身份认证的用户可以启动一个工作申请,输入所有相关细节并提交申请。”
2. 验收测试(可视化)
验收测试使用像 Jest/TestCafe 这样的工具进行自动化,重点关注故事功能和/或页面上是否存在某些操作。
例如“经过身份验证的用户可以在仪表板页面上查看所有工作申请。”
3. 单元测试
由工程师在开发期间创建。测试一个单元的工作,可以是单个方法或由多个私有方法组成的方法。一个好的经验法则是只测试类的公共接口。
私有方法不一定需要被测试,因为它们是一个单元的工作部分。但是,如果私有方法中存在复杂逻辑,则将其隔离测试可能是一个好主意。您可以像模拟单元的依赖项(如数据库和网络访问)一样使用Jest。
4. 集成测试
由工程师在开发期间创建。测试一个单位的工作而不需要模拟。通常比单元测试的范围更广泛。例如,创建用户可能包括将详细信息存储在数据库中,向服务发送Web请求并响应客户端。通常需要一个内存中的Web服务器来运行测试。使用Jest。
End-to-End测试通常由技术QA团队执行,而用户验收测试通常由业务用户执行。 两者的视角不同,虽然可能会发生一些努力的重复,但识别出的缺陷可能会有所不同。