如今,几乎所有IT项目都面临着以更快的速度和更准确的方式运营和部署软件和服务的挑战,为项目团队创造了一个无情的高压环境。要求每天都在变化,而且从来没有足够的工程师能够完美地实现这一切。项目团队负担的主要部分是需要持续测试。在本文中,我将探讨通过应用人工智能(AI)来测试自动化所发现的机会。人工智能旨在使企业更加有能力和高效。最好的公司正在使用人工智能来增强客户和客户的互动,而不是消除它们。大数据收集和算法的进步极大地扩展了测试自动化的范围,使非技术团队成员能够定义和扩展测试,其能力和复杂程度与开发人员相当甚至更高。简而言之,AI通过简化创建,执行和维护来改变测试自动化的各个方面,并为企业提供实时可操作的洞察力,直接影响到底线。
12年多以前,我成立了一家咨询公司,为初创公司和企业客户提供服务。当我为我的客户服务并希望简化应用程序更改和部署到实时生产之间的时间时,我发现确保质量和可靠性的需求需要越来越多的资源份额。在单个事件或事务中交互的创新,应用程序组件和协议的组合越来越多。随着时间的推移,我意识到需要更多的东西。然后,在2013年秋天,我看到AI如何塑造测试环境,我为Functionize编写了第一行代码。
测试自动化并不新鲜。2004年Selenium的出现是一项重大进步,使开发人员能够进一步控制质量保证。然而,Selenium和流行的记录/重放框架的挑战对于那些试图在复杂环境中使用记录器的开发人员来说变得很明显,因为用于识别元素的选择器必须随着每次代码更改而不断更新。
自动化测试创建通常仅限于三种方法:手动,脚本语言(一些模块化程度高于其他语言),以及记录/重放工具。每个人都有自己的价值,但他们都以显眼的方式受到限制:
当我开始倾听市场和我们的客户时,很明显,测试创建的不同选项是可取的,但通常不会在同一工具中呈现。使用Functionize,我试图提供传统和新的测试创建模式,所有这些都由AI增强:
在测试自动化中,围绕AI的市场存在很多噪音。下面是一些例子,作为判断AI在测试创建中的存在程度的试金石。
然而,即使是超越传统脚本方法并采用基于图像或视觉的方法的测试自动化框架仍然受到限制。测试创建仍然非常耗时,因为测试人员必须手动选择并拖动所需的元素以进行交互。由于物体识别的像素/图像方法,还存在高度的选择器维护。市场领导者正在努力将AI集成到他们的自动化堆栈中,结果令人困惑的行话将AI定义为Awesome Integrations而非人工智能。
真正的云量级测试执行选项的缺乏表明AI有足够的空间来提高新的生产力。基于运行的节点数,内存和并发测试的数量,Selenium Grid等内部甚至云技术仍然受到执行时间的限制。云计算的整个目的是能够根据工作负载执行应用程序的快速扩展,包括所有执行实例共享的信息。当测试人员寻找大规模执行测试的解决方案时,如果宣称AI正在扩充这些过程,那么应该设置非常高的标准。我们为自己设定了以下验收标准:
快速测试创建仅与执行测试的弹性一样可行。确保测试维护不是部署管道瓶颈的最有效方法是确定测试创建期间实际发生的数据。测试维护的失败点最终解决了创建期间数据建模不足的问题。AI可以在这里帮忙:
承诺在企业级实施AI的企业已经体验到更高的运营效率和更好的产品效果。开发人员正在重新协商他们在敏捷和DevOps策略中的参与,因为智能算法现在能够解决测试自动化中出现的最重复的问题。在CI / CD管道中测试自动化从瓶颈到催化剂的变化时,不仅产品开发得到了显着简化,而且,管理人员还获得了以前无法直接影响底线的商业智能。Functionize与Google Cloud合作,通过金丝雀测试构建高级异常检测,其中一小部分用户用于实际测试新代码。AI用于将这些用户的体验与运行现有代码的用户进行比较。然后可以自动识别异常,并将详细信息传递给开发人员。
原文标题《AI in Test Automation》
作者:Tamas Cser
译者:February
不代表云加社区观点,更多详情请查看原文链接
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。