计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-29(上)+https://developer.aliyun.com/article/1628918
4. Artificial Intelligence in Software Testing: A Systematic Review
Publisher: IEEE
Mahmudul Islam; Farhan Khan; Sabrina Alam; Mahady Hasan
软件测试中的人工智能:系统综述
摘要
这篇文章通过系统地回顾现有的文献,探讨了人工智能(AI)在软件测试中的应用。研究涵盖了多种AI技术,包括机器学习(ML)、遗传算法、神经网络等,以及这些技术如何被用于提高软件测试的效率和有效性。文章还讨论了在软件测试中应用AI技术时面临的挑战,并提出了未来研究的方向。
研究背景
随着软件系统的复杂性不断增加,传统的软件测试方法面临着效率和有效性方面的挑战。AI技术提供了一种潜在的解决方案,可以帮助自动化和优化测试过程。
问题与挑战
- 测试用例的生成和选择: 传统的测试用例设计既耗时又容易出错。
- 测试执行的自动化: 自动化测试执行需要智能决策支持。
- 软件缺陷的检测: 准确地识别软件中的缺陷是一个挑战。
- 测试数据的生成: 生成有效的测试数据是保证测试质量的关键。
如何解决
- 机器学习: 利用机器学习算法自动生成和选择测试用例。
- 遗传算法: 使用遗传算法优化测试用例的选择和测试执行的过程。
- 神经网络: 应用神经网络提高缺陷检测的准确性。
创新点
- 系统综述: 提供了AI在软件测试中应用的全面概述。
- 多技术融合: 探讨了多种AI技术在软件测试中的融合应用。
算法模型
文章综述了多种AI算法在软件测试中的应用,包括:
- 机器学习算法: 用于测试用例生成和选择。
- 遗传算法: 用于测试用例优化。
- 神经网络: 用于缺陷预测和检测。
结论
AI技术在软件测试中的应用提供了提高测试效率和有效性的潜力。尽管存在一些挑战,但未来的研究可能会继续探索AI在软件测试中的新应用。
推荐阅读指数
★★★☆☆
推荐理由:
对于希望了解AI在软件测试中应用的研究人员和实践者来说,这篇文章提供了一个很好的起点。它不仅概述了当前的应用状态,还指出了未来研究的方向。
5. AI in Software Testing – Benefits, Approaches, Tools to Look in 2024 [翻译]
来源: https://www.testingxperts.com/blog/AI-in-Software-Testing
AI在软件测试中的应用 – 2024年值得关注的益处、方法和工具
人工智能(AI)是最新被利用在所有行业和领域的技术。AI继续进入以前仅为人类技能保留的领域,并带来了显著的优势结果。同样,AI也被用于软件测试领域,以简化自动化测试过程并提供更高质量的结果。
根据Grand View Research的数据,2022年AI启用测试的市场规模约为4.147亿美元,预计从2023年到2030年将以18.4%的复合年增长率(CAGR)扩张。
通常,AI在软件测试中的应用将使整个测试过程更快、更清晰、更容易、更节省预算。因此,基于AI的测试将提供一个战略平台,软件测试人员可以利用AI并将测试过程提升到一个新的水平,从而为企业交付更高质量的结果。
测试自动化工具多年来一直支持持续测试过程。但现在,需要更有效的工具和技术,例如在软件和QA测试中嵌入AI,已经成为交付高质量软件和确保优越客户体验的命令。
5.1 什么是AI基础测试?
AI基础测试是一种软件测试技术,其中使用AI和机器学习(ML)算法来有效测试软件产品。AI基础测试的目标是使测试过程更智能、更高效。通过在测试中加入AI和ML,可以应用逻辑推理和解决问题的方法来改进整个测试过程。此外,在此测试方法中,使用AI测试工具来执行测试,这些工具使用数据和算法设计和执行测试,无需任何人为干预。
5.2 AI在软件测试中的演变
过去二十年来,软件测试的范式发生了显著变化。从手动测试到自动化测试,Selenium被认为是最好的自动化测试工具之一,测试之旅一直非常鼓舞人心。然而,在当今快节奏的IT世界中,软件测试领域必须提出创新和经过充分研究的测试方法。因此,AI基础测试的出现已经证明非常有意义。
AI算法可以完全模仿人类智能,ML允许计算机在没有任何人为干预的情况下自动学习。有趣的是,AI和ML涉及开发独特和特定的算法,这些算法可以访问数据,通过提取模式从数据中学习来做出决策,这些预测将有效地用于软件测试。
此外,企业正在转向可以利用AI和ML算法并可以用于有效测试软件的工具。人们也看到,企业从AI基础测试中获得了许多好处,因为它将实现更快的持续测试,完全自动化,无需任何人为干预,并且还能更快地获得投资回报。
5.3 利用AI在软件测试中的一些益处
视觉验证 –
AI具有模式识别和图像识别能力,这些能力共同帮助通过对应用程序进行视觉测试来检测视觉错误。它有助于确保所有视觉元素都能吸引并正常工作。AI可以识别动态UI控件,无论其大小、形状如何,并在像素级别进行分析。
提高准确性 –
在手动测试方法中,特别是在重复任务的情况下,出现人为错误的可能性很高。自动化测试有助于消除这些人为错误。但是,随着AI在自动化测试中的应用,重复任务得到了更有效的处理,结果也被更准确地记录。因此,AI有助于消除微小的错误机会,并提高测试的整体准确性。
更好的测试覆盖率 –
AI测试增加了测试覆盖率,因为它可以无缝地检查文件内容、数据表、内存和内部程序状态。它还有助于确定程序是否按预期工作并提供有效的测试覆盖率。
节省时间、金钱和努力 –
每当源代码发生变化时,就需要重复软件测试。手动操作非常耗时,需要测试人员付出很多努力。但是,通过AI驱动的测试,重复任务得到了适当、快速和有效的处理。
更快的上市时间 –
AI驱动的测试支持持续测试,因此产品发布更快,这有助于企业更早地进入市场。
减少缺陷 –
AI测试有助于早期和快速识别错误,这最终减少了缺陷,使产品对最终用户来说无错误,更可靠。
5.4 4个关键的AI驱动测试方法
差异测试 – 在这种类型的测试中,对差异进行分类并比较每个构建的应用程序版本。
视觉测试 – 视觉测试是一种软件测试技术,通过利用基于图像的学习和屏幕比较来测试应用程序的外观和感觉。
声明式测试 – 它旨在以自然或特定领域的语言指定测试的意图。系统决定如何执行测试。
自愈自动化 – 当UI发生变化时,测试中的元素选择会自动更正。
5.5 4个主要类别的AI驱动测试工具
差异工具
这些工具利用AI和ML算法识别代码相关问题、安全漏洞、回归等问题。这是通过代码扫描、单元测试自动化等实现的。这类工具包括:
1. Launchable:
Launchable基于ML算法,根据过去的运行和测试下的源代码变化预测每个测试失败的可能性。这个工具让用户记录测试套件,以便首先运行可能失败的测试。可以选择这个工具来运行可能失败的动态子集测试,从而将长时间运行的测试套件减少到几分钟。
2. Google OSS-Fuzz:
它是一种模糊测试工具,旨在使常见的开源软件更安全、更稳定、更可靠。这个工具结合了现代模糊测试技术与可扩展和分布式执行。这个工具支持C/C++、Rust、Go和Python代码。
视觉AI测试工具
随着平台数量的不断增长,屏幕尺寸和配置各不相同,对于测试工程师和开发人员来说,有效地测试UI层变得越来越繁琐。此外,随着企业希望提供更好的用户体验,UI层也在不断变化。因此,今天迫切需要有效地测试所有这些UI层变体的视觉AI测试工具。这类工具包括:
1. Applitools:
这是一个由AI驱动的视觉测试和监控平台。它被称为由视觉AI驱动的下一代测试自动化平台。主要功能包括Applitools Eyes,有助于增加测试覆盖率并减少维护。Ultrafast网格有助于跨浏览器和跨设备测试,并加速功能和视觉测试30倍。这个Applitools平台与所有现代测试框架集成,并与许多现有的测试工具如Selenium、Appium、Cypress等一起工作。
2. Percy by BrowserStack:
这是一个全合一的视觉审查平台,具有逐像素差异、响应式差异和快照稳定化等惊人功能。这个工具允许跨浏览器渲染、高速渲染,并具有并行化能力。Percy帮助团队自动化视觉测试。这个Browserstack工具通常用于捕获屏幕截图并将它们与基线进行比较并显示视觉变化。它增加了视觉覆盖率,并帮助团队有信心地部署代码更改。
声明式工具
这些工具旨在提高测试自动化的生产力和稳定性。这些工具利用AI和ML,并在机器人过程自动化(RPA)、自然语言处理(NLP)、基于模型的测试自动化(MBTA)和自主测试方法(AT)方面具有重要能力。这些方法的主要目标是通过智能自动化消除繁琐、错误倾向、重复的任务。这类工具包括:
1. Tricentis:
这是一个AI驱动的下一代自动化测试工具,允许敏捷和DevOps团队快速实现测试自动化目标。它允许团队超越持续测试与AI。它允许自动化软件应用程序的端到端测试。这个工具结合了软件测试的多个方面(测试用例设计、测试自动化、测试数据设计和生成以及分析),从业务角度测试GUI和API。
2. UiPath Test Suite:
这是最新的测试套件,可以用来自动化和集中测试过程,并帮助启动弹性机器人并确保每次自动化的高质量。UiPath测试套件包括UiPath Studio Pro、UiPath测试管理器和UiPath Orchestrator。因此,UiPath测试套件可以用来在UiPath Studio Pro中使用拖放界面自动化测试,使用UiPath测试管理器帮助管理测试,并使用UiPath Orchestrator帮助执行测试。因此,UiPath测试套件正在帮助企业进行360度测试,并正在帮助RPA开发人员构建更多、测试更好、永不修复。
自愈工具
在自动化测试中,存在不稳定、可靠性和维护问题,这是将AI和ML引入测试自动化的主要原因之一。为了克服这些问题,已经开发了自愈工具,这些工具大多基于记录和回放机制,其中主要的ML引擎位于记录脚本的自愈中。这类工具包括:
1. Mabl:
它是为CI/CD构建的领先智能测试自动化平台。Mabl爬行你的应用屏幕并开始运行大多数应用程序常见的默认测试。它还使用ML算法来改进测试执行和缺陷检测。
2. Testim:
这个工具使用AI和ML算法来完全自动化测试
5.6 小结
这篇文章通过系统地回顾现有的文献,探讨了人工智能(AI)在软件测试中的应用。研究涵盖了多种AI技术,包括机器学习(ML)、遗传算法、神经网络等,以及这些技术如何被用于提高软件测试的效率和有效性。文章还讨论了在软件测试中应用AI技术时面临的挑战,并提出了未来研究的方向。
5.7 推荐阅读指数
★★★☆☆
推荐理由: 对于希望了解AI在软件测试中应用的研究人员和实践者来说,这篇文章提供了一个很好的起点。它不仅概述了当前的应用状态,还指出了未来研究的方向。
后记
如果您对我的博客内容感兴趣,欢迎三连击(点赞,关注和评论),我将持续为您带来计算机人工智能前沿技术(尤其是AI相关的大语言模型,深度学习,计算机视觉相关方向)最新学术论文及工程实践方面的内容分享,助力您更快更准更系统地了解 AI前沿技术。