文章主要内容和创新点
主要内容
本文提出了一种名为FuzzFeed的自动生成最弱前置条件(Weakest Precondition, WP)的方法,该方法结合大语言模型(LLMs)和模糊测试(fuzzing)技术,通过模糊测试引导(Fuzzing Guidance, FG)机制优化LLM生成的候选WP,最终提高WP的正确性和弱性(weakness)。
- 核心背景:最弱前置条件是程序初始状态的最大集合,确保程序终止时满足后置条件,在程序验证、运行时错误检查等领域至关重要。传统方法依赖形式化方法,存在适用范围有限等问题。
- 方法设计:FG包含两个模糊测试阶段——有效性模糊测试(validity-fuzzing)和弱性模糊测试(weakness-fuzzing)。前者验证候选WP的有效性(满足WP的初始状态是否一定满足后置条件),后者验证其弱性(是否覆盖所有满足后置条件的初始状态);测试结果作为反馈,通过修复提示(repair prompts)引导LLM迭代优化WP。
- 实验验证:在四类Java数组程序基准集(Existential、Universal、Sorting、Search)上测试,对比GPT-4o和O4-mini模型在有无FG的表现,结果显示FG能显著提升LLM生成WP的质量,甚至使低成本模型(如GPT-4o)性能接近高成本推理模型(如O4-mini)。