端到端测试你了解多少?

端到端测试是一种软件测试方法,用于从开始到结束测试应用程序流。此测试的目的是模拟真实的用户场景,验证被测系统及其组件的集成和数据完整性。

它自始至终都是在实际场景下执行的,比如应用程序与硬件、网络、数据库和其他应用程序的通信。

执行此测试的主要原因是确定应用程序的各种依赖关系,并确保在各个系统组件之间传递准确的信息。它通常在任何应用程序的功能和系统测试完成后执行。

End-to-end testing is a Software testing methodology to test an application flow from start to end. The purpose of this testing is to simulate the real user scenario and validate the system under test and its components for integration and data integrity.

It is performed from start to finish under real-world scenarios like communication of the application with hardware, network, database and other applications.

The main reason for carrying out this testing is to determine various dependencies of an application as well as ensuring that accurate information is communicated between various system components. It is usually performed after the completion of functional and system testing of any application.

端到端测试是软件开发生命周期(SDLC)中使用的一种方法,用于在类似产品的环境下测试应用程序的功能和性能,以及用于复制实时设置的数据。目标是从开始到结束模拟真实的用户场景。该测试的完成不仅是为了验证被测系统,而且是为了确保其子系统的工作和行为符合预期。

今天的软件变得越来越复杂。应用程序构建在子系统的层和整个网络上,包括UI和API层、外部数据库、网络,甚至第三方集成。当一个组件失败时,整个产品也会失败,这使得每个组件的稳定性对于应用程序的成功至关重要。这意味着很明显需要测试整个应用程序,从开始到结束-在API和UI层。端到端的测试应该使用自动化测试和手动测试策略来运行——允许您的团队最大化覆盖率,同时以探索的方式发现新的bug。


为什么需要端到端测试?

现在软件系统包括其与多个子系统的互连。这使得现在的软件系统成为一个非常复杂的系统。

这些子系统可以在同一个组织内,或者在许多情况下也可以是不同组织的子系统。此外,这些子系统可能与当前系统有些相似或不同。因此,如果任何子系统出现任何故障或故障,都可能对整个软件系统产生不利影响,导致其崩溃。

这些主要风险是可以避免的,并且可以通过这种类型的测试来控制:

  • 检查并执行系统流程验证。
  • 增加软件系统涉及的所有子系统的测试覆盖范围。
  • 检测子系统的任何问题,从而提高整个软件系统的生产率。

以下是端到端流程中包含的少数活动:

  • 对执行此测试的需求的彻底研究。
  • 测试环境的正确设置。
  • 对硬件和软件需求的深入研究。
  • 所有子系统及涉及的主要软件系统的说明。
  • 登记所有相关系统和子系统的角色和职责。
  • 本测试所用的测试方法以及所遵循的标准、及其说明。
  • 测试用例的设计以及需求矩阵的跟踪。
  • 记录或保存每个系统的输入和输出数据。

端到端测试的优点

进行端到端测试将帮助您确保您的软件已准备好生产,并避免发布后的风险。这个过程对软件发布成功至关重要,原因如下:

  • 确认应用程序运行状况:端到端测试将验证软件在各个级别(从前端到后端以及在多个系统上)的功能,并提供跨不同环境的性能透视图。
  • 扩展测试覆盖率:通过在测试过程中合并许多不同的子系统,可以有效地扩展测试覆盖率,并创建以前未考虑过的其他测试用例。
  • 检测错误并提高应用程序的生产效率:在端到端测试中,软件通常在每次迭代后都要进行测试,这意味着您将能够更快地发现和修复任何问题。这将减少错误进一步进入测试过程(以及生产)的机会,从而确保应用程序工作流无缝运行。
  • 减少测试工作和成本:在减少bug、故障和每个步骤的全面测试的情况下,端到端测试还将减少重复测试的需要,并最终减少与重复测试相关的成本和时间。

端到端测试的方法

1. 水平测试(Horizontal Test):

这种方法很常用。它在多个应用程序的上下文中水平发生。这种方法很容易出现在单一的ERP(企业资源计划)应用中。以在线订购系统的基于web的应用程序为例。整个过程将包括帐户、产品的库存状态以及发货细节。

2. 垂直测试(Vertical Test):

在这种方法中,任何应用程序的所有事务都会从开始到结束进行验证和评估。应用程序的每一层都从上到下进行测试。以一个使用HTML代码访问web服务器的基于web的应用程序为例。在这种情况下,需要API根据数据库生成SQL代码。所有这些复杂的计算场景都需要适当的验证和专门的测试。因此,这种方法要困难得多。

“白盒测试”和“黑盒测试”都与此测试相关。或者换句话说,我们可以说,这是白盒测试和黑盒测试的结合。根据正在开发的软件类型,在不同的级别上,测试技术(即白盒测试和黑盒测试)都在需要时使用。基本上,端到端测试执行任何软件或程序的功能和体系结构方法,以验证系统功能。

测试人员喜欢端到端的验证,因为从用户的角度和在真实场景中编写测试用例可以避免两个常见的错误:

  • “遗漏一个bug”
  • “编写不验证真实场景的测试用例”。

这为测试人员提供了巨大的成就感。

下面列出了一些在设计用于执行此类测试的测试用例时应牢记的准则:

  • 测试用例应该从最终用户的角度设计。
  • 应重点测试系统的一些现有功能。
  • 创建多个测试用例应该考虑多个场景。
  • 应该创建不同的测试用例集,以关注系统的多个场景。

当我们执行任何测试用例时,与此测试类似。如果测试用例是“通过”的,也就是说我们得到了预期的输出,那么据说系统已经成功地通过了端到端的测试。同样,如果系统没有产生所需的输出,那么需要重新测试一个测试用例,同时考虑到失败的区域。


端到端测试(E2E)与系统测试(System Test)的区别

其实这两个数据放在一起比较就像在比较水果和颜色一样,是不同类的事物在比较。

我们知道测试级别(Test Level)划分为:单元测试(Unit Test)、集成测试(Integration Test)、系统测试(System Test)和用户确认测试(UAT,User Acception Test)

而端到端测试(End to End Test)是一种测试方法。就像探索性测试(Explore Testing)和渗透测试(Penetration Test)一样,这些都是测试方法。

换言之,E2E测试始终是系统测试,但系统测试不一定是E2E测试。

系统测试(System Testing)是一种测试级别(Test Level),它包括一系列不同的测试,其目的是对集成系统进行完整的测试。系统测试基本上是黑盒测试的一种形式,从用户的角度出发,将重点放在软件系统的外部工作上,并将实际情况作为考虑因素。

系统测试包括:

  • 测试完全集成的应用程序,包括主系统。
  • 确定组件之间以及系统内部的交互。
  • 根据提供的输入验证所需的输出。
  • 分析用户在使用应用程序的各个方面时的体验。

系统测试:您正在测试整个系统,即系统的所有组件,以确保每个组件都按预期运行。这更多的是从功能的角度来检查需求。

端到端测试:这更多的是关于在更真实的最终用户场景中通过测试系统的实际流程来验证系统是否能够工作正常。用户能否按预期使用应用程序并且系统正常工作。其实是在测试业务流和数据流。

上面我们已经看到了系统测试的基本描述来理解它。现在,我们来看看“系统测试”和“端到端测试”之间的区别。

端到端测试

End to End Testing

系统测试

System Testing

验证软件系统和所有相互连接的子系统。 根据需求文档中提供的规范,它只是验证软件系统。
重点是验证端到端测试流程。 重点是验证和检查软件系统的特性和功能。
在执行测试时,将考虑所有接口,包括软件系统的后端进程。 在执行测试时,只考虑功能和非功能区域及其特性进行测试。
端到端测试在任何软件系统的系统测试完成后执行。 系统测试基本上是在软件系统集成测试完成后进行的。
在执行端到端测试时,通常首选手动测试,因为这些测试形式涉及外部接口的测试,有时也很难实现自动化。会使整个过程变得非常复杂。 手动和自动测试都可以作为系统测试的一部分来执行。

对于任何商业版本的软件,端到端的验证都扮演着重要的角色,因为它在一个完全模仿真实用户(如网络通信、数据库交互等)的环境中测试整个应用程序。

大多数情况下,端到端测试是手动执行的,因为自动化此类测试用例的成本太高,每个组织都无法承担。这不仅有利于系统验证,而且可以被认为对测试外部集成有用。

[敏捷开发实践] 端到端测试你了解多少?相关推荐

  1. 敏捷开发实践经验分享

    前言:本文主要从笔者四年的敏捷开发实践经验出发,讲解"敏捷开发是什么?"和"怎么做到敏捷开发"两个问题,同时分享一些个人觉得比较实用的IT项目开发的小方法. 目 ...

  2. 华为云HE2E devops 敏捷开发实践课程——笔记总结

    华为云HE2E devops 敏捷开发实践课程--Kanban和Scrum 粒度和耦合 规划.设计.跟踪 HE2E 框架 Kanban看板方法 通过可视化寻找改进点并驱动团队持续交付的有效方法. 看板 ...

  3. 9天封闭式开发,通过TAPD工具进行敏捷开发实践

    转自:https://www.jianshu.com/p/0f8536f83bde 这是一次一个面向老板出产品的经历.一个传统互联网公司想要转型成移动互联网公司的关键节点上,当时经过很长一段时间的产品 ...

  4. [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum

    [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...

  5. [敏捷开发实践] 使用RACI Matrix划分敏捷团队的RR

    [敏捷开发实践] 使用RACI Matrix划分敏捷团队的R&R 参加过PMP认证培训,持有PMP认证的Project Mananger都清晰的理解RACI Matrix 的重要性. 事实上, ...

  6. 敏捷开发实践总结(二):关于测试

    用了两个冲刺周期,我们组算是把敏捷开发的测试流程给捋顺了.这里对我们的测试,以及敏捷开发中的测试做一个小结. 一.开发组一定不能讳疾忌医. 作为开发人员,一定要秉着这个出发点去看待测试.业务测试测试组 ...

  7. 环信联合创始人: Saas敏捷开发实践!

    马晓宇 --环信联合创始人/执行总裁 我们是一个做云服务的创业公司,所以我就云服务创业公司的角度,来谈谈我们是怎么去实践敏捷开发的.确切地说,就是讲讲我们这几年的这些教训- 1-创业公司敏捷开发流程有 ...

  8. Scrum敏捷开发实践之有道云笔记

    1. Scrum不是万能药,要在时机成熟时推行. 什么时候算时机成熟呢?我们的经验是需要两点:一.团队有三名或以上的研发工程师 :二. 团队内有一名合适的Scrum Master . 刚开始的时候,一 ...

  9. 有道云笔记的敏捷开发实践——好文收藏吧!【转】

    作者:蒋炜航 链接:https://zhuanlan.zhihu.com/p/19571416 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1. Scrum不是万 ...

最新文章

  1. 结构体中定义函数指针
  2. 会话跟踪技术Cookieless
  3. html5抬头,HTML !DOCTYPE 标签
  4. [NOTE]常用Linux命令总结[Thx for commandlinefu]
  5. GPS定位系统源码只有这种才是最适合做二次开发的...
  6. OpenStack云第五天
  7. flink写入clickhouse遇到210错误故障排查思路
  8. DAS 2020 Keynote Speech | 深度学习时代的 OCR
  9. 基于jQuery实现垂直轮播效果
  10. 计算机会计和传统手工会计的区别,手工会计与计算机会计之间的区别.doc
  11. redis安装+启动和连接+让redis在后台运行
  12. 小米净水器更换php教程,这种方法更换滤芯寿命更长:小米净水器
  13. .htaccess 语法以及应用
  14. java sql插入_java 中如何使用sql插入语句?
  15. S_ALR_87011963 No data selected
  16. 金三银四马-sb java面试突击资源
  17. ArcGIS学习记录—dbf shp shx sbn sbx mdb adf等类型的文件的解释
  18. thinkphp6+swoole websocket使用教程自研路线不建议使用
  19. 免费的21个UI界面设计工具、资源及网站
  20. 建模simulink - xpc调试手段

热门文章

  1. 证件照制作小程序源码下载-超级实用工具
  2. C++ Cstring类型使用
  3. java实现二维码生成功能
  4. 谈谈你对间隙锁的理解
  5. linux 创建线程 execvp,execvp使用实例
  6. C语言之链表:单向链表,循环链表,双向链表
  7. Java网络编程以及部分协议的使用说明
  8. php开发环境搭建和基础入门
  9. 2023电工杯数学建模竞赛A题思路解析+代码+论文
  10. Netty ChannelGroup自动移除InActive的Channel实现