
本文的翻译是专门为Python QA工程师课程的学生准备的。
跨浏览器测试正是需要大量工作和时间的测试类型。 在各种浏览器上,不同的操作系统,设备,屏幕分辨率下测试Web应用程序,以评估网络内容对广大受众的呈现是一项艰巨的任务。 特别是如果您手动进行。 使用Selenium进行的自动跨浏览器测试将节省常规活动的时间并减少回归测试时间。 但是,人们不喜欢改变。 如果手动测试在您的组织中很流行,那么当您建议实施测试自动化时,管理层可能会遇到问题。
测试自动化虽然是一项极为有利可图的工作,但其成本可能很高。 这个游戏值得吗? 这是说服高层管理人员时可能会遇到的问题之一。 在开发Web应用程序时,您需要通过使用Selenium进行自动化测试来提供有效的投资回报 (ROI),并强调这种自动化对于Web应用程序的跨浏览器测试的好处,即更快的工作量和更少的人工工作。

在本文中,我们将讨论从Selenium自动化测试自动化评估ROI的各种指标,以及从基础知识开始到高级方法结束的ROI计算方法。
使用Selenium从测试自动化中评估ROI的指标
您和团队成员可以选择特定的指标和度量,以帮助您从头开始对Web应用程序进行自动化测试,从而帮助您使用Selenium分析来自自动化测试的ROI。 绩效可能因组织而异。 怎么了 这是优先事项,因为有各种指标,例如检测到的缺陷(错误)的数量,花费的时间和测试范围,它们直接影响产品的风险,成本,质量和交货时间表。 一些组织可能会优先考虑发现的缺陷数量,因为他们认为缺陷的数量已经转化为质量。 由于质量是他们的根本,因此有些人会有所不同。 您选择什么? 您认为更重要的是:质量还是数量? 您可以在评论中写下您的想法。
好了,现在定义用于使用Selenium通过测试自动化计算ROI的关键指标对您而言至关重要,因为在与高级管理层进行讨论之前,您需要识别它们。

用硒测试自动化领域
众所周知,测试不能完全自动化。 您有多少可以自动进行跨浏览器测试,这是一个难题。 如果决定对Web应用程序实施自动化的跨浏览器测试,则必须决定优先级,即哪些浏览器和操作系统应涵盖测试。 无论如何,您无法涵盖所有情况。 可能的方案总数可以达到数百或数千个测试。 如果您的自动化脚本花费的时间很长,那么这将不可避免地影响您每天花费在测试Web应用程序或网站上的总时间。
简而言之,您必须比较自动化测试用例的总数和可以应用自动化的测试用例的数量。
如果您想减少复杂测试套件的执行时间,可以对Selenium Grid使用并行测试。 这样,您可以一次运行多个测试脚本。 但是,在这里您必须考虑多少个并行或并行会话足以满足给定的需求。 您可以使用并发计算器进行计算 。
改进此指标意味着团队可以快速发现并修复错误,从而通过使用Selenium进行自动化测试可以降低风险并提高投资回报率。
您将节省多少时间?
敏捷的特点是每周和两周冲刺,需求经常变化。 在这种情况下,回归测试的重要性正在增加。 引入自动回归测试将减少进行此类测试所需的时间。 这将增加开发或开发另一个冲刺的时间。 节省时间是每个组织的首要任务,尤其是对于需要快速扩展其Web应用程序的初创公司而言。 在评估自动化测试的投资回报率方面,时间是否是您的兴趣之一?
您的资源带宽
我们知道,使用Selenium进行自动化测试可以帮助您快速将Web应用程序投放市场。 但是,没有组织会喜欢让员工在大多数时间都闲着,等待脚本完成。 ROI的计算需要对团队中每个测试人员所做的工作进行彻底的分析。
资源和工具的投资预算
测试自动化节省了时间和精力。 但是,这意味着在价格上要折衷。 您需要考虑可以花多少预算来维护用于进行自动化测试的工具。
缺陷总数
在每个回归测试周期之后发现的缺陷总数可以使您了解产品的质量以及对该特定产品进行自动测试的效果如何。
为自动化测试找到合适的投资回报率
根据项目生命周期中必须执行的回归周期数,ROI可以取正值。 通常,使用以下公式计算投资回报率:
ROI = ( – ) /
但是,随着Agile和DevOps的出现,经典方法不再有效。 另外,由于手动测试的数量不能与自动测试的数量相同,因此这种测量是不现实的。 在硒的情况下,根据数量从测试自动化计算正确的ROI值不是可取的方法,但仍然可以使用。
缺陷质量
我认为,这是使用Selenium通过测试自动化计算投资回报率时非常重要的指标。 我相信测试自动化的全部目的并不是要消除项目中对手动测试人员的需求。 自动化的含义是在时间紧的情况下减少测试人员进行测试所花费的时间,以便测试人员可以提出更多现成的测试用例。 提高测试用例的质量肯定会有助于改善您的Web应用程序。
通过自动测试计算投资回报率时的常见错误
尽管ROI计算涉及使用简单公式进行的基本计算,但是如果错过一些重要参数,则可能会发生错误。 让我们讨论人们在计算ROI时常犯的一些错误。

来源
您不会完全忽略手动测试,是吗?
最常见的错误之一是仅使用自动测试指标。 手动测试将始终特别重要。 当我们谈论跨浏览器测试时,我们了解到某些场景可以自动化,但是有时您需要与Web应用程序进行实时交互,并手动进行跨浏览器测试。 因为例如视觉缺陷,比运行自动化脚本更容易手动检测。 总是手动检查诸如在各种浏览器中显示时网站外观的吸引力或导航菜单的正确操作之类的事情。 如果您尝试使这种测试自动化,则它们不会增加ROI。 即使您不考虑“体力劳动”,您仍然必须考虑为此分配的时间和金钱。
想象一下大局
在使用Selenium测量来自自动化测试的ROI时,您需要考虑更长的时间。 在短时间内测试特定测试方法对组织的好处并不总是能提供完整的信息。 您应该了解从长远来看它将如何影响组织和团队。 不用花几个月的时间,而考虑3-5年内ROI的变化。 例如,在您的实践中值得左移测试吗? 左移测试是一种从需求收集阶段开始专注于尽快测试的方法。 想法是提前考虑错误并尽早发现它们,因为据信在系统开发生命周期的较晚阶段发现的错误将比在初始阶段发现的错误更为昂贵。
您赞赏组织的功能吗?
您需要使用一堆测试自动化工具来匹配组织的功能。 成功实施自动化测试策略需要产品知识和自动化知识。 您的团队应该对如何使用预期的自动化工具以及应用程序的工作方式有清晰的了解。
测试支持很重要
测试支持是人们在衡量自动化测试投资回报率时往往会忽略的另一个因素。 如果使用Selenium进行自动跨浏览器测试,则在成功实施策略之后,您将需要定期更新和维护测试用例。 随着您添加新页面,扩展或更新Web应用程序的功能,回归集和测试用例的数量将开始增加。 要使这些测试套件长期可用,将需要定期的支持。
缺乏适当的质量文件
这是一个相当普遍的错误,不仅在自动化方面,而且在管理方面。 该文档应反映组织的标准。 测试人员编写测试脚本时,必须准备一份文档,说明脚本的目的及其工作方式。 组织内的每个人都应该可以访问一个公共知识库,并包括组织中使用的每种自动化方案的文档。 这样的知识库将为团队中的任何新手提供可靠的支持。 它还将有助于消除在缺少“高级”项目经理或有价值的测试人员离开另一家公司时不可避免地出现的问题。 因此,下次您从测试自动化计算投资回报率时,请务必考虑为内部员工维护一个这样的知识库所需的工作量。
如何使用Selenium通过测试自动化来提高ROI
目前,我们已经意识到了常见的错误,并且知道了通过测试自动化来计算ROI的指标。 接下来呢? 履行。 如何找到使用Selenium从测试自动化中获得最大投资回报率的最佳方法? 好了,这里有一些值得注意的实践可以帮助您充分利用测试自动化。

为新测试实施自动化
这是一个非常重要的因素,尤其是当您从手动测试转到自动测试时。 假设您介绍了在组织中使用Selenium WebDriver进行自动跨浏览器测试的方法。
- 计算需要自动化的测试用例的数量;
-现在检查哪些确实需要自动化,哪些最好手动完成;
-不要以可以自动化的方式更改测试用例! 有些事情需要手动检查。 - 计算测试人员执行测试用例的小时成本;
- 如果某些测试人员没有自动化经验,请计算培训成本。
新测试用例的自动化过程优先级
我们都知道,回归测试始终是优先事项,尤其是在各种浏览器中检查跨浏览器兼容性的Web应用程序的视觉回归测试时。
回归测试主要涉及重新执行旧的测试用例,以确保添加的新功能不会影响旧功能的操作并且不会引起新的错误。 随着时间的流逝,随着Web应用程序在体系结构和功能上的增长,手动跟踪回归测试的进度将证明是昂贵的。 如果要保存,实施自动视觉回归测试很有意义。
- 在计算ROI时,假设每个新测试用例都将很快成为回归测试的一部分。 将它们视为您的回归测试策略的一部分。
- 按复杂性对测试用例进行排序,看看哪些可以自动化。
- 如前所述,请考虑维护旧测试的成本。
在针对浏览器和OS的各种测试配置下,几乎100%的测试覆盖率
测试自动化的主要目标是提高应用程序的质量。 在计算投资回报率时,您还应该考虑到浏览网站的方式每天都在增加。 市场上有成百上千的浏览器和设备,人们可以浏览您的Web应用程序,并且其数量还在不断增长。 为自己定义一个浏览器兼容性矩阵 。
覆盖率建议
您可以通过执行指向错误源的冒烟测试,单元测试和回归测试来增加测试范围。
单元测试。 在测试Web应用程序时,单元测试占测试的最大比例。 使用并行执行机制来节省时间总是很有意义的。
烟雾测试 将修补程序发送到应用程序时,并行运行冒烟测试是覆盖测试用例的最佳方法。 自动化烟雾测试是每天为Web应用程序进行测试的好方法。
回归测试。 在敏捷时代,快速发展需要越来越多的回归测试,尤其是对于版本控制。 进行并行回归测试可确保每个后续组装都将与前一个组装完全相同,从而可以在短得多的时间内进行测试。
请记住有关缺陷泄漏的信息 -由于在测试的较早阶段未检测到事实,因此在生产周期中发生的错误数量。 这可能是由于功能测试范围差或测试环境差而发生的。
尝试使用左移测试方法。 它意味着测试人员参与开发。 开发人员还参与其中,在开发特定模块后执行单元测试。 主要思想是在错误显示出来之前发现错误,并最终降低其成本。
找出重复和冗余测试用例的数量
测试用例的重复是一个重要因素,可能导致测试预算增加。 再次开发您先前已用于另一个模块的那些测试用例是没有意义的。 重用测试用例可以加快测试速度。
成本计算包括:
- 重复测试次数;
- 具有重复组件的测试用例;
- 检测和创建所有这些冗余测试用例所需的时间;
- 使用测试用例管理工具的成本计算。
减少冗余的建议:
- 使用测试用例管理工具查找重复的方案。 您可以使用这些工具来存储带有可变字段的测试,以后可以根据需要对其进行修改。 使用这样的工具将有助于快速检测冗余。
- 您还可以开发模块化测试用例,以备将来重用。 突出显示最常运行的测试。 例如,登录和注销功能。 要检查这些功能的正确操作,您需要进行一定范围的测试。 设计一个模块化的测试用例,可用于登录和注销的许多变体中的每一个。
使用Selenium Grid On-Cloud进行自动跨浏览器测试,不会出现问题
使用Selenium通过测试自动化计算ROI的必要领域围绕执行方法。 众所周知,Selenium是一个开放的测试自动化框架,旨在促进Web应用程序的测试。 您可以在本地使用Selenium或使用Selenium Grid提供的一种云工具进行自动化测试。
在自己的基础架构中使用Selenium进行自动化测试时,需要考虑预算以扩展测试套件。 您将如何引入新设备? 较新的浏览器版本? 为了支持并行执行,您的计算机将需要大量的电源。 但是,如果要在云中使用Selenium Grid进行测试,则可以对其进行扩展以适合您的项目要求。
硒本身不能提供报告工具。 可以使用基于所使用语言的测试自动化框架来获得测试报告。 如果您使用LambdaTest的Selenium Grid,则可以通过我们开放的Selenium API获取报告。
两种方法之间的另一个主要区别是并行测试。 使用本地计算机上的Selenium Grid,只能在此计算机上安装的浏览器中运行测试用例。 但是,如果您使用基于云的Selenium Grid(例如LambdaTest),则可以在超过2000种真实的浏览器及其版本上进行测试。
请记住,如果并行测试未正确执行,则存在缺陷泄漏的风险。 您越早发现错误,就越容易解决。
先进的投资回报率计算方法
现在,我们已经学习了基础知识,是时候讨论用于计算ROI的高级方法了。
有效投资回报率

来源
由于自动化测试用例可以全天运行,因此可以在几天内计算出ROI。 另一方面,对于手动测试,仅考虑测试人员的工作时间,平均每天8小时。 该公式是计算投资回报率的基础:
- (a)开发自动化测试用例的时间=(以小时为单位的一项测试自动化的时间
*
自动化测试用例的数量*
ROI期限)/ 8 - (b)自动测试用例提前期=(每项测试的自动测试提前期
*
自动化测试用例数*
投资回报期)/ 18 - ( c )自动化测试分析时间=(测试分析时间
*
投资回报期)/ 8 - (d)自动测试的服务时间=(服务时间
*
投资回报期)/ 8 - (e)手动执行时间=(手动测试执行时间
*
手动测试案例数*
投资回报期)/ 8
注意:投资回收期(ROI Period)是应计算ROI除以8的周数,发生在考虑了体力劳动的地方。 在使用自动化的任何地方都发生18分频。
在计算有效性时,重点是对组织的自动化测试的有效性。 货币因素被认为是次要的,因此,不必包括测试人员每小时的工资。
投资回报率以降低风险
它应该独立计算自动化的收益。 我们将再次以跨浏览器测试为例,并使用WebDriver了解其工作原理。 在手动测试过程中,整个团队花费了大量时间在多个浏览器中一遍又一遍地做相同的事情。 实施自动化之后,测试人员有很多额外的时间来执行富有成效的工作,例如开发测试用例,分析应用程序等。 简而言之,降低风险的ROI解决了以前从未提出过的问题。
随着自动化技术的引入,测试范围不断扩大。 完全依赖于手动测试将导致不必要的错误,这些错误可能已经在生产中出现。 这将导致产品质量和测试效率下降。 这种可能的损失被认为是一种风险。 投资价值没有变化。 仅计算组织在不实施自动化的情况下可能会遇到的金钱损失。
这只是一个包装! (原始。这是个包装!)
感谢您的阅读,我希望您从Selenium测试自动化中获得了必要的知识和有用的策略,以说服ROI来管理管理。 不要误以为ROI只是手动测试Web应用程序和自动测试所花费的时间和金钱的比较。 有许多因素需要考虑,每个因素都有其自身的优缺点。 此外,无法使用单个公式来计算ROI。 有几种方法,您将需要根据组织和项目的需求来选择所需的方法。 祝您测试顺利!