当听到“人工智能”(AI)时,你会想到什么?

你可能会开始想象科幻电影中的先进的人形机器人或者未来科技,但是,人工智能聊天机器人程序Chat GPT的爆火已经证明,这种“未来主义”技术已经融入了我们的生活。AI已经存在于我们的手机、电视和家庭中,让日常的工作、生活更便利。

在涉及到软件测试时,将人工智能实施到测试计划中可以帮助您提高效率。虽然“测试中的人工智能”这个短语的概念很模糊,可能会引发一些怀疑,但它确实可以提供真正的价值,并简化您的测试工作。

但人工智能到底是什么,它的发展方向是什么,它如何优化软件测试?阅读本篇文章,您能找出答案。

什么是人工智能?

人工智能是一个具有越来越多的自学能力的系统,可以补充人类的认知和行为。它通过理解环境、解决人类问题和执行人类任务来做到这一点。

例如,谷歌地图使用人工智能来监控交通模式,并预测出最佳路线。Netflix(网飞)还使用机器学习(人工智能的一个子集)来为其推荐算法提供动力,该算法用来向您推荐适合您偏好的节目。

像这样的人工智能系统是通过将数据输入智能算法来运行的,这些算法可以通过分析数据中的模式来进行学习和改进。这些算法接收的数据越多,它们对环境的理解和对模式的预测就越好。这些系统还可以训练来执行简单和复杂的任务,具体取决于模式匹配算法。

人工智能会取代我们的工作吗?

很多人越来越担心人工智能会取代自己的工作……接而取代人类主宰这个世界。虽然这可能是一个宏伟的电影情节,但现实并没有这么可怕。由人工智能辅助人类来进行测试仍然是最佳实践,并且在可预见的未来中仍然如此。

test.ai的首席科学家塔里克金(Tariq King)在2022年STAREAST软件测试会议上进行了主题为“Lighting Strikes the Keynotes(被闪电集中的Keynotes)”的演讲,其中谈到了人工智能的未来。金指出,我们最大的问题是存在大量不受信任的不良软件。有这些糟糕的软件在前,人们会担心人工智能只是一种创造更多糟糕软件的有效方式。

但金继续讨论了一个很有前景的替代现实:在这个世界里,生产了大量的优秀软件,而人工智能由测试人员保持稳定。一旦“人工智能革命”发生,我们就可以建立更高质量的软件和人工智能系统,并利用人工智能技术来开发可信任的软件。通过这一切,一个新的测试人员子集将出现,成为监督和支持这些改进的人工智能系统的英雄。

因此,虽然测试的未来将开始改变,但我们的世界还没有变成一部科幻电影。

人工智能如何优化您的测试

在过去的几十年里,软件测试发展迅速。它从手动测试开始,转向早期的自动化测试、敏捷测试,然后是持续测试。现在,它已经达到了人工智能增强的自主测试。

实现自主测试似乎是一个不可能实现的目标,但您可以开始实施人工智能功能,为其奠定基础。人工智能可以通过加速测试创建、扩大测试覆盖率和减少测试维护来优化您的测试。让我们来看一些示例。

对象识别是智能设计的一种形式,它可以识别新对象和更新,将其添加到DOM中,无需手动操作。它还有框架生成功能,可自动扫描应用程序,然后推荐一个测试框架。

业务流程自动化是智能测试执行的一个例子,它有助于将业务工作流程自动化,实现端到端的测试。最后,自我修复是智能测试维护的一种形式,当您的应用程序发生变化或演变时,它会动态地更新你的测试套件。

SmartBear在测试中的人工智能示例

TestComplete是SmartBear的UI测试自动化工具,拥有一个由人工智能驱动的功能,叫做智能质量插件。它具有诸如自我修复测试、光学字符识别(OCR)和基于机器学习的可视化网格识别等智能功能。

自我修复测试可以自动识别由于动态属性引起的意外错误,并推荐更好的替代方案。这可以防止测试失败,但更重要的是,可以节省检查这些错误的时间。OCR能够通过基于文本内容而不是其属性来识别对象,从而帮助您与复杂应用程序上的内容进行交互。

您还可以通过基于机器学习的可视化网格识别提高效率,它可以帮助您根据网格和表格等复杂对象验证数据。它是通过识别表中的数据,并根据基线副本验证其内容来实现这一点的。

未来,TestComplete将寻求引入更高水平的人工智能,来帮助您实现自主测试。它将使用人工智能生成测试用例、运行测试和修改测试用例(即使UI发生变化),所有这些都无需人工参与。

未来已来

虽然,人工智能技术还有很长的路要走,但从Netflix(网飞)推荐到软件测试,它已经开始让我们的生活变得更轻松。如果我们继续努力改进和利用人工智能技术,事情只会变得更好。从现在开始,拥抱人工智能,并成为塑造测试自动化下一阶段的关键一员。

小彩蛋:ChatGPT怎么看待人工智能在自动化测试中的运用?

文章来源:https://smartbear.com/blog/artificial-intelligence-in-test-automation/