彩票走势图

非功能测试和性能测试再也无法左移

转帖|行业资讯|编辑:郑恭琳|2020-06-15 13:59:34.247|阅读 143 次

概述:测试工程师、性能测试人员和SRE着迷于在软件交付的最后一步达到99.999%(有时甚至更高)的可靠性,这对客户的影响最大。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

Jason English为Parasoft撰写Intellyx BrainBlog

您是否曾经有一位朋友因为牙齿的洁白而被强迫症所困扰?他们去找美容牙医进行激光美白,然后抱怨说不够美白?最终,它们达到了渐近点,牙齿的表面无法反射99.9%的光线,因此,要获得能够提供99.999%洁白牙齿的治疗,成本太高,而且是不可能的。

测试工程师、性能测试人员和SRE着迷于在软件交付的最后一步达到99.999%(有时甚至更高)的可靠性,这对客户的影响最大。

如果您也拥有有关应用程序可靠性的OCD,那么您已经计算出了数学知识,并意识到5 9相当于每年总计约5.26分钟的停机时间。您还意识到测试工程的成本和努力超过99.9%以确保99.999%的正常运行时间是不菲的。

在大多数情况下,将生产从3 9提升到5 9会比3 9吞噬更多的IT预算!


似乎世界上所有的生产前性能测试都不可能消除所有可能导致0.001%的停机时间的未知状况。不管我们花多少钱。

但是,让我们不必担心您无法改进的一件事,一直到软件交付的右侧。不,不,不......无论如何,当应用程序完全烘焙后,在这里解决问题要花费很多。不能迷恋它。

只是一个小小的闪光点。没有人是完美的。学会放松。


与早期的DevTest团队取得新的见解


为什么不将生产暂时搁置一会,而在软件生命周期开始时与DevTest团队闲逛呢?

 在软件交付左侧的此处,他们正在绘制地图、编写代码并挑选组件。不在乎世界,不用担心部署中可能发生什么未知的未知因素。

他们正在运行测试优先的敏捷开发,并且每个构建都在运行大量结构代码检查,并运行自动化的单元和回归测试套件。他们在那种测试上向左移动。

他们也不必担心自己所做决策的影响。当将各种服务、软件和基础结构组件集成到一个正在运行的应用程序后面时,它们在负载下进行交互时会产生各种非功能性问题。

早期的设计和开发选择可能会在以后提供坏消息,但是传统上,非功能测试(NFT)和性能测试会在生产阶段进行。

等等,如果您可以将NFT引入设计和开发呢?能否提供足够的预警以防止最严重的错误?


NFT和PerfTest向左移动


非功能性问题很难在软件的早期发现,因为在现实中很难在实验室中再现真实情况。

您可以在应用程序界面或用户授权过程上运行Selenium功能测试套件,或者运行一组API服务测试调用和数据集以验证响应,或者对代码运行一堆JUnit或NUnit测试。但是所有这些方法只能测试您期望在早期阶段发现的问题。

为了更贴近现实世界,团队可以选择三种选择。

1.插入功能测试以进行基准测试。如果在CI/CD软件管道中插入Selenium功能测试,并使用诸如之类的配套工具自动化它们,以监视每次构建的执行时间,则可以为任何应用程序、组件或服务捕获一个相当不错的基准。

如果响应时间有某种偏差(无论出于何种原因),则构建可以通知构建平台或开发人员某些异常(可能无法正常运行)导致特定组件的运行速度降低。

2.重用测试并在负载下重复。为什么要等到最后才使用需要近乎完成的UI调用的LoadRunner之类的工具,专门的测试技能以及较高的单座成本?

相反,如果您从Parasoft SOAtest之类的工具中进行了Selenium测试以及一些安全性检查以及服务和集成测试,然后开始循环并重新运行它们,也许在数据或时序方面存在较高的频率?您将获得早期性能测试,向左移动。

在这里,您可以将Web样式、UI调用、API或事件队列的非UI调用的不同组合结合起来,以进行混合性能测试,从而可以测试应用程序目标生态系统的多个层面,而无需等待完成的应用程序。

3.隔离环境依赖性。向左移NFT的最后障碍是应用程序实际存在的环境。现代应用程序在充满数据和服务依赖关系的世界中发挥作用。

在这里,可以使用服务虚拟化解决方案进行基于环境的测试,以便对实时应用程序周围的所有上游和下游依赖性进行检测。这样,您就可以模拟诸如银行合作伙伴的系统、国家天气或空中交通系统之类的东西,这些东西永远都不会受到您的控制,也无法导入您自己的DevTest实验室。

可以将依赖项作为虚拟服务进行侦听并捕获为虚拟服务,就软件测试而言,这些组件可以响应“比真实情况要好”。

一家加拿大银行使用了这三种技术的组合。他们自动执行功能测试以获取贷款应用程序组件的基准,然后与其他一些测试一起重新运行该测试,以进行数据查询和对第三方信贷服务的虚拟服务“模拟”的API调用。

他们很担心。如果虚拟API服务响应太慢——被测组件会发生什么?它做出了预期的响应,但是随后测试团队加快了该第三方响应的虚拟服务,使其在最短的时间内完成。当出现响应速度太快时,出现了一个“竞争条件”,导致组件事务失败!


The Intellyx Take


在软件中,只有一个完美的定义,但是失败是无限的。

无论我们刷多少遍,我们都永远不会有100%洁白的牙齿。无论我们进行多少测试,我们都永远不会100%清除生产中的缺陷,在这些缺陷中,错误很难隔离且修复成本很高。

但是,通过适当的测试左移,包括非功能测试和性能测试,我们可以得到一个预警系统,该系统可以消除许多这些新生问题,使它们没有机会出现在性能实验室中或失败在客户面前。



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP