摘要
代码补全作为代码生成的关键下游任务,是提升软件开发中开发人员效率最常见且最具影响力的方法之一。随着智能补全工具的不断发展,我们需要一个强大的评估基准,以便在产品之间进行有意义的比较,并指导未来的发展。然而,现有的基准更侧重于粗粒度任务,缺乏类似通用代码生成的工业分析,而没有反映开发人员在现实世界中遇到的场景。此外,这些基准通常依赖于昂贵且耗时的标注,而独立的测试用例无法利用最小的测试来最大程度地理解存储库级别并覆盖代码。为了解决这些局限性,我们首先分析了来自工业代码补全工具的业务数据,并重新定义了评估标准,使其更好地与开发人员在整个编码过程中的意图和期望的补全行为相一致。基于这些见解,我们引入了 Codev-Agent,这是一个基于代理的系统,它可以自动执行存储库爬取,构建执行环境,从现有单元测试中提取动态调用链,并生成新的测试样本以避免数据泄露,确保公平有效的比较。使用 Codev-Agent,我们提出了 Code-Development Benchmark (Codev-Bench),这是一个细粒度、现实世界、存储库级别和以开发人员为中心的评估框架。Codev-Bench 评估代码补全工具是否能够捕捉开发人员的即时意图,并在各种情况下建议合适的代码,为现代软件开发中的代码补全提供更现实的基准。