前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI在测试自动化中

AI在测试自动化中

作者头像
February
修改2018-11-26 15:17:37
2K0
修改2018-11-26 15:17:37
举报
文章被收录于专栏:技术翻译技术翻译

如今,几乎所有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

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

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 测试自动化的起源与局限
  • 以市场需求为导向的考试创造
  • AI如何影响测试创建
  • AI如何影响测试执行
  • AI如何影响维护
  • AI-Powered测试自动化如何改变企业
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档