如果测试团队已经决定要在手动测试操作中增加自动化。这绝对是正确的决定,尤其是如果公司在往敏捷发展的过程中时。
测试从瀑布到敏捷的转变需要迈过很多坎儿。开发人员不可能一下子变得更快又更好。现在每隔两周甚至更短时间都需要执行一次完整的回归测试。如果单纯依赖手动测试根本不可能做到这一点,因此如果发现自己处于这样的情况下,自动化测试就是唯一的选项了。因此,Selenium
测试自动化应运而生,它适应的开发周期和不断迭代的产品。
在开始之前,先澄清几件事情:
本文将提供大部分必要的信息,以便就如何将Selenium
自动化添加到测试流程中做出更英明的决定。
Selenium
测试自动化的车已经发车了,你再不上车就来不及了。
Selenium
自动化框架逐步构建自己的Selenium
自动化框架的步骤:雇用测试开发人员,建立测试团队以及最困难的部分:维护自动化测试。
一个无代码的测试自动化平台,包括内置框架,易于创建,基于Selenium
的自动化测试方案,内置拓展功能,更具弹性的测试和轻量级的维护成本。
建立测试自动化框架是一个单独的开发项目,需要大量精力的投入。这就像拥有另一个开发团队以及团队需要所有的一切。
对于自动化新手来说,测试自动化框架是基础环境,其中,测试流程是用代码编写的。自动化的部分与测试的运行有关,与创建阶段无关。通过自动化用例中每个测试流程都需要进行编程。编写完所有必需的测试流程后,可以通过自动化批量运行所有用例。
对于构建框架,也有两种选择:外包或自建。两种选择并没有什么不同,但是外包省去了寻找和雇用合适的自动化框架专家的麻烦。
PS
:雇用框架专家的独特挑战在于,一旦工作完成,那么其存在的价值就会大大降低。
但是,使用这两种选择时,都需要从头开始构建框架,并使其适合产品的特定需求。
自动化是一个漫长而昂贵的过程。很难给出确切的标准去衡量投入和产出,只能说这两者的平衡通常需要三到六个月的时间,具体取决于操作的复杂性和规模。现在,将月数乘以每月 2-3 个工程师成本得出成本,而外包通常会花费更多。原因:软件测试外包。
由于测试自动化框架需要集成到开发的整个工作流程中,并且不能作为一个独立的单元工作,因此团队需要创建将自动化流程纳入框架的新流程,并定义何时、如何和如果。
通过建立内部测试自动化框架,可以固有地更改公司内部或至少在其开发部门的工作流程。这需要在更多级别上解决,并且需要在整个团队中推广。
由于自动化从根本上改变了测试计划和执行的方式,因此将对开发和发布周期具有广泛且深远的影响。
与上述要点类似,测试需要在整个组织中建立新的BUG
报告流程。如果到目前为止,报告是通过内部系统,如禅道等软件,来完成的,则需要将报告操作集成到Selenium
自动化框架中。通常这有点困难,因为Selenium
没有内置的报告工具,需要测试开发团队自己拓展次功能。
如果公司已经迈入敏捷的DevOps
,则很大可能在不同的开发阶段中,都有多个版本的产品。为了支持敏捷工程,自动化测试必须能够独立测试其中的每一个。
使自动化框架支持多个版本并能够将相关测试分开是另一项繁重的任务,版本管理还需要与环境配置、报告等无缝衔接。
框架全部设置好之后,真正的测试工作便开始了。每个测试流程都需要用代码编写。您在这里有两个选择:
从某种意义上讲,这是所有方面中最具挑战性的部分。在这里,钱不再是万能的。团队需要处理人,
团队的一部分人可能会对新任务感到沮丧,而其他人则被要求提高技能。一些测试人员将展示出真正的编码技巧,而其他测试人员可能会遇到困难。
将手动测试人员转变为初级程序员,这里涉及学习曲线。需要聘请至少一位经验丰富的程序员来带路,并照顾更复杂的测试流程,并检查和修复初级团队的工作。
好消息是,有一个Selenium
的大型社区,大多数人遇到的问题已经有人解决了,并且无偿地热心地分享解决方案。
采取的不同途径是解雇测试团队并雇用测试开发。执行测试自动化的程序员可能过段时间就变身开发了。测试开发可能会成为是程序员的垫脚石。
显然这就是另外一个人力资源的问题,并不擅长也不不多赘述了。
维护是Selenium
测试自动化的主要部分。这在很多方面都是问题的核心,也是许多公司无法提前意识到的问题。许多自动化项目由于维护负担沉重而失败,根本无法处理维护的工作量。这里推荐一篇参考文章:维护 Selenium 测试自动化的最佳实践。
该框架是自动化测试系统的核心,并且支持所有自动化功能。每当测试人员需要新功能时,都需要维护更新框架。
框架需要支持正在测试的任何新功能,因此,框架维护是一项持续的任务。
测试自动化的理想化想法是,可以预先创建(编写代码)测试流程,然后在每次添加新功能,发布新版本等时自动运行它们。测试自动化是回归和连续测试的理想选择。
当新功能出现或更改现有功能时,需要返回并针对该修改相关的测试流程。手动测试非常简单:测试人员可以了解更改并在执行测试时采取相应的改变。但是对于自动化,则需要重新编码涉及特定功能的所有测试流程。
使用内置的SaaS
操作,无需雇用自动化专家来设置框架或将工作外包。也不需要雇用开发人员来维护自动化框架。有了内置框架后,测试工程师可以立即实施和管理测试。
测试平台使用机器学习算法,解决了应用程序中发生的绝大多数更改。这减少了有效维护Selenium
测试流程所需的时间和资源。
生成有关每次运行的详细报告,其中包括屏幕截图和视频,指示需要修复的BUG
以及相关产生的过程甚至原因。
在当今的现实中,当小队团队一起工作并且由技能、目标和偏好的各种资源组成时,需要考虑适当的因素,并结合具体情况,使其在工作中发挥良好作用,来完成新技术的集成。在这种情况下,无代码工具应填补团队中的重要空白,并与现有CI/CD
和其他流程很好地集成在一起,最好不要造成工作重复或额外的工作内容。
无需编码的即时测试流程创建。无需聘用测试开发人员,而测试开发人员的费用要比测试人员高很多。掌握平台的学习曲线非常短。而且另外一个好处就是可以保留现有的熟悉业务和产品的团队。
在运行时绑定元素。智能绑定技术自动为每个元素分配绑定分数,从而最大程度地减少了受损的测试用例的数量。即使Web
应用程序发生更改,使用此绑定机制的自动测试也具有足够的弹性以抵抗破坏。
最后谈谈测试自动化脚本的维护成本。对于任何测试自动化团队来说,这都是最值得关注的问题之一。一次编写脚本,使其随时间跨版本运行,说起来容易做起来难。应用程序在不断变化,被测平台(移动设备/OS版本
、浏览器
)也在不断变化,因此,自动化测试用例需要正确地维护,以确保测试结果的准确和用例的稳定运行。无代码通过元素定位方式的自我修复,测试步骤等以多种方式解决了此类挑战。也可以在基于代码的项目中通过高级的报告和分析以及自动的根本原因分析和其他方法来实现,但是在这种情况下,无代码确实表现得最为出色。例如:Selenium4 IDE 特性:弹性测试、循环和逻辑判断中提到的测试用例的弹性。
无代码自动化并不排斥编码,相反它能够使用任何开源Selenium
代码,并能从 Selenium 社区中受益,而无需雇用测试开发人员避免难以维护的成本。