论文

从静态到动态:使用 MCR-Bench 对现实世界代码审查进行基准测试

From Static to Dynamic: Benchmarking Real-World Code Review with MCR-Bench

模型评测基准与评测资源

摘要

在现实的软件开发中,代码审查通常涉及开发人员和审查人员之间的迭代交互,以提高软件质量,从而使该过程成本高昂且耗时。尽管最近的工作探索了 大语言模型 (LLM) 来进行自动代码审查,但大多数方法都将代码审查过度简化为单轮静态决策任务,这无法捕捉现实审查场景中固有的多轮交互性质和复杂的问题解决过程。为了弥补这一差距,我们推出了 MCR-Bench,这是第一个缺陷状态感知基准测试,专为实际的多轮代码审查而设计。 MCR-Bench涵盖了五种常用的编程语言,由2,269个真实的多轮代码审查任务组成,每个任务都带有细粒度的缺陷信息和跨轮状态标签的注释。 MCR-Bench 中的每个任务都配备了细粒度的缺陷元数据(例如描述、类型、严重性)以及动态状态注释,捕获缺陷在整个多轮过程中的完整演化轨迹。我们通过在主流 LLM 的 MCR-Bench 上进行大量实验,获得了一些发现。 (1)整体能力有限:实验表明主流LLM在缺陷检测和缺陷生命周期状态跟踪方面整体性能有限,随着交互轮数的增加,性能明显下降; (2) 缺陷敏感性能:LLM 的性能在不同缺陷类型和严重级别上差异很大,语义复杂或低显着性缺陷更容易被遗漏; (3) 潜在的故障机制:我们深入的错误分析剖析了误报和漏报的不同驱动因素,揭示了诸如跨轮时间错位和长期记忆不足等关键弱点。