端到端测试
端到端测试是一种软件测试方法,从开始到结束验证整个软件及其与外部接口的集成。端到端测试的目的是测试整个软件的依赖性、数据完整性以及与其他系统、接口和数据库的通信,以实现完整的生产场景。
与软件系统一起,还验证来自其他上游/下游系统的批处理/数据处理。端到端测试通常在功能和系统测试之后执行。它利用实际生产中的数据和测试环境来模拟实时设置,端到端测试也称为链式测试。
为什么要进行端到端测试?
端到端测试通过检测问题和增加子系统的测试覆盖率来验证完整的系统流,并增加信心。现代软件系统是复杂的,由多个不同的子系统互连而成,任何一个子系统的故障都可能导致整个系统崩溃,这是通过端到端测试可以避免的重大风险。
端到端测试流程:
下图概述了端到端测试流程。
端到端测试涉及的主要活动包括:
- 端到端测试需求的研究
- 测试环境设置和硬件/软件要求
- 描述所有系统及其子系统流程。
- 所有系统的角色和职责说明
- 测试方法和标准
- 测试用例的端到端需求跟踪和设计
- 每个系统的输入和输出数据
如何创建端到端测试用例?
端到端测试设计框架由三部分组成
- 构建用户函数
- 建造条件
- 构建测试用例
详细看看:
构建用户函数
作为构建用户功能的一部分,应执行以下活动:
- 列出系统的功能及其互连组件
- 列出每个要素或函数的输入数据、操作和输出数据
- 确定功能之间的关系
- 确定函数是否可以重用或独立
例如,假设登录到银行帐户,然后将一些钱从其他银行转账到另一个帐户(子系统)
- 登录银行系统
- 检查帐户中的余额
- 将一些金额从帐户转到其他银行帐户(子系统)
- 检查最新的帐户余额
- 注销应用程序
基于用户功能的构建条件
以下活动作为构建条件的一部分执行:
- 为定义的每个用户函数构建一组条件
- 条件包括顺序、定时和数据条件
例如-检查更多条件,如
登录页
- 用户名和密码无效
- 正在检查有效的用户名和密码
- 密码强度检查
- 检查错误消息
余额
- 24小时后检查当前余额。(如果转账是寄到另一家银行)
- 如果转账金额大于当前余额,检查错误消息
构建测试场景
为定义的用户功能构建测试场景,在这种情况下,
- 登录系统
- 检查银行余额
- 转账银行余额
构建多个测试用例
为定义的每个场景构建一个或多个测试用例。测试用例可以包括每个条件作为单个测试用例。
端到端测试的指标:
以下是用于端到端测试的众多指标中的几个。
- 测试用例准备情况:根据计划给出测试用例准备进度
- 每周测试进度-提供每周测试完成百分比的详细信息-未通过、未执行,并对照计划的测试执行。
- 缺陷状态和详细信息-提供每周打开和关闭缺陷的百分比。此外,基于严重性和优先级的每周缺陷分布
- 环境可用性-运行的总小时数/每天计划进行测试的总小时数
端到端测试与系统测试
端到端测试 | 系统测试 |
---|---|
验证软件系统以及互连的子系统 | 根据需求规范仅验证软件系统。 |
检查完整的端到端流程。 | 检查系统功能和特性。 |
将考虑所有接口、后端系统进行测试 | 对于测试,将考虑进行功能测试和非功能测试 |
在系统测试完成后执行。 | 在集成测试之后执行。 |
端到端测试涉及检查外部接口,可能很难实现自动化。因此,最好使用手动测试。 | 系统测试既可以执行手动测试,也可以执行自动化测试 |
结论
在软件工程中,端到端测试是验证软件系统及其子系统的过程。这项测试中最大的挑战是对整个系统以及互连的子系统有足够的了解。