API Evolution Data Corpus
收藏资源简介:
该数据集包含模拟Java中所有可能的语法API变化的数据,用于评估工具的向后兼容性。数据集包括两个版本的库,每个版本包含数千个包,每个包模拟一个API变化。此外,还提供了一个客户端应用程序来模拟API的使用。
This dataset contains data simulating all possible syntactic API changes in Java, designed to evaluate the backward compatibility of tools. The dataset includes two versions of libraries, each containing thousands of packages, with each package simulating an API change. Additionally, a client application is provided to simulate the usage of the APIs.
数据集概述
数据集目的
本数据集旨在提供一个用于评估工具在处理Java API向后兼容性方面的性能的基准测试数据。
数据集结构
数据集包含两个主要目录:lib-v1 和 lib-v2,分别代表库的两个版本,其中包含模拟API变化的合成“虚拟”API类。此外,client 目录包含一个简单的客户端应用程序,用于模拟API的使用。
数据集使用
用户可以通过运行 ant jar 命令构建数据集,生成三个JAR文件:lib-v1.jar, lib-v2.jar 和 client.jar。数据集可用于基准测试第三方工具或其他实验。
兼容性测试
数据集提供了生成API不兼容性结果的脚本 ./compatibility.sh,该脚本尝试编译并运行客户端应用程序,并生成包含每个API变化及其兼容性类型的CSV文件。
工具基准测试
数据集支持对第三方工具进行基准测试,通过运行 ./benchmark.sh 脚本,可以检查工具发现API变化的能力,并将结果存储在 benchmark.csv 文件中。
测试工具列表
数据集已包含的测试工具包括:
- Clirr
- Japicmp
- Japi checker
- Japitools
- Java API compliance checker
- Jour
- Revapi
- Sigtest
测试结果
数据集提供了不同工具在检测API变化方面的性能结果,具体包括对访问修饰符、数据类型、异常、泛型、继承、成员和其他修饰符的检测准确率。




