LLM推理 单元测试生成 神经符号系统 路径覆盖 C语言测试
摘要

由于高级程序意图与指针运算和手动内存管理的严格语法约束之间存在语义差距,C语言的自动化单元测试生成仍是一个重大挑战。尽管大语言模型(LLMs)具有强大的生成能力,但直接从意图生成代码常常导致代码生成失败,即模型在未充分理解程序结构、约束和语义的情况下提前生成代码,从而产生无法编译的测试用例、幻觉函数签名、分支覆盖率低以及语义无关的断言等问题。本文提出SPARC,一个基于神经符号系统的情景化框架,通过四个阶段解决这一问题:(1)控制流图(CFG)分析,(2)操作映射以将LLM推理锚定在验证过的实用工具中,(3)路径导向的测试合成,(4)使用编译器和运行时反馈的迭代自校正验证循环。我们在59个现实世界和算法主题上评估了SPARC,其行覆盖率比基线方法提高了31.36%,分支覆盖率提高了26.01%,突变得分提高了20.78%,在复杂主题上的表现可与符号执行工具KLEE相媲美。SPARC通过迭代修复保留了94.3%的测试用例,并生成了开发者评分更高的可读性和可维护性代码。通过将LLM推理与程序结构对齐,SPARC为工业级遗留C代码库的测试提供了一条可扩展的路径。

AI 推荐理由

论文核心围绕LLM的推理能力,通过结构化分析和路径生成提升测试生成质量。

论文信息
作者 Jaid Monwar Chowdhury, Chi-An Fu, Reyhaneh Jabbarvand
发布日期 2026-02-18
arXiv ID 2602.16671
相关性评分 9/10 (高度相关)