从静态到动态:使用 MCR-Bench 评测真实世界代码审查
From Static to Dynamic: Benchmarking Real-World Code Review with MCR-Bench
精选理由
为多轮代码审查评测提供基准并揭示LLM短板
AI 摘要
在真实的软件开发中,代码审查通常涉及开发者与审查者之间的迭代交互,以提升软件质量,因此这一过程成本高且耗时。尽管近期工作开始探索使用大语言模型(LLMs)进行自动化代码审查,但大多数方法将代码审查过度简化为单轮、静态的决策任务,未能刻画现实审查场景中固有的多轮交互特性和复杂问题求解过程。为弥补这一空白,我们提出 MCR-Bench,这是首个面向真实多轮代码审查的缺陷状态感知基准。MCR-Bench 覆盖五种常用编程语言,共包含 2,269 个真实世界的多轮代码审查任务,每个任务都标注了细粒度的缺陷信息和跨轮次状态标签。MCR-Bench 中的每个任务都配有细粒度的缺陷元数据(如描述、类型、严重程度)以及动态状态标注,从而捕捉缺陷在多轮过程中完整的演化轨迹。我们在 MCR-Bench 上使用主流 LLMs 进行了大量实验,得到若干发现。(1) 整体能力有限:实验表明,主流 LLMs 在缺陷检测和缺陷生命周期状态跟踪方面的整体表现有限,且随着交互轮次增加,性能显著下降;(2) 对缺陷敏感的性能:LLMs 在不同缺陷类型和严重程度上的表现差异很大,语义复杂或显著性较低的缺陷更容易被遗漏;(3) 潜在失效机制:我们的深入错误分析剖析了假阳性和假阴性的不同驱动因素,揭示了跨轮次时间对齐不一致和长程记忆不足等关键弱点。