本文共 3923 字,大约阅读时间需要 13 分钟。
端到端测试是一种软件测试方法,用于从开始到结束测试应用程序流。此测试的目的是模拟真实的用户场景,验证被测系统及其组件的集成和数据完整性。
它自始至终都是在实际场景下执行的,比如应用程序与硬件、网络、数据库和其他应用程序的通信。
执行此测试的主要原因是确定应用程序的各种依赖关系,并确保在各个系统组件之间传递准确的信息。它通常在任何应用程序的功能和系统测试完成后执行。
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。
现在软件系统包括其与多个子系统的互连。这使得现在的软件系统成为一个非常复杂的系统。
这些子系统可以在同一个组织内,或者在许多情况下也可以是不同组织的子系统。此外,这些子系统可能与当前系统有些相似或不同。因此,如果任何子系统出现任何故障或故障,都可能对整个软件系统产生不利影响,导致其崩溃。
这些主要风险是可以避免的,并且可以通过这种类型的测试来控制:
以下是端到端流程中包含的少数活动:
进行端到端测试将帮助您确保您的软件已准备好生产,并避免发布后的风险。这个过程对软件发布成功至关重要,原因如下:
1. 水平测试(Horizontal Test):
这种方法很常用。它在多个应用程序的上下文中水平发生。这种方法很容易出现在单一的ERP(企业资源计划)应用中。以在线订购系统的基于web的应用程序为例。整个过程将包括帐户、产品的库存状态以及发货细节。
2. 垂直测试(Vertical Test):
在这种方法中,任何应用程序的所有事务都会从开始到结束进行验证和评估。应用程序的每一层都从上到下进行测试。以一个使用HTML代码访问web服务器的基于web的应用程序为例。在这种情况下,需要API根据数据库生成SQL代码。所有这些复杂的计算场景都需要适当的验证和专门的测试。因此,这种方法要困难得多。
“白盒测试”和“黑盒测试”都与此测试相关。或者换句话说,我们可以说,这是白盒测试和黑盒测试的结合。根据正在开发的软件类型,在不同的级别上,测试技术(即白盒测试和黑盒测试)都在需要时使用。基本上,端到端测试执行任何软件或程序的功能和体系结构方法,以验证系统功能。
测试人员喜欢端到端的验证,因为从用户的角度和在真实场景中编写测试用例可以避免两个常见的错误:
这为测试人员提供了巨大的成就感。
下面列出了一些在设计用于执行此类测试的测试用例时应牢记的准则:
当我们执行任何测试用例时,与此测试类似。如果测试用例是“通过”的,也就是说我们得到了预期的输出,那么据说系统已经成功地通过了端到端的测试。同样,如果系统没有产生所需的输出,那么需要重新测试一个测试用例,同时考虑到失败的区域。
其实这两个数据放在一起比较就像在比较水果和颜色一样,是不同类的事物在比较。
我们知道测试级别(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 |
---|---|
验证软件系统和所有相互连接的子系统。 | 根据需求文档中提供的规范,它只是验证软件系统。 |
重点是验证端到端测试流程。 | 重点是验证和检查软件系统的特性和功能。 |
在执行测试时,将考虑所有接口,包括软件系统的后端进程。 | 在执行测试时,只考虑功能和非功能区域及其特性进行测试。 |
端到端测试在任何软件系统的系统测试完成后执行。 | 系统测试基本上是在软件系统集成测试完成后进行的。 |
在执行端到端测试时,通常首选手动测试,因为这些测试形式涉及外部接口的测试,有时也很难实现自动化。会使整个过程变得非常复杂。 | 手动和自动测试都可以作为系统测试的一部分来执行。 |
对于任何商业版本的软件,端到端的验证都扮演着重要的角色,因为它在一个完全模仿真实用户(如网络通信、数据库交互等)的环境中测试整个应用程序。
大多数情况下,端到端测试是手动执行的,因为自动化此类测试用例的成本太高,每个组织都无法承担。这不仅有利于系统验证,而且可以被认为对测试外部集成有用。
转载地址:http://evvdi.baihongyu.com/