自动化测试-自愈技术

       随着人工智能的发展,作为一名软件测试工程师,相信大家都会思考如何把这一前沿技术引入到我们的自动化测试当中,想一万遍不如做一遍。当然靠我小小一名搬砖工是无法做到的,这一点还是有自知之明的。

       自愈(Self-Healing)技术在计算机术语中是指:一种自我修复的管理机制。在软件测试当中我们希望系统可以发现其测试脚本执行中的非预期错误,并在无需人工干预的情况下自行更改,从而将自身恢复到更好的运行状态。    

      传统的自动化测试框架和工具,使用应用程序模型来定义应用程序的组件和对象及其属性。然后使用这些定义来识别和操作应用程序组件。但是应用程序在更新时会经常更改。可能是有意的开发人员变更或者是即时(由应用程序系统或构建过程)发生的。这些变化破坏了我们基于静态定义的传统自动化方式。

        自然语言处理(NLP)和机器学习 (ML) 等智能技术已经发展到测试脚本现在可以“学习”和“适应”的地步;自愈式自动化测试工具使用 AI 和机器学习技术,根据用户界面 (UI) 或应用程序环境的变化,可以自动更新和调整测试过程。

        在运行测试时,它们会扫描应用程序的用户界面以查看是否存在任何对象。然后它们将这些对象与之前为自动化测试生成的应用程序模型进行比较。如果应用程序有任何更改,则有一种技术可以让测试适应并自动更新。这种能力被称为“自我修复”。属性更改是自动感知的,内部脚本在运行时通过自我修复进行自我修复。

我们可以看到,业内已经有一些比较好的实践了,比如Healenium项目。

以Healenium项目为例,看看自动化测试自愈技术是怎么工作的:

假设我们通过id 的方式来定位应用程序界面上的一个按钮,定位器应该是:#button

从上图可以看到,元素可以被正确定位到。Healnium会将正确的定位器保存下来,作为下一次测试执行的基准值。

现在,我们假设开发人员变更了应用程序的UI界面,改变了这个按钮的id属性,从#button变更为#green_button。但是由于某种原因,测试团队没有被通知到有这个变更,所以测试脚本也没有更新。那么当我们再次执行脚本的时候,在尝试使用#button的旧定位器去定位按钮的时候,脚本就会报错,提示 “NoSuchElement”的错误异常。

在这种情况下,使用标准的 Selenium 实现测试将失败,但使用 Healenium 则不会。 Healenium 捕获 NoSuchElement 异常,触发机器学习算法,传递当前页面状态,获取之前成功的定位器路径,比较它们,并生成修复的定位器列表。它采用得分最高的定位器并使用该定位器执行操作。正如我们看到的元素被成功找到并通过了测试。

测试运行后,Healenium 生成报告,其中包含有关修复定位器、屏幕截图和修复成功反馈按钮的所有详细信息。

如果修复成功,我们可以使用 Healenium Idea 插件更新我们的自动化测试代码:插件使用修复定位器寻找修复和更新测试代码。

Healenium 使用一种机器学习算法来分析当前网页的变化:基于权重的最长公共子序列算法。

有兴趣的小伙伴可以尝试一下哦。

  • 45
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值