AI在测试自动化中

如今,几乎所有IT项目都面临着以更快的速度和更准确的方式运营和部署软件和服务的挑战,为项目团队创造了一个无情的高压环境。要求每天都在变化,而且从来没有足够的工程师能够完美地实现这一切。项目团队负担的主要部分是需要持续测试。在本文中,我将探讨通过应用人工智能(AI)来测试自动化所发现的机会。人工智能旨在使企业更加有能力和高效。最好的公司正在使用人工智能来增强客户和客户的互动,而不是消除它们。大数据收集和算法的进步极大地扩展了测试自动化的范围,使非技术团队成员能够定义和扩展测试,其能力和复杂程度与开发人员相当甚至更高。简而言之,AI通过简化创建,执行和维护来改变测试自动化的各个方面,并为企业提供实时可操作的洞察力,直接影响到底线。

背景

12年多以前,我成立了一家咨询公司,为初创公司和企业客户提供服务。当我为我的客户服务并希望简化应用程序更改和部署到实时生产之间的时间时,我发现确保质量和可靠性的需求需要越来越多的资源份额。在单个事件或事务中交互的创新,应用程序组件和协议的组合越来越多。随着时间的推移,我意识到需要更多的东西。然后,在2013年秋天,我看到AI如何塑造测试环境,我为Functionize编写了第一行代码。

测试自动化的起源与局限

测试自动化并不新鲜。2004年Selenium的出现是一项重大进步,使开发人员能够进一步控制质量保证。然而,Selenium和流行的记录/重放框架的挑战对于那些试图在复杂环境中使用记录器的开发人员来说变得很明显,因为用于识别元素的选择器必须随着每次代码更改而不断更新。

以市场需求为导向的考试创造

自动化测试创建通常仅限于三种方法:手动,脚本语言(一些模块化程度高于其他语言),以及记录/重放工具。每个人都有自己的价值,但他们都以显眼的方式受到限制:

  1. 手动测试很慢,并不适用于当今的CI / CD管道,因为它无法与复杂的应用程序一起扩展。
  2. 由于通常需要工程资源,脚本编写很费力,容易出错并且成本高昂。
  3. 记录/重放工具很难捕获复杂的用户工作流程,编辑这些工作流程通常需要重新记录所有内容。

当我开始倾听市场和我们的客户时,很明显,测试创建的不同选项是可取的,但通常不会在同一工具中呈现。使用Functionize,我试图提供传统和新的测试创建模式,所有这些都由AI增强:

  • 只需用简单的英语编写用户旅程或向我们的NLP引擎提交一组有序的测试,该引擎使用AI来分析和建模数据。
  • 训练我们学习应用程序的AI建模器。
  • 使用我们的开发人员模式,支持与机器人兼容的脚本,并自动构建模块化和便携的智能页面对象库。
  • 完全自主的测试创建,可从实时用户数据中分析和生成测试用例。

AI如何影响测试创建

在测试自动化中,围绕AI的市场存在很多噪音。下面是一些例子,作为判断AI在测试创建中的存在程度的试金石。

  • 机器视觉,可自动定位和识别数百个选择器。这需要更广泛的关注和摄取,而不仅仅是HTML和CSS。
  • AI和机器学习连续扫描和分析DOM和应用程序状态以获取有意义的信息,拒绝噪声和无关紧要。
  • 页面对象识别不断自动发生,提高了测试模块性和可扩展性。
  • 通过自然语言处理和高级建模利用AI技术创建完全自主的测试。

然而,即使是超越传统脚本方法并采用基于图像或视觉的方法的测试自动化框架仍然受到限制。测试创建仍然非常耗时,因为测试人员必须手动选择并拖动所需的元素以进行交互。由于物体识别的像素/图像方法,还存在高度的选择器维护。市场领导者正在努力将AI集成到他们的自动化堆栈中,结果令人困惑的行话将AI定义为Awesome Integrations而非人工智能。

AI如何影响测试执行

真正的云量级测试执行选项的缺乏表明AI有足够的空间来提高新的生产力。基于运行的节点数,内存和并发测试的数量,Selenium Grid等内部甚至云技术仍然受到执行时间的限制。云计算的整个目的是能够根据工作负载执行应用程序的快速扩展,包括所有执行实例共享的信息。当测试人员寻找大规模执行测试的解决方案时,如果宣称AI正在扩充这些过程,那么应该设置非常高的标准。我们为自己设定了以下验收标准:

  • 测试应该可以在云中大规模执行,因此每次后续运行和发布都会变得更加高效和可靠。
  • 测试应该可以在全球任何地方,任何设备,任何带宽以及所有类型的环境中执行。
  • 即使最复杂的测试也需要几分钟才能完成 - 而不是几小时,更不用说几天了。

AI如何影响维护

快速测试创建仅与执行测试的弹性一样可行。确保测试维护不是部署管道瓶颈的最有效方法是确定测试创建期间实际发生的数据。测试维护的失败点最终解决了创建期间数据建模不足的问题。AI可以在这里帮忙:

  • 自我维护:通过结合详尽和自主的数据点组合对结果进行建模并进行维护,例如元素的大小,页面上的位置,先前已知的大小和位置,可视化配置,XPath,CSS选择器,和父/子元素。
  • 自我修复测试:根本原因分析突出显示测试失败的所有潜在原因,并提供一键更新的路径。
  • 数据建模:应通过使数百个被评级和排名的数据点识别的元素而不是单个选择器来消除选择器维护。
  • 计算机视觉诊断: AI意味着视觉诊断很容易:识别损坏的测试应该在视觉环境中花费几秒钟,不应该需要通过脚本进行挖掘。诸如此类的应用AI方法可确保您的测试框架了解应用程序独有的结构和组织,从而最大限度地减少人为干预。

AI-Powered测试自动化如何改变企业

承诺在企业级实施AI的企业已经体验到更高的运营效率和更好的产品效果。开发人员正在重新协商他们在敏捷和DevOps策略中的参与,因为智能算法现在能够解决测试自动化中出现的最重复的问题。在CI / CD管道中测试自动化从瓶颈到催化剂的变化时,不仅产品开发得到了显着简化,而且,管理人员还获得了以前无法直接影响底线的商业智能。Functionize与Google Cloud合作,通过金丝雀测试构建高级异常检测,其中一小部分用户用于实际测试新代码。AI用于将这些用户的体验与运行现有代码的用户进行比较。然后可以自动识别异常,并将详细信息传递给开发人员。

原文标题《AI in Test Automation》

作者:Tamas Cser

译者:February

不代表云加社区观点,更多详情请查看原文链接

原文链接:https://dzone.com/articles/ai-in-test-automation

原文作者:Tamas Cser

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

网络即时对战游戏是怎么做到同步运行的?

高实时的互联网游戏设计时都要考虑延时问题,不同类型的游戏会有不同的解决方案。 游戏世界同步,主要分这三种方式: 一、集中式: 即时战略游戏,例如DotA,非常强...

41111

如何在一天内建立物联网应用程序

物联网(IoT)的建立是为了解决现实世界中麻烦的问题,而将物联网技术整合到更广泛的信息生态系统中的过程几乎是同等麻烦的。这就是为什么物联网不是您可以在商店(或其...

4804
来自专栏重庆的技术分享区

IPv6部署如何影响物联网设备的安全性

原文地址:https://internetofthingsagenda.techtarget.com/feature/How-IPv6-deployment-a...

4566
来自专栏黑白安全

社会工程学预防x1

在阅读本文之前,要明白,你的信息或许已经被联不通移不动或者其他网站的安全漏洞泄露了,毕竟黑市上这些东西一大把一大把的。

781
来自专栏安全领域

给道德黑客的十大建议

你是否每天都突破各种防火墙?睡觉都在想着利用漏洞?可以轻而易举入侵加密网站?为了人们的利益而做这些事?如果你对这四个问题的回答都是肯定的,你就是道德黑客——或者...

1482
来自专栏北京马哥教育

25年Linux内核开发经历总结出来的九条经验

原文: 9 lessons from 25 years of Linux kernel development 作者:Greg Kroah-Hartman 翻译...

39711
来自专栏互联网杂技

5个小技巧,用动效提升界面的用户体验就这么简单

动效能讲述故事。和图片不同,动效能够呈现变化的过程,讲述一段简短而有趣的故事,能够同你进行对话:“嘿,你该看这个按钮了”或者“哦耶!你刚刚完成了一个操作!”不过...

3579
来自专栏顶级程序员

合法练习黑客技术?这15个网站也许可以帮到你

来自:FreeBuf.COM(微信号:freebuf) 链接:www.freebuf.com/special/123961.html(点击尾部阅读原文前往)...

58915
来自专栏BestSDK

想用APP创业,那你要明白API的重要性?

每一家初创企业和公司都会有提供给世界的接口。有的接口超级简单,比如Google—你能做的只有搜索;有的复杂一点,比如在Amazon上面买东西—你可以浏览、搜索、...

3219
来自专栏IT大咖说

微信支付大规模前端开发背后,如何用外包解决困境

摘要 业务高速发展离不开各种配套运营系统的高效建设,微信支付也不例外。在前端人力极其匮乏的条件下我们另辟蹊径,大规模引入外包团队协同作业,并且在如何保证效率和质...

4666

扫码关注云+社区

领取腾讯云代金券