1. 端到端测试的两种理解

第 1 种理解来自 Google,Google 定义了通过了单元测试和集成测试,end-to-end 测试将整个系统作为一个整体来验证。
第 2 种理解来自更早些时候的传统软件测试,在真实场景中从头到尾测试整个应用程序,测试应用程序流是否按照设计的方法,end-to-end 测试强调从用户角度执行测试,关注用户使用场景。
本文以第 2 种理解来阐述端到端测试的目标、范围、益处以及如何设计测试用例等

2. 什么是端到端测试?

端到端测试 End-to-End Testing:在真实场景中从头到尾执行测试整个应用程序 (类似生产场景),测试应用程序流是否按照设计的方法,例如与数据库、网络、硬件和其他应用程序通信。从用户角度执行测试,关注用户使用场景。也称为链测试(Chain Testing)。 也可以简单粗暴的理解为我们日常所说的联调测试。
端到端测试目的:识别系统之间的依赖关系,并确保在不同的系统组件和系统 (如使用网络通道的数据库或 GUI) 之间传递正确的信息。
端到端测试范围:1) 验证被测软件系统 2) 检查被测系统与外部接口的集成,验证来自上游/下游系统的批处理/数据处理

3. 端到端测试 VS. 系统测试


4.为什么需要端到端测试?

四个主要原因:
软件系统复杂性
与多子系统相互连接
子系统来自不同组织/公司
子系统与当前系统不同

5.实施端到端测试的前提条件 - 时机

测试环境

理想情况下,端到端测试测试系统与生产系统完全相同。

平台/工具

服务追踪系统(业务全链路调用)
数据流转追踪系统
测试数据管理平台

人员要求

熟知软件产品研发生命周期从需求到发布
理解整个系统、相互连接的子系统及其关系
能够分析业务数据流和工作流的能力

6. 端到端测试带来的好处 Benefits

7. 端到端测试的 2 种方法

横向测试 Horizontal Test

垂直测试 Vertical Test

8. 如何设计端到端测试用例?

用户功能 User Functions:列出软件系统及其相互连接的子系统的功能;跟踪执行的操作、输入/输出数据;不同功能之间的关系;找出不同功能的本质。
条件 Conditions:测试数据、时间等影响用户功能的因素
测试用例 Test Cases:每个场景应该创建一个或多个测试用例;每个单独的条件都应该作为一个单独的测试用例

9. 端到端测试用例设计准则

10. 端到端测试的不足之处

11. 端到端测试参考(来自私下调研,不一定完整)

12. 端到端测试辅助工具

TestCraft:无代码 Selenium 测试自动化平台
TestCafe:前端端到端自动化测试工具,可以使用简单的 JS 或者 Typescript 写测试用例
cypress.io:端到端的测试 web 工具

13. 端到端测试占比

14. 何时执行端到端测试?

15. 可行性方案建议

工欲善其事,必先利其器。端到端测试强依赖研发环境、研发及监控工具平台等基础实施,基建好了,研发人员包括测试人员才可能持续高效的交付高质量软件产品。


↙↙↙阅读原文可查看相关链接,并与作者交流