计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-29
在这一期中,我们对大语言模型在软件开发中的跨学科应用的几个工作做简要的介绍。相关内容涵盖软件测试时的问题报告,问题分类,测试生成,和软件测试中的AI应用:
-
大型语言模型在软件项目管理中问题报告分类的应用:文章研究了标签一致性和训练数据大小对自动问题分类的影响,并比较了少量样本学习和微调在更大众包数据集上的性能。
-
大型语言模型在软件工程中问题报告分类和用户验收测试生成的应用:本文提出了利用LLMs自动化两个关键软件工程任务:问题报告分类和测试场景生成,旨在提高开发效率。
-
软件测试中的人工智能:这篇综述文章探讨了AI技术在软件测试中的应用,包括机器学习、遗传算法和神经网络,并讨论了挑战和未来研究方向。
目录
文章目录
- 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-29
- 在这里插入图片描述
- 目录
- 1. AI-Powered Software Testing: The Impact of Large Language Models on Testing Methodologies
- 摘要:
- 内容关键点:
- 2. Large Language Models for Issue Report Classification
- 摘要
- 研究背景
- 问题与挑战
- 如何解决
- 创新点
- 算法模型
- 实验效果
- 结论
- 推荐阅读指数
- 推荐理由:
- 3. Large Language Models in Software Engineering: A Focus on Issue Report Classification and User Acceptance Test Generation
- 摘要
- 研究背景
- 问题与挑战
- 如何解决
- 创新点
- 算法模型
- 实验效果
- 结论
- 推荐阅读指数
- 推荐理由:
- 4. Artificial Intelligence in Software Testing: A Systematic Review
- 摘要
- 研究背景
- 问题与挑战
- 如何解决
- 创新点
- 算法模型
- 结论
- 推荐阅读指数
- 推荐理由:
- 5. AI in Software Testing – Benefits, Approaches, Tools to Look in 2024 [翻译]
- 5.1 什么是AI基础测试?
- 5.2 AI在软件测试中的演变
- 5.3 利用AI在软件测试中的一些益处
- **视觉验证 –**
- **提高准确性 –**
- **更好的测试覆盖率 –**
- **节省时间、金钱和努力 –**
- **更快的上市时间 –**
- **减少缺陷 –**
- 5.4 4个关键的AI驱动测试方法
- 5.5 4个主要类别的AI驱动测试工具
- **差异工具**
- **视觉AI测试工具**
- **声明式工具**
- **自愈工具**
- 5.6 小结
- 5.7 推荐阅读指数
- 后记
1. AI-Powered Software Testing: The Impact of Large Language Models on Testing Methodologies
Publisher: IEEE
Vahit Bayrı; Ece Demirel
摘要:
这篇文章探讨了大语言模型(LLMs)在软件测试中的应用及其对测试方法的影响。文章指出,随着AI技术的发展,LLMs已经成为软件测试领域的一个重要工具,它们通过自动化和智能化的方式提高了测试的效率和质量。
内容关键点:
-
LLMs的应用:LLMs能够理解和生成自然语言,这使得它们在自动化测试案例生成、代码审查、缺陷检测和程序修复等方面具有潜在的应用价值。
-
测试方法的变革:LLMs的引入正在改变传统的软件测试方法。它们可以帮助自动化测试过程,减少人工干预,提高测试覆盖率,并能够更快地响应软件变更。
-
挑战与机遇:尽管LLMs在软件测试中展现出巨大的潜力,但它们也带来了新的挑战,如模型的训练和调优、数据隐私和安全性问题,以及如何与现有的测试框架和工具集成。
-
研究趋势:文章还讨论了当前的研究趋势,包括如何利用LLMs来提高测试的准确性和效率,以及如何克服与LLMs集成相关的技术障碍。
-
未来展望:文章最后提出了未来研究的方向,包括开发新的算法和技术来更好地利用LLMs,以及探索LLMs在软件测试中的新应用场景。
2. Large Language Models for Issue Report Classification
G Colavito, F Lanubile, N Novielli, L Quaranta - 2024
大型语言模型用于问题报告分类
摘要
本文研究了在软件项目管理中,如何有效地进行问题分类。由于问题标签的不一致性可能会对监督分类模型的性能产生负面影响,作者调查了标签一致性和训练数据大小对自动问题分类的影响。首先在手动验证的数据集上评估了少量样本学习方法,并与在更大的众包数据集上进行微调的结果进行了比较。结果表明,当在一致的标签上进行训练和测试时,该方法能够实现更高的准确性。然后,使用GPT-3.5进行了零样本分类的研究,发现其性能与经过微调的监督模型相当,尽管没有进行微调。这表明在标注数据有限时,生成模型可以帮助分类问题。总体而言,研究结果为平衡问题分类中的数据量和质量提供了见解。
研究背景
协作式软件开发涉及复杂的过程和活动,以有效支持软件开发和维护。在此背景下,问题跟踪系统被广泛采用,以管理变更请求(例如错误修复或产品增强)以及来自用户的支持请求,这些系统被视为维护人员有效管理软件演变活动的重要工具。
问题与挑战
- 标签误用: 提交者经常将改进请求与错误混为一谈,反之亦然。
- 数据质量问题: 数据集中的许多问题报告被标记有多个标签,这是噪声的来源。
如何解决
- 少量样本学习: 使用手动验证的训练数据集来训练鲁棒分类器。
- 零样本学习: 使用GPT-3.5模型在没有微调的情况下进行分类。
创新点
- SETFIT模型: 用于少量样本学习的模型,可以在数据有限的情况下进行有效训练。
- GPT-3.5模型: 在没有训练数据的情况下,用于自动问题分类的生成模型。
算法模型
- SETFIT: 基于少量样本学习的模型。
- GPT-3.5: 用于零样本学习的大型语言模型。
实验效果
- SETFIT模型: 在手动标记的测试集上,F1得分为0.8321。
- GPT-3.5模型: 在相同的测试集上,F1得分为0.8155。
结论
研究表明,提高数据质量可以提升问题分类性能。少量样本学习模型SETFIT在手动验证的数据集上表现更好,而GPT-3.5在没有手动标注数据的情况下也能实现与BERT类似的性能。
推荐阅读指数
★★☆☆☆
推荐理由:
这篇文章探讨了在软件工程领域,如何利用大型语言模型来解决实际问题,特别是在数据标注资源有限的情况下。
3. Large Language Models in Software Engineering: A Focus on Issue Report Classification and User Acceptance Test Generation
G De Vito, LLL Starace, S Di Martino, F Ferrucci… - 2024
大型语言模型在软件工程中的应用:关注问题报告分类和用户验收测试生成
摘要
本文探讨了大型语言模型(LLMs)在软件工程中的潜力,特别是在问题报告分类和用户验收测试(UAT)生成这两个关键任务上的应用。问题报告分类的挑战在于准确对错误报告或功能请求进行分类和优先级排序。LLMs旨在开发能够高效分类问题报告的模型,以促进软件开发团队及时响应和解决问题。测试场景生成涉及自动生成测试用例以验证软件功能。在这种情况下,LLMs提供了分析需求文档、用户故事或其他形式的文本输入,以自动生成全面的测试场景,减少测试用例创建中的手动工作。
研究背景
软件工程领域经历了由LLMs带来的范式转变,这些高级的自然语言处理(NLP)模型在理解和生成自然语言文本及源代码方面展现出显著的能力。
问题与挑战
- 问题报告分类: 需要准确分类和优先处理错误报告或功能请求。
- 用户验收测试生成: 需要从需求文档或用户案例中自动生成详尽的测试用例,减少手动测试用例创建的工作量。
如何解决
- 问题报告分类: 利用LLMs进行动态少量样本提示策略,引入更先进的摘要方法来处理超出LLMs上下文大小限制的问题报告。
- 用户验收测试生成: 分析用自然语言描述的需求,利用LLMs将需求转化为详尽的UAT文档。
创新点
- 动态少量样本提示策略: 通过向量数据库选择与当前问题报告更相关的少量样本。
- 利用LLMs生成UAT: 从自然语言描述的需求文档中自动生成测试用例。
算法模型
- 问题报告分类: 利用MapReduce模型进行问题报告的摘要,并使用向量数据库进行相似性搜索以选择相关样本。
- 用户验收测试生成: 使用LLMs,特别是GPT-4,来解释和转换需求文档,生成UAT文档。
实验效果
文章中并未提供具体的实验效果数据,而是提出了评估策略和预期的研究贡献。
结论
本文讨论了利用LLMs解决软件工程中两个重要挑战的潜力:问题报告分类和UAT生成。通过使用向量数据库和LLMs的少量样本学习等先进技术,旨在提高这些关键任务的效率和准确性。
推荐阅读指数
★★★☆☆
推荐理由:
这篇文章为软件工程领域中LLMs的应用提供了深入的见解,并探讨了如何通过自动化关键任务来提高开发效率和产品质量。
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前沿技术。