• 0
  • 2
分享
  • 您如何使用Selenium来计算自动化测试的投资回报率?
  • 恬恬圈 2019-12-03 10:49:55 字数 6055 阅读 2353 收藏 2

跨浏览器测试是一种测试,需要大量的精力和时间。通过不同的浏览器,操作系统,设备,屏幕分辨率测试Web应用程序,以评估针对各种受众的Web内容呈现的过程是一项活动。特别是如果手动处理。使用Selenium进行的自动跨浏览器测试可以帮助您节省例行测试活动的时间,并帮助您缩短回归测试的时间。但是,人们很少喜欢变化。如果手动测试在您的组织中很流行,那么当您要求他们实施测试自动化时,管理层显然会提出问题。

测试自动化虽然非常有益,但通常可能会证明是昂贵的,但值得吗?在说服高层管理人员的同时,您可能会发现这是一个难题。在开发Web应用程序时,将需要您提供使用Selenium进行测试自动化的有效ROI,并通过使用Selenium进行自动化跨浏览器测试来简化Web应用程序的自动化,从而突出显示自动化测试的好处,因为它可以更快地完成工作,而无需人工。

在本文中,我们将讨论使用Selenium评估测试自动化的ROI的不同指标,以及涵盖基础知识和高级技术的ROI计算技术。

使用Selenium评估测试自动化的ROI的指标

您和您的团队成员可以考虑某些度量标准和度量标准,这些度量标准和度量标准可以帮助您在计划从Web应用程序的头开始进行自动化测试时,分析使用Selenium进行测试自动化时的ROI。这些指标可能因组织而异。为什么?好吧,这是一个优先事项,有不同的度量标准,例如检测到的缺陷数量,时间增益或测试覆盖范围会直接影响项目的风险,成本,质量和交付进度。一些组织可能会优先考虑发现的缺陷数量,因为他们可能认为数量会带来质量。有些人可能会反之亦然,因为对于他们而言,质量意味着一切。你拿什么 您认为在测试用例的质量与数量之争中,更重要的是什么。在下面的评论部分中让我知道您的想法。

话虽如此,在您与高级管理层进行讨论之前,确定关键指标以使用Selenium进行测试自动化计算ROI至关重要。

Selenium测试自动化的范围

我们知道我们无法执行100%的测试自动化。那么,您可以执行多少自动化的跨浏览器测试,这是一个需要大量思考过程的问题?如果您希望为您的Web应用程序执行自动跨浏览器测试,则必须考虑并确定优先级,以及您应该在测试用例中涵盖哪些操作系统?因为您无法涵盖所有 情况。可能的方案总数可能导致数百甚至数千个测试用例。如果您的自动化测试脚本是如此之长,那么每天可能需要花费相当多的时间评估您的Web应用程序或网站。

简而言之,您需要在此处比较自动化测试用例的总数与可以实现自动化的测试用例的总数。

如果您希望减少使用复杂测试套件的时间,则还可以使用Selenium Grid进行并行测试。这样,您可以同时执行多个测试脚本。但是,为此,您可能还需要考虑多少个并发或并行会话足以满足您的要求?您可以通过我们的并发计算器进行操作。

此指标的改进表明,团队可以更快地发现缺陷并快速修复它们,从而在Selenium上实现自动化测试的风险低,投资回报率高。

您将节省多少时间?

使用敏捷,每周或每两周交付一次,并且需求经常变化。在那种情况下,回归测试的重要性增加了。实施自动回归测试用例将减少测试所需的时间,从而获得更多的时间来投资开发或进行另一个Sprint。节省时间是几乎每个需要快速扩展其Web应用程序的组织(尤其是初创企业)的优先考虑。在评估测试自动化的投资回报率时,时间是您关注的问题之一吗?

您的资源带宽

我们知道,使用Selenium进行测试自动化将帮助您快速推销Web应用程序。但是,没有哪个组织愿意在员工大部分时间都闲着等待脚本完成的情况下使用它。要使用Selenium来计算测试自动化的ROI,需要对您所拥有的每个自动化和手动测试仪进行彻底的工作分析。

资源和工具的投资预算

测试自动化可以节省时间和精力。但是,这涉及到价格的权衡。您需要考虑可以为多少工具,每个组织(尤其是初创公司)轻松分配多少预算,这些工具需要快速扩展其Web应用程序。在评估测试自动化的投资回报率时,时间是您关注的问题之一吗?

总缺陷数

每个回归周期完成后的总缺陷数表明了产品质量以及特定项目的有效自动化测试量。

找出自动化测试的真实投资回报率

根据在项目生命周期内需要执行的回归周期数,真实的ROI可以转移到正值区域。ROI通常通过以下公式计算:

ROI =(手动测试成本–自动测试成本)/自动测试成本

但是随着敏捷和DevOps进入市场,经典方法不再有效。另外,该度量标准也不现实,因为手动测试的次数永远不会与自动测试的次数相同。用Selenium自动化基于数量计算测试自动化ROI的真实价值并不是很多人的选择。但这也不是完全被忽视的。

缺陷质量

我认为,这是使用Selenium计算测试自动化的ROI时非常重要的指标。我相信,使用Selenium进行测试自动化的全部目的是不消除项目中对手动测试人员的需求。自动化测试的重点是减少测试人员狭窄的工作量,从而使他们可以提出更多的开箱即用的测试用例。提高测试用例的质量肯定会帮助您更好地构建Web应用程序。

在测试自动化上计算投资回报率时的一般错误

尽管计算ROI涉及使用一些简单公式进行基本计算,但是如果您错过了一些重要参数,则可能会发生错误。让我们讨论人们在计算ROI时常犯的一些错误。

您真的不是完全忽略手动测试吗?

最大的错误之一就是仅保留自动化测试工作作为主要测量参数。手动测试将始终很重要。对于跨浏览器测试,可以自动执行某些方案,但是在某些领域中,您需要通过执行手动跨浏览器测试与Web应用进行实时交互。因为视觉缺陷比运行自动化脚本更容易手动检测。始终手动检查网站是否在所有浏览器中都看起来不错或某个导航菜单在特定浏览器中是否正常运行等事实。如果您使这些测试自动化,它们将无法在使用Selenium进行测试自动化方面提供很高的投资回报率。即使您不计算手动工作量,您仍然必须花费时间和金钱。

总是想着更大的图景

在使用Selenium测量测试自动化的ROI时,您必须考虑更长的时间。检查某种测试方法在短时间内如何使组织受益的做法并不理想。从长远来看,您必须检查它如何影响组织和团队。而不是几个月,而是要计算3到5年内的影响。例如,您应该选择左移测试吗?左移测试是一种方法,可让您集中精力从需求收集阶段尽快进行测试。背后的想法是考虑错误并尽快发现它们,因为据信与最初阶段发现的错误相比,在SDLC后期发现的错误会贵得多。

您是否同步了组织的功能?

您必须将组织的功能与测试自动化工具堆栈同步。为了成功实施自动化测试策略,既需要产品知识,又需要自动化知识。您的团队应该对如何使用计划的自动化工具以及应用程序的工作有清晰的了解。

测试维护是要考虑的重要因素

测试用例的维护是人们在使用Selenium测量自动化测试的投资回报率时往往会错过的另一个因素。当您使用Selenium进行自动跨浏览器测试时,在成功实施测试策略之后,您将定期需要更新和维护测试用例。随着您添加新页面,增强或更新Web应用程序的功能,回归套件和测试用例将开始增长。确保这些测试用例在较长时间内的可用性将需要定期维护。

缺少正确的文档

这是一个非常常见的错误,不仅从自动化测试人员的角度来看,而且从管理角度来看。应将文档设置为每个组织的标准。当自动化测试人员编写测试脚本时,他们应该准备一份文档,解释该脚本的用途及其工作原理。应该提供一个公共知识库来收集有关组织活动的每个自动化脚本的文档。这将为参与该过程的每个萌芽资源奠定基础。这也将有助于消除因缺少任何高级测试自动化工程师而导致的Web应用程序可能遭受的附带损害,或者自动化测试人员打算从您的公司切换到另一家公司。

使用Selenium实现自动化测试时获得最大投资回报的操作项目

到目前为止,我们已经意识到了常见的错误,即使用Selenium在测试自动化上计算ROI的指标。接下来是什么?执行部分。使用Selenium在测试自动化上获得最大投资回报的最佳方法是什么?好了,这里有一些值得注意的可行见解,可以帮助您从测试自动化中获得最大的收益。

为新测试用例实现自动化

这是要考虑的非常重要的因素,尤其是当您从手动转换为自动化时。假设您要介绍Selenium WebDriver,以在组织中进行自动跨浏览器测试。

计算需要自动化的测试用例的数量

在此步骤中,检查哪些应该是自动化的,哪些应该保持手动。

不要将每个测试用例都转换为自动化。有些事情只能手动测试。

计算执行您的测试用例的测试人员的小时成本。

如果某些测试人员没有自动化经验,那么也要计算培训成本。

优先考虑自动化新测试用例的过程

我们都知道,回归测试始终被放在首位,尤其是涉及跨不同浏览器的Web应用程序的视觉回归测试以检查其跨浏览器兼容性时。

回归测试主要涉及对旧测试用例的重复执行,以确保某些新添加的功能或增强功能不会引入任何新的或旧的缺陷。随着时间的流逝,当您的Web应用程序在体系结构和功能方面不断增长时,保留回归测试手册的过程将证明是昂贵的。如果您想降低成本,则实施自动视觉回归测试很有意义。

在计算ROI时,假设每个新的测试用例都将很快成为回归测试的一部分。将它们保留为回归测试策略的一部分。

根据复杂性对测试用例进行排序,并在其中自动进行检查。

如前所述,请考虑维护旧测试用例的成本。

跨浏览器和OS的不同测试配置的测试覆盖率接近100%

自动化测试的主要目标是提高应用程序的质量。在计算投资回报率时,您还应该考虑以下事实:浏览网站的方式每天都在增加。市场上有成百上千的浏览器和设备,人们可以在其中查看您的Web应用程序,并且该数目正在定期增长。定义浏览器兼容性测试矩阵。

扩大覆盖率的最佳做法

通过执行烟雾测试,单元测试,回归测试,并注意缺陷泄漏,可以提高环境覆盖率。

单元测试–单元测试在运行Web应用程序的测试阶段时涵盖了最多的数量。当您投资并行测试机制以节省时间时,这总是有意义的。

冒烟测试–将修补程序推送到应用程序中时,并行运行冒烟测试是覆盖测试用例的最佳方法。自动化烟雾测试是每天评估Web应用程序的好方法。

回归测试–在当今的敏捷时代,快速部署需要越来越多的回归测试来测试版本控制。运行并行回归测试可确保每个最新版本都像以前的版本一样完美运行,从而帮助您在短得多的时间内扩展测试范围。

请记住缺陷泄漏–这是在生产周期中发生的错误数量,因为在先前的测试阶段未检测到它们。发生这些情况的原因可能是功能测试覆盖范围较小或测试环境不佳。

尝试使用左移测试方法。这涉及测试人员在应用程序开发之前对其进行验证。一旦完成特定模块的开发,开发人员还可以通过运行单元测试用例来参与其中。核心思想是尽早开始发现错误,最终将降低成本。

找出可重用和冗余测试用例的数量

重复的测试用例是可能导致测试预算增加的重要因素。重新创建您先前用于不同模块的相同测试用例没有任何意义。重用测试用例会导致测试速度提高和测试周期缩短。

计算此费用涉及检查

重复测试用例数

具有重复组件的测试用例

检测和开发所有这些冗余测试用例所需的时间。

计算使用测试用例管理工具的成本

减少冗余的最佳做法

使用测试用例管理工具查找重复的脚本。您可以使用这些工具来存储带有自定义字段的测试,然后可以根据您的要求对其进行个性化设置。使用测试用例管理工具将帮助您快速搜索冗余。

您还可以开发模块化测试脚本,以后可以重用。找出经常执行的测试。例如,登录我们的退出功能。为了检查这两个是否完美,您必须测试多种变体。创建一个模块化的测试用例,可用于每次登录和注销变体。

使用云端的Selenium网格执行无忧的自动跨浏览器测试

执行方法围绕着使用Selenium进行测试自动化计算ROI的必要领域。众所周知,Selenium是一个开放源代码测试自动化框架,旨在促进Web应用程序测试。现在,您可以自行在本地使用Selenium进行自动化测试,也可以使用提供Selenium Grid的基于云的工具之一进行自动化测试。

当您通过自己的基础结构使用Selenium执行自动化测试时,在扩展自动化测试套件时,您必须牢记预算。您将如何引入新设备?新的浏览器版本?您现有的计算机还需要大量硬件升级,才能支持Selenium Grid的并行执行。但是,如果要通过云上的Selenium Grid执行测试自动化,则可以随项目需求轻松扩展。

Selenium本身不提供测试报告功能。您可以根据所使用的语言,使用测试自动化框架来提取测试报告。如果您使用的是LambdaTest基于云的Selenium Grid,则可以通过我们的Open Selenium API提取这些报告。

两种方法之间的另一个主要区别在于并行测试。使用在本地计算机上定义的Selenium Grid,您将只能在该本地计算机上安装的浏览器上运行测试用例。但是,如果您使用的是基于云的Selenium Grid(例如LambdaTest),则可以跨多种实际浏览器和浏览器版本进行测试。

ROI计算技术

现在,我们已经涵盖了基础知识,让我们了解用于计算ROI的计算方法。

效率投资回报率

由于自动化测试用例可以全天候运行,因此ROI的计算以天为单位。另一方面,对于手动测试,仅计算测试人员的工作时间,平均为8个小时。构成计算投资回报率基础的公式是

(a)自动化测试脚本开发时间=(每个测试的每小时自动化时间自动化测试案例数量)/ 8

(b)自动化测试脚本执行时间=(每个测试自动化测试执行时间自动化测试案例数量ROI周期)/ 18

(c)自动化测试分析时间=(试验分析时间 ROI的周期)/ 8

(d)自动化测试维护时间=(维修时间ROI的周期)/ 8

(e)手动执行时间=(手动测试执行时间的手动数测试用例*投资回报期)/ 8

注意: ROI的周期是要计算ROI的周数,如果需要手动操作,则除以8。只要完成自动化,就可以除以18。

在效率计算中,主要重点是对组织进行多少有效的自动化测试。金钱因素被认为是次要因素,并非必须包括测试人员的小时计费费率。

降低风险的投资回报率

这涉及独立计算自动化的收益。我们将再次以使用WebDriver进行跨浏览器测试为例,以了解其工作原理。在手动测试期间,整个测试团队过去通常会花费大量时间在多个浏览器上重复运行相同的测试用例。引入自动化之后,他们有很多额外的时间来执行生产性工作,例如设计测试用例,分析应用程序等。总之,降低风险的ROI解决了以前未解决的问题。

随着自动化的实施,测试覆盖率增加。完全取决于手动测试将导致不必要的错误,这些错误可能会在交付后出现。因此导致产品质量降低以及测试效率降低。这种可能的损失被认为是一种风险。投资成本没有变化。仅计算组织可能在没有实施自动化的情况下可能面临的金钱损失。


版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   许多年前,我在一场印象深刻的面试中邂逅了一位年轻人,他的面试表现并不十分抢眼,但他的举动却在我记忆中烙下了深深的印记。面试结束时,他毫不犹豫地添加了我的微信,不同于多数面试者焦急询问结果的心态,他显得异常平静,未曾追问任何关于面试结果的问题。这使我对他产生了特别的关注。  多年以来,尽管我们的联系时断时续,我却能透过朋友圈的点滴动态,感知到他生活的跌宕起伏。情感方面,他曾经炽烈的爱情之火在与恋人的分手后熄灭,职场上,他也像一颗漂流的种子,在多个公司间辗转漂泊,始终未能找到那片适合自己扎根生长的理想土壤。他的薪资待遇始终在平均线附近徘徊,工作内容也局限在较为基础的层级,职位晋升的阶梯在他眼前...
            0 0 31
            分享
          • 1、按严重程度分类:是指bug对软件质量的破坏程度,即此bug的存在将对软件的功能和性能产生什么样的影响。崩溃(Blocker):系统无法正常运行。阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环、导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。严重(Critical):很明显的错误性的bug。系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符模块无法启动或调用,程序重...
            14 13 3717
            分享
          • 您还记得大多数开发人员跳上代码质量潮流之前的情况吗?在那些日子里,熟练地放置main() 方法被认为既敏捷又足以进行测试。kes!从那时起,我们已经走了很长一段路。首先,我非常感谢自动化测试现已成为以质量为中心的代码开发的重要方面。这不是我要感谢的全部。Java?开发人员拥有大量工具,可通过代码指标,静态分析等来衡量代码质量。哎呀,我们甚至设法将重构归为一组便捷的模式!确保您的代码质量要获得与代码质量有关的问题的答案,请访问由Andrew Glover主持的 “代码质量”讨论论坛。所有这些新工具使确保代码质量比以往更加容易,但是您必须知道如何使用它们。在本系列文章中,我将重点介绍确保代码质量的...
            0 0 1778
            分享
          •   对于软件测试行业的伙伴来说,性能测试是一项十分重要的非功能性测试。那么,性能测试的操作流程又是怎样的呢?下面,我和大家分享下自己的经验吧。  性能测试首先要做的是性能需求分析,最好是选择用户操作最频繁的功能并且难度系数不是很高的操作来做性能测试,比如:登陆,搜索等。接着就是来确定性能指标,比如:  事务通过率为100%,90%的事务响应时间不超过5秒,并发用户为1000人,CPU和内存的使用率为70%以下。这些参数指标是需要结合实际的生产环境而制定的。  需求分析做完后,就要开始制定性能测试计划,从而明确具体测试时间,通常在功能稳定后进行。要视具体的情况来选择第几轮回归测试后进行...
            0 0 910
            分享
          • APP测试过程中我们经常需要抓包,通常我们使用fiddler或者Charles。但是jmeter也可以抓包,而且非常好用,闲话不多说,下面进入正题。步骤:1、选择测试计划,添加线程组2、选择工作台,添加HTTP代理服务器3、修改HTTP代理服务器,端口改为8889,目标控制器选择线程组4、查看本地ip,设置手机代理(注意手机需连接wifi,和主机在同一局域网)5、启动HTTP代理服务器,抓取应用宝APP请求6、手机打开应用宝APP,任一点击,所有请求都被jmeter抓取到。当然不是所有请求都是必要的,根据实际需求进行一些过滤。7、最后需要注意的是如果已经抓完APP上所有的请求,记得关闭HTTP...
            0 0 1862
            分享
      • 51testing软件测试圈微信