论文

OpenSIL 固件中 大语言模型 生成的单元测试的库感知双打和迭代修复

Library-Aware Doubles and Iterative Repair for Large Language Model-Generated Unit Tests in OpenSIL Firmware

摘要

验证底层C固件中的更改成本高昂,因为单元测试 (UT) 在严格的构建约束下很脆弱,其中缺少标头、未解析的符号和依赖项不匹配经常会妨碍编译和链接。本研究介绍了由 Advanced Micro Devices (AMD) 维护的开源芯片初始化库 (openSIL) 固件代码库的自动化 UT 创作工作流程,通过 大语言模型 (LLM) 引导的多代理管道减少了手动工作量。该工作流程结合了测试支架的自动生成、库感知的创建或存根、模拟和伪造的重用,以及由构建日志和行覆盖反馈驱动的迭代编译分派修复循环。我们使用编译成功、修复迭代、调度成功和线路覆盖率来评估该方法,并将时间、成本和词元使用作为次要指标。在测试的 76 个函数中,工作流程为 73 个函数生成了可编译的 UT。在没有线路覆盖指导或检索增强的配置中,平均线路覆盖率达到 73.9%。在两种配置下评估的 48 个功能子集上,仅使用行覆盖指导时,平均行覆盖率达到 98.8%,与矢量数据库检索相结合时,平均行覆盖率达到 94.7%。结果表明,自动生成和修复管道可以显着提高 UT 创建效率和受限固件环境的覆盖范围,同时减少手动调试工作。