ENVBENCH
收藏arXiv2025-03-19 更新2025-03-20 收录
下载链接:
https://github.com/JetBrains-Research/EnvBench
下载链接
链接失效反馈官方服务:
资源简介:
ENVBENCH是一个针对自动化环境配置任务的综合基准测试。由JetBrains Research创建,该数据集包含了329个Python项目和665个基于JVM(Java、Kotlin)的项目。这些项目被精心挑选,以确保它们代表了真实的环境配置挑战。数据集通过静态分析检查Python中的缺失导入和JVM语言的编译检查来验证环境配置的正确性。该数据集旨在解决自动化软件仓库环境配置的挑战,并为模型调整提供可扩展的基准测试。
提供机构:
JetBrains Research
创建时间:
2025-03-19
搜集汇总
数据集介绍

构建方式
ENVBENCH数据集的构建旨在解决现有环境设置自动化研究中数据集规模小、覆盖范围有限的问题。该数据集涵盖了329个Python项目和665个基于JVM(Java、Kotlin)的项目,重点关注那些具有真实配置挑战的仓库,排除了可以通过简单确定性脚本完全配置的项目。数据集的构建过程包括从GitHub获取符合条件的仓库,并通过静态分析和编译检查来验证环境设置的正确性。具体来说,Python项目通过静态分析工具pyright检查缺失的导入,而JVM项目则通过Gradle或Maven的编译检查来验证配置。此外,数据集还排除了可以通过简单脚本配置的仓库,以确保其挑战性。
特点
ENVBENCH数据集的特点在于其广泛的覆盖范围和真实的配置挑战。数据集不仅涵盖了Python和JVM两种主流技术栈,还通过严格的筛选标准确保了项目的多样性和复杂性。每个项目都经过静态分析或编译检查,确保其配置过程具有实际意义。此外,数据集还提供了两种自动化的评估指标,分别用于Python和JVM项目,确保了评估的客观性和可重复性。这些特点使得ENVBENCH成为一个能够有效评估环境设置自动化方法的基准数据集。
使用方法
ENVBENCH数据集的使用方法主要包括环境设置脚本的生成与评估。用户可以通过克隆目标仓库,并将其输入到环境设置方法中,生成相应的配置脚本。生成的脚本随后在Docker容器中执行,并通过静态分析或编译检查来验证其正确性。数据集提供了两种评估指标:对于Python项目,使用pyright工具检查缺失的导入;对于JVM项目,则通过Gradle或Maven的编译结果来判断配置是否成功。用户可以通过这些指标来评估不同环境设置方法的性能,并进一步优化其自动化配置策略。
背景与挑战
背景概述
ENVBENCH是由JetBrains Research的研究团队于2025年提出的一个基准数据集,旨在评估自动化环境配置方法在软件工程领域的性能。该数据集涵盖了329个Python项目和665个基于JVM(Java、Kotlin)的项目,专注于那些在实际开发中可能遇到的复杂配置挑战。ENVBENCH的创建是为了填补现有研究中缺乏大规模、多样化数据集来评估环境配置自动化工具的空白。通过引入静态分析(Python)和编译检查(JVM)两种自动评估指标,ENVBENCH为研究人员提供了一个系统化的评估平台,推动了自动化环境配置领域的研究进展。
当前挑战
ENVBENCH面临的挑战主要体现在两个方面。首先,环境配置任务的复杂性使得自动化工具难以应对多样化的项目需求。尽管大型语言模型(LLMs)在代码生成和理解方面取得了显著进展,但在处理复杂的依赖管理和系统配置时,仍然表现出较高的错误率。其次,数据集的构建过程中,研究人员需要确保所选项目具有真实的配置挑战,避免过于简单的项目干扰评估结果。为此,ENVBENCH通过排除可通过简单脚本配置的项目,确保了数据集的难度和代表性。然而,这也带来了数据筛选和验证的复杂性,尤其是在处理不同编程语言和构建工具时,如何保持一致的评估标准成为了一个技术难点。
常用场景
经典使用场景
ENVBENCH数据集主要用于评估自动化环境配置方法,特别是在软件工程领域中,帮助研究人员测试和比较不同环境配置策略的有效性。该数据集涵盖了329个Python和665个基于JVM(Java、Kotlin)的代码库,专注于那些在实际应用中可能遇到的复杂配置挑战。通过静态分析和编译检查,ENVBENCH能够验证环境配置的正确性,为自动化工具的开发提供了标准化的评估平台。
实际应用
在实际应用中,ENVBENCH可以用于开发自动化工具,帮助开发人员快速配置复杂的开发环境,减少手动配置的时间和错误。例如,在开源项目的贡献过程中,新贡献者通常需要花费大量时间配置开发环境,而基于ENVBENCH的工具可以显著简化这一过程。此外,该数据集还可以用于持续集成(CI)系统的优化,确保代码库在不同环境中的兼容性和可重复性。
衍生相关工作
ENVBENCH的推出催生了一系列相关研究,特别是在自动化环境配置和LLMs的应用领域。例如,Milliken等人提出的INSTALLAMATIC和Bouzenia与Pradel提出的EXECUTIONAGENT都是基于类似任务的自动化工具。这些工作进一步扩展了ENVBENCH的应用场景,推动了环境配置自动化技术的发展。此外,ENVBENCH还为其他基于代码库的自动化任务(如代码生成、代码编辑等)提供了参考,促进了软件工程领域的整体进步。
以上内容由遇见数据集搜集并总结生成



