Skip to main content
CenXiv.org
此网站处于试运行阶段,支持我们!
我们衷心感谢所有贡献者的支持。
贡献
赞助
cenxiv logo > cs > arXiv:2507.15892

帮助 | 高级搜索

计算机科学 > 软件工程

arXiv:2507.15892 (cs)
[提交于 2025年7月20日 ]

标题: StaAgent:一种用于测试静态分析器的代理框架

标题: StaAgent: An Agentic Framework for Testing Static Analyzers

Authors:Elijah Nnorom, Md Basim Uddin Ahmed, Jiho Shin, Hung Viet Pham, Song Wang
摘要: 静态分析工具在软件开发生命周期早期识别错误中起着关键作用,但它们的规则实现通常测试不足且容易出现不一致。 为了解决这个问题,我们提出了StaAgent,这是一个代理框架,利用大型语言模型(LLMs)的生成能力来系统地评估静态分析器规则。 StaAgent由四个专业代理组成:种子生成代理,将错误检测规则转换为具体的、引发错误的种子程序;代码验证代理,确保这些种子的正确性;突变生成代理,生成语义等效的突变体;以及分析器评估代理,通过比较静态分析器对种子及其对应突变体的行为进行变形测试。 通过揭示不一致的行为,StaAgent有助于发现规则实现中的缺陷。 这个由LLM驱动的多代理框架提供了一种可扩展和适应性的解决方案,以提高静态分析器的可靠性。 我们在五个最先进的LLMs(CodeL-lama、DeepSeek、Codestral、Qwen和GPT-4o)上对五个广泛使用的静态分析器(SpotBugs、SonarQube、ErrorProne、Infer和PMD)进行了评估。 实验结果表明,我们的方法可以帮助揭示这五个静态分析器最新版本中的64个有问题的规则(即SpotBugs中有28个,SonarQube中有18个,ErrorProne中有6个,Infer中有4个,PMD中有8个)。 此外,64个漏洞中有53个无法被SOTA基线检测到。 我们已将所有漏洞报告给开发人员,其中两个已经修复。另外三个已得到开发人员的确认,其余的正在等待回复。 这些结果证明了我们方法的有效性,并强调了代理式、由LLM驱动的数据合成在推进软件工程方面的前景。
摘要: Static analyzers play a critical role in identifying bugs early in the software development lifecycle, but their rule implementations are often under-tested and prone to inconsistencies. To address this, we propose StaAgent, an agentic framework that harnesses the generative capabilities of Large Language Models (LLMs) to systematically evaluate static analyzer rules. StaAgent comprises four specialized agents: a Seed Generation Agent that translates bug detection rules into concrete, bug-inducing seed programs; a Code Validation Agent that ensures the correctness of these seeds; a Mutation Generation Agent that produces semantically equivalent mutants; and an Analyzer Evaluation Agent that performs metamorphic testing by comparing the static analyzer's behavior on seeds and their corresponding mutants. By revealing inconsistent behaviors, StaAgent helps uncover flaws in rule implementations. This LLM-driven, multi-agent framework offers a scalable and adaptable solution to improve the reliability of static analyzers. We evaluated StaAgent with five state-of-the-art LLMs (CodeL-lama, DeepSeek, Codestral, Qwen, and GPT-4o) across five widely used static analyzers (SpotBugs, SonarQube, ErrorProne, Infer, and PMD). The experimental results show that our approach can help reveal 64 problematic rules in the latest versions of these five static analyzers (i.e., 28 in SpotBugs, 18 in SonarQube, 6 in ErrorProne, 4 in Infer, and 8 in PMD). In addition, 53 out of the 64 bugs cannot be detected by the SOTA baseline. We have reported all the bugs to developers, with two of them already fixed. Three more have been confirmed by developers, while the rest are awaiting response. These results demonstrate the effectiveness of our approach and underscore the promise of agentic, LLM-driven data synthesis to advance software engineering.
主题: 软件工程 (cs.SE)
引用方式: arXiv:2507.15892 [cs.SE]
  (或者 arXiv:2507.15892v1 [cs.SE] 对于此版本)
  https://doi.org/10.48550/arXiv.2507.15892
通过 DataCite 发表的 arXiv DOI

提交历史

来自: Song Wang [查看电子邮件]
[v1] 星期日, 2025 年 7 月 20 日 13:41:02 UTC (1,447 KB)
全文链接:

获取论文:

    查看标题为《》的 PDF
  • 查看中文 PDF
  • 查看 PDF
  • HTML(实验性)
  • TeX 源代码
  • 其他格式
许可图标 查看许可
当前浏览上下文:
cs.SE
< 上一篇   |   下一篇 >
新的 | 最近的 | 2025-07
切换浏览方式为:
cs

参考文献与引用

  • NASA ADS
  • 谷歌学术搜索
  • 语义学者
a 导出 BibTeX 引用 加载中...

BibTeX 格式的引用

×
数据由提供:

收藏

BibSonomy logo Reddit logo

文献和引用工具

文献资源探索 (什么是资源探索?)
连接的论文 (什么是连接的论文?)
Litmaps (什么是 Litmaps?)
scite 智能引用 (什么是智能引用?)

与本文相关的代码,数据和媒体

alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)

演示

复制 (什么是复制?)
Hugging Face Spaces (什么是 Spaces?)
TXYZ.AI (什么是 TXYZ.AI?)

推荐器和搜索工具

影响之花 (什么是影响之花?)
核心推荐器 (什么是核心?)
IArxiv 推荐器 (什么是 IArxiv?)
  • 作者
  • 地点
  • 机构
  • 主题

arXivLabs:与社区合作伙伴的实验项目

arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。

与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。

有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.

这篇论文的哪些作者是支持者? | 禁用 MathJax (什么是 MathJax?)
  • 关于
  • 帮助
  • contact arXivClick here to contact arXiv 联系
  • 订阅 arXiv 邮件列表点击这里订阅 订阅
  • 版权
  • 隐私政策
  • 网络无障碍帮助
  • arXiv 运营状态
    通过...获取状态通知 email 或者 slack

京ICP备2025123034号