【论文速读】| 基于大语言模型的模糊测试技术

news/2025/2/22 22:45:48/

图片

本次分享论文为:Large Language Models Based Fuzzing Techniques: A Survey

基本信息

原文作者:Linghan Huang, Peizhou Zhao, Huaming Chen, Lei Ma

作者单位:悉尼大学;东京大学;阿尔伯塔大学

关键词:大语言模型,模糊测试,软件测试,自动化测试

原文链接:

https://arxiv.org/pdf/2402.00350.pdf

开源代码:

https://github.com/EdPuth/LLMs-based-Fuzzer-Survey

论文要点

论文简介:本文系统回顾了将大语言模型(LLMs)与模糊测试技术结合应用于软件测试的方法。研究表明,虽然现有的模糊测试技术还未能实现完全自动化,并且软件漏洞持续演化,但基于LLMs的模糊测试生成表现出显著的优势。此趋势促进了LLMs生成的模糊测试技术更广泛的部署和应用潜力。

研究目的:探索大语言模型在软件测试领域的应用,尤其是如何通过LLMs提高模糊测试的效率和准确性,从而提升软件的可靠性和安全性。

研究贡献:

1.相关文献提出或改进了基于大语言模型(LLM)的模糊测试工具、框架及方法。

2.研究聚焦于LLM环境中的模糊测试方法、概念与框架。

3.研究探讨了模糊测试与LLM概念之间的相互作用,涵盖了理论和方法论的讨论。

4.研究分析了结合LLM进行模糊测试的优势、潜在限制及未来的发展方向。

引言

模糊测试技术在软件安全性领域扮演着越来越重要的角色,因为它能够有效地识别和修复潜在的软件漏洞。随着软件系统的复杂性不断增加,传统的模糊测试方法开始显得力不从心,迫切需要引入新的技术来提升测试的效率和准确性。在这样的背景下,大语言模型(LLMs)的引入为软件测试带来了新的机遇。通过结合LLMs的模糊测试技术,可以利用语言模型生成的数据来进行软件测试,这不仅提高了测试的效率,还增强了对漏洞的识别能力。这种结合LLMs的方法在自动化测试领域展现出了巨大的潜力,尤其是在提高软件测试的自动化程度和扩大测试覆盖范围方面。然而,尽管LLMs结合的模糊测试技术展现出了诸多优势,但它目前还没有实现完全自动化,并且面临着软件漏洞不断进化的挑战。本文对这一技术进行了系统的回顾和分析,探讨了其在软件测试中的应用前景和潜在的发展方向,旨在为软件测试的研究和实践提供有价值的指导和启示。

研究背景

大语言模型(LLMs)的发展极大促进了包括翻译、摘要、信息检索和对话交互在内的复杂语言任务。这些模型之所以强大,关键在于采用了变换器机制(transformers mechanism),这一技术显著增强了处理能力。根据2023年7月的数据,从2019年到2023年,共涌现出75个具有影响力的LLMs,被广泛应用于通用语言处理、医疗、教育、科学、法律和金融等多个领域。这些模型主要分为仅解码器语言模型、仅编码器掩码语言模型以及编码器-解码器语言模型三种类型,特别是仅解码器语言模型在零样本程序合成上的应用尤为突出。自1990年代起,模糊测试技术已广泛应用于通过生成意外的输入以测试软件的可靠性和安全性,成为软件测试不可缺少的部分。随着软件行业的发展,模糊测试的技术和方法持续进化,覆盖率引导的模糊测试成为了新的主流趋势。

模糊测试分析

模糊测试,作为评估软件可靠性和安全性的关键方法,已在众多软件领域得到广泛运用。面对传统模糊测试的限制,研究者开始利用大语言模型(LLMs)以提高测试效率和准确率。对基于LLMs的模糊测试工具的分析表明,这些工具主要依靠优化提示生成(prompt engineering)和种子文件的变异策略来提升测试的性能。性能评估指标包括代码覆盖率、错误检测数量、命中率和变异效率,同时还考虑了执行时间和漏洞检测速度等与时间相关的因素。

图片

AI软件与非AI软件之间在结构和功能方面的差异是显著的:AI软件能够进行自主学习和处理自然语言,而非AI软件主要依靠预设的规则和配置。基于这些差异,针对这两种类型的软件的基于LLMs的模糊测试工具(LLMs-based Fuzzer)在其设计上也呈现出不同。在研究中,一些模糊测试工具专门为AI软件开发,而其他工具则专注于非AI软件。这些工具的开发不仅提升了软件测试流程的自动化程度,而且为提高未来软件的质量和安全性奠定了坚实的基础。

图片

研究论述

相比于传统的模糊测试工具,基于大语言模型(LLMs)的模糊测试工具在API和代码覆盖率、计算效率、复杂错误检测能力以及自动化水平方面表现出显著优势。未来的任务和挑战包括探讨两种类型的基于LLMs的模糊测试工具、预训练数据使用的策略、时间效率、为基于大语言模型的模糊测试定义评估框架,以及如何实现完全自动化的问题。

论文结论

这项调研报告深入探讨了基于大语言模型(LLMs)的模糊测试技术,全面概述了其在AI及非AI软件领域的应用。报告总结了基于LLMs模糊测试工具的架构和理念,并讨论了LLMs如何增强传统模糊测试的性能。相较于传统模糊测试,基于LLMs的方法在提升API和代码覆盖率、识别更复杂错误以及增加测试自动化方面显示出显著优势。因此,LLMs基础上的模糊测试技术在推动软件测试领域进步方面具有极大潜力。这份调研的发现和见解预计将为研究和实践界提供重要资源,引导开发更高效、可靠且自动化的模糊测试方案。

原作者:论文解读智能体

润色:Fancy

校对:小椰风

图片


http://www.ppmy.cn/news/1418084.html

相关文章

VirusTaxo:病毒物种注释

https://github.com/omics-lab/VirusTaxo 安装 git clone https://github.com/omics-lab/VirusTaxo mamba create -n VirusTaxo python3.10 mamba activate VirusTaxo cd VirusTaxo python3 -m venv environment source ./environment/bin/activate pip install -r require…

【数据结构】树与二叉树遍历算法的应用(求叶子节点个数、求树高、复制二叉树、创建二叉树、二叉树存放表达式、交换二叉树每个结点的左右孩子)

目录 求叶子节点个数、求树高、复制二叉树、创建二叉树、二叉树存放表达式、交换二叉树每个结点的左右孩子应用一:统计二叉树中叶子结点个数的算法写法一:使用静态变量写法二:传入 count 作为参数写法三:不使用额外变量 应用二&am…

计算机视觉——基于深度学习检测监控视频发生异常事件的算法实现

1. 简介 视频异常检测(VAD)是一门旨在自动化监控视频分析的技术,其核心目标是利用计算机视觉系统来监测监控摄像头的画面,并自动检测其中的异常或非常规活动。随着监控摄像头在各种场合的广泛应用,人工监视已经变得不…

Python快速获取编程问题答案的方法库之howdoi使用详解

概要 howdoi是一个命令行工具,它提供了一种快速获取编程问题答案的方法,通过搜索和抓取Stack Overflow等网站的内容,直接在终端中显示编程问题的解决方案。 安装 通过pip可以轻松安装howdoi: pip install howdoi特性 快速访问编程解决方案:无需手动浏览Stack Overflow。…

设计模式——迭代器模式15

迭代器模式提供一种方法访问一个容器对象中各个元素&#xff0c;而又不需暴露该对象的内部细节。 设计模式&#xff0c;一定要敲代码理解 抽象迭代器 /*** 迭代抽象* */ public interface Iterator<A> {A next();boolean hasNext(); }迭代器实现 /*** author ggbond*…

程序员副业指南

程序员副业指南 &#x1f31f; 程序员副业指南&#xff1a;如何通过技术项目和在线内容创造额外收入&#xff1f;&#x1f4d8; 正文内容&#x1f680; 个人项目开发&#x1f331; 初步探索**选择项目主题****市场调研** &#x1f6e0; 技术实现**技术栈选择**示例代码&#xf…

红米手机怎么安装charles证书(Redmi K70)

我们到知道通过charles抓Https的包需要给手机安装charles证书才行&#xff0c;正常来说设置代理后&#xff0c;在手机系统浏览器中输入chls.pro/ssl就会下载安装证书。但是&#xff0c;在红米手机上就是下载不下来。 通过如下方法配置&#xff1a; 手机wifi网络配置代理手机浏…

程设练习一 心得

小蒟蒻程设练习一心得~ 文章目录 debug1542 数列题干心得 1549 2的幂次 I题干心得 1583 彩球题干心得 1484 刷油漆题干思路&#xff08;谢大&#xff09;心得 1539 区间题干心得 1576 分段题干心得 1560 平方数题干思路&#xff08;谢大&#xff09;心得 1567 3个矩形与1个正方…