译者 | 陈峻
审校 | 孙淑娟
近年来,自动化测试已经发生了重大的迭代。它在很大程度上协助QA团队减少了人为错误的可能。虽然目前有许多工具可以被用于自动化测试,但合适的工具一直是自动化测试成败与否的关键。同时,随着人工智能、机器学习和神经网络在各个领域的广泛运用,面向人工智能的自动化测试也需要通过合适的工具,来承担重复性的工作,以节省项目团队宝贵的时间,去执行更加复杂和关键的任务。下面,我将和您深入探讨面向未来的AI自动化测试工具。
什么是人工智能(AI)自动化测试?
AI自动化测试意味着现有的软件自动化测试工具利用人工智能和机器学习,来生成改进的结果,并消除自动化测试所面临的各种常见挑战。
尽管AI自动化测试有助于加快产品生命周期,并提高组织的营收,但是它仍处于初期阶段,需要持续改进,才能满足不同场景下具体而有独立的自动化测试需求。
人工智能如何协助自动化测试?
通常,测试人员需要维护和修改数千个测试用例。AI自动化测试工具则能够通过处理重复性的任务,生成决策所需的相关数据,以及在开发生命周期的早期阶段,检测和纠正发现的问题,在提供透明度的基础上,顺利地加快自动化测试的处理过程。同时,AI还有助于维护自动化的测试套件,简化单元、UI和API的测试。因此,我们可以归纳出如下方面的特点:
- AI测试工具可以在早期检测和修复错误。对于应用中需要更改的地方,AI会使用其智能化的技术,动态修改脚本,以减轻测试人员维护测试用例的各项任务。
- AI自动化工具有助于提高流程的效率和透明度。
- 此类工具还能以更高的准确性和速度,提高测试的输出质量。
总地来说,AI会通过提前生成相关数据,决策、检测和纠正错误,进而有助于授权、执行和维护自动化测试,并提高QA流程的效率。
人工智能在软件自动化测试中的优势
AI能够通过放大机制,来提升测试的能力范围,改变测试设备的工作方式。与传统方法想比,面向AI的自动化测试可以像人类一样学习、适应、执行、改进和决断各类复杂问题,而无需过多人工干预。AI在提高测试效率和克服自动化测试挑战方面所带来的改变是变革性的。它们主要针对的是如下痛点:
专业知识局限性
过去,一些开源的工具和不当的自动化测试工具,往往要求测试人员具备中等以上测试技能,才能创建出自动化的测试套件。但事实上,并非每一位测试人员都具有项目所需的编程技能与背景知识。
持续维护
自动化测试套件必须定期更新其对应产品的补丁和新功能。即使是使用高级的自动化测试工具,也不可避免地需要进行持续维护。例如:重构测试用例是一种常见的UI自动化挑战。它们在被创建并测试没几天后,就需要通过定期维护,来保证其适用性。
测试报告
许多自动化测试工具要么无法提供报告功能(毕竟它们中的大多数都是开源的),要么提供的信息较少,而且没有全面的洞见分析。如果您想添加额外的报告功能,则需要进行自定义的编程、或选用外部插件。
可扩展性
随着自动化测试套件数量的增长,自动化框架需要支持大量的测试,并能够以并行的方式快速地提供测试结果。此外,为了顺利地执行测试,我们也需要对测试进行优先级排序,以实现在不同的设备和配置上执行测试。
可见,要能够满足上述需求,选择合适的自动化测试工具是极富挑战的。因此,我们想到了AI是否能够给予适当的帮助。
面向未来的AI自动化测试工具
在QA团队确定需要选择什么样的AI自动化测试工具之前,他们需要了解此类工具通常能够达到什么样的效果。在此,我为您总结如下:
- 可以执行预测性的自我修复。即,在应用程序迭代时,自动更新测试套件。
- 执行智能化的缺陷捕获(Bug Hunting)。即,通过AI驱动的测试机制,智能地发现错误。该机制可以爬取整个应用程序,检测到问题,并修复它们。
- 通过应用预测性自动扩展和持续适应度函数(fitness functions),来增强应用程序的鲁棒性。
- 不仅仅是单纯的自动化测试,它还能够自动化执行各种端到端测试的业务流程和工作流。
以下是QA团队值得关注的AI自动化工具:
Applitools
- 它是用于可视化UI测试和监控的、值得信赖的AI自动化工具。
- 作为唯一由视觉人工智能(Visual AI)驱动的工具,它可以让机器模仿人眼和大脑,提供识别功能和各种回归。
- 其Applitool Eyes工具只需一行代码,即可分析应用程序的整个屏幕。
- 它利用人工智能和机器学习进行测试维护。其比较算法可以判断应用的变化是有意而为,还是出现了错误。
- 通过与现有的测试进行顺利的集成,它能够减少编写和学习新测试的步骤,并扩展现有的测试。
Testim.io
- Testim是一种端到端的AI测试工具,可用于编写、执行和维护自动化测试,并通过并行运行多个测试,来减少测试从创建到执行的时间。
- 它的优势主要体现在功能测试和UI测试上。
- 它克服了UI中由于频繁更改和发布所导致的构建缓慢和不稳定等测试问题。
- 其智能定位器可以检测到应用中的更改,并按需运行自动化测试。
- 通过与CI/CD工具的无缝集成,它可以提供详细的错误报告,并对失败的测试执行根本性原因分析(root-cause analysis),以便快速采取各项补救措施。
Mabl
- 作为一种领先的AI自动化测试工具,它旨在跨CI/CD创建和运行测试。
- Mabl的Google Chrome扩展,能够帮助开发人员创建无脚本的测试,实现在Firefox上创建和运行测试。
- 它是一个基于云的工具,具有自我修复和可视化测试的功能。
- Mabl使用机器学习算法,来检测代码中的问题或威胁,并能改进测试的执行。
Parasoft SOAtest
- 它是一个API和Web服务相集成的AI自动化工具,提供包括:API测试、WebUI集成、移动测试、负载测试、性能和API安全测试等各种端到端的功能。
- 其直观的界面可自动执行各种API、负载、性能和安全相关的关键问题测试。
- 它能够对变更及其影响提供持续分析,从而简化测试的各项维护任务。
- 其测试技术能够为进一步建模、屏蔽和生成附加数据,提供真实的测试数据。
- 可以直接在浏览器中轻松地协调多通道测试的执行,以实现持续测试。
TestProject
- 该AI测试工具通过缩减测试的设置、维护、以及对接服务器及驱动程序等的麻烦,来简化测试工作。
- 它配备了内置的自动化助手、AI自我修复、以及自适应等待等功能。
- 它带有一个支持AI的无代码测试记录器,可与开源的SDK--Selenium API相兼容。
- 它还带有一个附加的库、特殊的测试报告、仪表板、以及与CI/CD管道的集成。
AccelQ
- 作为一个基于云的无代码AI自动化测试工具,它专注于自动化WebUI、API、桌面和移动端平台。
- 它带有自然英语编程(natural English programming)、智能元素浏览器、自动测试生成、以及自我修复等功能。
- 它能与流行的DevOps工具链很好地集成,以提供完整的QA生命周期的统一性视图。
- 它为开发测试场景、最大化测试覆盖率模型的UI和数据流,提供了预测和路径分析(Predictive and Path analysis)。其中,开源对齐是该工具的另一个显著特征。
Functionize
- 该工具属于AI测试工具的声明性类别。作为一种基于云的自动化测试工具,它使用机器学习和人工智能来创建、验证和维护测试。
- 其由AI驱动的智能代理可以快速创建测试,并使用自然语言,处理基于英语的流程。
- 其SmartFix功能可以轻松地检测到UI的更改和测试上的失败。
TestCraft
- 这是一个AI驱动的回归和连续自动化测试的测试工具。
- 它使用机器学习算法,实现了在应用程序的变更期间,正确地识别出各种Web元素。
- 它使测试人员能够直观地创建基于Selenium的自动化测试,并在多个浏览器和平台上运行这些测试。
- 它的On-the-Fly模式可以在测试场景之外创建测试模型,从而更容易地实现测试步骤的重用。
- 具有一定的自愈能力。
小结
如今,AI早已进入软件测试的领域。各种AI测试工具已经具备了传统的自动化测试所无法涵盖的机器学习与深度学习的能力。虽然它们目前尚无法完全取代人工测试,但是已经可以补充和加速现有的自动化测试需求与进程。
译者介绍
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。
原文标题:Top Powerful AI Test Automation Tools for the Future,作者:Priyanka Charak user avatar