敏捷中的端到端测试

摘要:
端到端测试和传统测试传统测试包括单元测试、集成测试、系统测试和验收测试。端到端测试的范围、复杂性和可维护性高于单元和集成测试。水平端到端测试从头到尾验证每个应用程序中的每个工作流,以确保每个相关流程正常工作。垂直端到端测试该方法是指分层测试,按分层顺序进行。执行的结构和顺序在端到端测试中至关重要。为了提高端到端测试的效率,请尝试以最大的覆盖率自动化端到端的测试用例。

当今敏捷流行时代,大多数应用程序架构都是采用面向服务的体系结构设计的。因而,应用程序与可以在应用程序环境之外的许多子系统或者服务互连。如果任何子系统出现故障,都可能导致整个应用程序陷入瘫痪。

为了确保一切正常,我们需要从头到尾(端到端)测试应用程序的整个流程。

端到端测试主要用于两个目的:

  • 测试整个应用程序的主要业务组件,例如与其他服务、接口、数据库、网络和第三方应用程序进行数据交换。
  • 要创建一个尽可能接近线上的场景并测试满意的流程,以便测试人员可以模拟真实用户和环境并避免任何应用程序异常。
为什么需要端到端测试

在每个冲刺中,开发团队和测试团队都专注于应用程序中使用的所有集成服务中的单个服务。大量微服务和子系统的功能和较短的测试时间会让他们有可能错过了子系统或服务中存在的隐患。

因此,质量检查小组必须确保单个服务中的特定更改不会影响整个工作流程。

端到端测试与传统测试

传统测试包括单元测试、集成测试、系统测试、验收测试。但是端到端测试是在系统测试之后开始的。有时系统/单元/集成测试端到端测试之间区别不大,有时候很难界定,但是这些完全不同。

这是一个简单的例子,设我们有一个包含三个子系统的应用程序:搜索订购支付

在当前的冲刺中,支付子系统中的需求规范更改如下:添加新的支付选项。因此,根据要求,系统测试将仅处理与新添加的付款选项相关的功能。

但是端到端测试将具有从搜索到付款(带有新添加的付款选项)以及订单确认的场景。端到端测试的范围,复杂性和维护性高于单元和集成测试。

因此,在准备测试用例和自动化测试脚本,测试人员最好先了解与完整的应用架构,这样它会很容易界定的覆盖范围。

谁进行端到端测试

端到端测试应由对应用程序有深入了解并了解产品架构的测试人员执行。除了测试人员外,业务人员、营销人员、内测用户甚至技术经理都是进行端到端测试的理想人选。

端到端测试方法

水平端到端测试

它贯穿业务工作流程的每个阶段,并确保功能需求文档与开发的应用程序相对应。

水平的端到端测试从头到尾通过各个应用程序验证每个工作流,以确保每个相互关联的过程正常工作。通常这种类型的测试会在发布周期结束时并在稳定的环境中进行。通过这种方法,测试可以在功能部分获得更多的覆盖,但是只有在所有版本更改都完全实现后才能执行。

垂直端到端测试

此方法是指分层测试,测试按分层的顺序进行。垂直测试用于分别彻底地测试每个组件,它是测试生命周期的一部分。执行此操作的最常见方法是BDDTDDCI/CD

实现此目标的最佳方法是对每个组件执行单元测试,然后对API集成UI层执行测试。通过这些工作,我们可以对核心代码进行大量测试。由于可以分阶段实施,因此很容易找到每个阶段的BUG

端到端测试步骤

这些是端到端测试必不可少的步骤:

  • 需求分析:全面分析需求,并涵盖端到端工作流程中的主要业务组件。
  • 环境设置:设置测试环境时要牢记生产环境的详细信息。就软件和硬件要求而言,请尝试使其与产品相似。
  • 子系统:确保所有子系统都是端到端工作流的一部分。
  • 测试用例:设计具有最大覆盖范围的测试用例,并添加测试数据以测试常见的用户场景。专注于高优先级的功能,并设计更复杂的测试用例进行验证。
  • 执行:执行整个端到端测试套件,然后分析结果。永远不要忘记按正确的顺序运行套件。如果需要,请在多个设备和系统中中执行端到端场景。
  • 维护:由于端到端测试包含整个应用程序,因此测试用例比功能测试用例更为复杂。系统的每个组件都必须进行测试,这会增加故障百分比。执行的结构和顺序在端到端测试中至关重要。首先进行单元测试和集成测试以解决最初的错误。一旦开始端到端测试,就可以在高风险的用户场景下同时运行冒烟和健全性测试。
提高端到端测试效率
  • 尝试以最大的覆盖范围自动化端到端测试用例。
  • 将端到端自动化套件与冒烟测试、健全性测试和验收测试分开。
  • 在任何冲刺版本发布之前执行端到端套件,以确保应用程序的正常运行按预期进行,并且新的更改不会对产品的子系统产生任何影响。
  • 使用诸如Jenkins之类的任何工具将测试套件与CI/CD管道集成在一起。
  • 由于测试套件需要花费一些时间来执行,因此创建Jenkins任务并将其安排在晚上,以便可以在工作时间内分析所有失败的测试用例。
  • 端到端测试经常也确实包含一些跨浏览器和并行测试,因此在这种情况下,请尝试在Docker中使用Selenium Grid
  • 在运行自动化套件时,需要创建一个接近生产环境,并且需要避免任何环境级别的问题。
结论

端到端的目标是验证系统与功能流程的集成。因此在测试任何应用程序时,必须注意用户界面或表示层不是唯一要关注的领域,但应用程序行为背后的基础数据、流程和逻辑也需要进行验证。连接的系统和集成在前端、后端、功能和集成方面均同等重要。


公众号FunTester首发,原创分享爱好者,腾讯云和掘金社区首页推荐,知乎七级原创作者,欢迎关注、交流,禁止第三方擅自转载。

FunTester热文精选

免责声明:文章转载自《敏捷中的端到端测试》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇详解Intellij IDEA中.properties文件中文显示乱码问题的解决golang查找端口号占用的进程号下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android自动化测试工具——monkey简介及入门

记得第二家单位的安卓开发在上线前都用monkey压几个小时,确实也能发现些问题,崩溃率低了些,没测过的确实可以压一压 搜了下资料,monkey确实很简单,发现问题自己搜下是什么问题,别一发现什么就跑去问开发 下面介绍下monkey的原理 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输...

用adb命令组装PowerShell实用小工具——Android测试小助手

[本文出自天外归云的博客园] 简介 APP性能测试一般对以下几个方面进行测试: 1.启动时间(可以通过本工具测试); 2.CPU的占用(可以通过本工具测试); 3.内存的占用(可以通过本工具测试); 4.流量的耗用(可以通过本工具测试); 5.电量的耗用(用户实际使用中感知即可)。 除了可以做以上这几个专项测试外,本工具还能进行monkey测试等等。 可...

使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(二)使用InstallShield部署非安装版MySQL

接上一篇文章http://www.cnblogs.com/wigis/archive/2012/12/01/2797505.html 在使用bat批处理可以自动部署MySQL服务端后,我们使用InstallShield来达到相同的目的。原理还是一样的,在用InstallShield安装到客户机的指定位置后,运行bat文件。 1.  准备以下文件。在上一步应...

VS2012_MVC4入门例子、代码视图分离办法、需要注意的坑爹问题等_被坑后不断更新此贴,要转载的话,请使用链接,不要转载内容

因为此贴会不断更新,所以,要转载的话,请使用链接,不要转载内容。 --------------------------------------------- 题外话: 用C#做网站,目前主要有两种模式:Asp.net网站,基于WebForm,和Mvc4 (mvc3、其他自定义框架就不谈了)。也就是做 xx.aspx页面,并且工具栏有一堆现成的.net服务器...

图解固件、驱动、软件的区别

大家好,我是良许。 不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢? 我在朋友圈做了个小调查,发现居然很多人不清楚他们的关系,因此写下此文来给大家做个简单的科普。 文字描述太抽象了,我们直接来看漫画吧。 好了,看完漫画,我们再来看正规的解释是怎样的...

“渴了么”软件需求规格说明书

“渴了么” 软件需求规格说明书 组员:陈志利 檀威 赵永恒 范德一 日期:2015年5月 目录 1 引言............................................................................................................................. 3...