MigrationBench
收藏github2025-05-16 更新2025-06-03 收录
下载链接:
https://github.com/amazon-science/MigrationBench
下载链接
链接失效反馈官方服务:
资源简介:
MigrationBench是一个大规模代码迁移基准数据集,针对存储库级别,涵盖多种编程语言。当前和初始版本包括截至2025年5月的使用maven构建系统的java 8存储库。
MigrationBench is a large-scale benchmark dataset for code migration, focusing on repository-level scenarios and covering multiple programming languages. The current and initial release includes Java 8 repositories built with the Maven build system as of May 2025.
创建时间:
2025-05-15
原始信息汇总
MigrationBench 数据集概述
1. 数据集简介
- 名称: MigrationBench
- 类型: 代码迁移基准数据集及评估框架
- 编程语言: Java 8(初始版本)
- 构建系统: Maven
- 参考论文: MigrationBench: Repository-Level Code Migration Benchmark from Java 8
2. 数据集组成
2.1 数据集版本
| 索引 | 数据集名称 | 大小 | 说明 |
|---|---|---|---|
| 1 | migration-bench-java-full | 5,102 | 包含测试目录或至少一个测试用例的仓库 |
| 2 | migration-bench-java-selected | 300 | migration-bench-java-full的子集 |
| 3 | migration-bench-java-utg | 4,814 | 单元测试生成数据集,与migration-bench-java-full不相交 |
2.2 许可证
- 所有仓库均来自GitHub,采用
MIT或Apache-2.0许可证
3. 评估框架
3.1 评估标准
- 仓库能够构建并通过所有测试
- 编译类的major版本与目标Java版本一致
- Java 8: 52
- Java 17: 61
- 测试方法在代码迁移后保持不变
- 测试用例数量在迁移后不减少
- 依赖库版本匹配最新主版本(最大迁移要求)
3.2 评估模式
- 单仓库评估模式
- 批量仓库评估模式
4. 相关工具
- SDFeedback: 使用LLM进行代码迁移的基线解决方案
5. 引用
bibtex @misc{liu2025migrationbenchrepositorylevelcodemigration, title={MIGRATION-BENCH: Repository-Level Code Migration Benchmark from Java 8}, author={Linbo Liu and Xinle Liu and Qiang Zhou and Lin Chen and Yihan Liu and Hoan Nguyen and Behrooz Omidvar-Tehrani and Xi Shen and Jun Huan and Omer Tripp and Anoop Deoras}, year={2025}, eprint={2505.09569}, archivePrefix={arXiv}, primaryClass={cs.SE}, url={https://arxiv.org/abs/2505.09569}, }
搜集汇总
数据集介绍

构建方式
在软件工程领域,代码迁移是一项复杂且具有挑战性的任务。MigrationBench数据集的构建采用了严谨的方法论,通过收集GitHub上采用MIT或Apache-2.0许可证的开源Java 8项目,确保了数据的合法性和代表性。研究人员精心筛选了包含测试目录或至少一个测试用例的仓库,构建了包含5,102个项目的完整数据集。同时,通过提取300个项目形成精选子集,并构建了包含4,814个项目的单元测试生成专用数据集,确保了数据集的多样性和针对性。
特点
MigrationBench作为首个专注于仓库级别代码迁移的基准数据集,具有显著的学术价值。该数据集不仅规模庞大,覆盖了5,102个Java 8项目,还提供了精细的分类:完整数据集、精选子集和单元测试生成专用数据集。其独特之处在于建立了全面的评估框架,通过构建成功率、测试方法不变性、测试用例数量非递减性等多维度指标,为代码迁移研究提供了可靠的评估标准。数据集特别关注Java 8到17的长期支持版本迁移,反映了业界的实际需求。
使用方法
使用MigrationBench进行代码迁移评估具有高度的灵活性。研究人员可通过两种模式开展工作:单仓库评估模式适用于深入分析特定项目,而批量评估模式则支持大规模实验。评估过程需要配置Java 17和Maven 3.9.6环境,通过提供的Python脚本执行。用户只需准备包含GitHub仓库URL和git差异文件的JSON配置文件,即可启动评估流程。该框架支持最小迁移和最大迁移两种策略的评估,并能自动验证编译版本号、测试方法不变性等关键指标,为代码迁移研究提供全面的自动化支持。
背景与挑战
背景概述
MigrationBench是由Amazon Science团队于2025年推出的一个大规模代码迁移基准数据集和评估框架,专注于解决Java 8到Java 17等长期支持版本的代码迁移问题。该数据集包含超过5,000个采用Maven构建系统的Java 8仓库,通过构建成功率、测试用例一致性等指标评估迁移效果。作为首个专注于仓库级代码迁移的基准,它为软件工程领域的版本迁移研究提供了重要基础设施,其多维度评估框架显著提升了代码迁移研究的可重复性和标准化程度。
当前挑战
该数据集面临的核心挑战体现在两个方面:在领域问题层面,代码迁移需要解决跨版本API变更、依赖库兼容性等复杂问题,而现有方法难以保证迁移后的功能等效性;在构建过程层面,数据集收集需要处理大规模仓库的构建配置差异、测试覆盖率不均衡等问题,同时评估框架需设计精确的指标来捕捉编译版本、测试行为等细微变化。此外,如何建立可靠的自动化评估流程以处理数千个仓库的异构构建环境,也是构建过程中的主要技术难点。
常用场景
经典使用场景
在软件工程领域,代码迁移是保持项目现代化的重要环节。MigrationBench作为一个专注于Java 8代码迁移的基准数据集,为研究者和开发者提供了一个标准化的评估框架。其经典使用场景包括自动化测试代码迁移后的功能等价性,确保项目在升级到Java 17或其他长期支持版本后仍能保持原有的测试通过率和依赖兼容性。
实际应用
在实际应用中,MigrationBench被广泛用于企业级代码库的迁移验证。开发团队可以利用该数据集测试其迁移工具的效果,确保在升级Java版本时不会引入功能缺陷或性能下降。此外,该数据集还支持依赖库的版本管理,帮助团队选择最优的依赖组合。
衍生相关工作
MigrationBench的发布催生了一系列相关研究,特别是在利用大型语言模型(LLMs)进行自动化代码迁移的领域。例如,SDFeedback项目结合MigrationBench的评估框架,探索了LLMs在代码迁移中的潜力,为未来的自动化迁移工具提供了新的思路和方法。
以上内容由遇见数据集搜集并总结生成



