five

API Evolution Data Corpus

收藏
github2018-11-18 更新2024-05-31 收录
下载链接:
https://github.com/jensdietrich/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.
创建时间:
2016-09-19
原始信息汇总

数据集概述

数据集目的

本数据集旨在提供一个用于评估工具在处理Java API向后兼容性方面的性能的基准测试数据。

数据集结构

数据集包含两个主要目录:lib-v1lib-v2,分别代表库的两个版本,其中包含模拟API变化的合成“虚拟”API类。此外,client 目录包含一个简单的客户端应用程序,用于模拟API的使用。

数据集使用

用户可以通过运行 ant jar 命令构建数据集,生成三个JAR文件:lib-v1.jar, lib-v2.jarclient.jar。数据集可用于基准测试第三方工具或其他实验。

兼容性测试

数据集提供了生成API不兼容性结果的脚本 ./compatibility.sh,该脚本尝试编译并运行客户端应用程序,并生成包含每个API变化及其兼容性类型的CSV文件。

工具基准测试

数据集支持对第三方工具进行基准测试,通过运行 ./benchmark.sh 脚本,可以检查工具发现API变化的能力,并将结果存储在 benchmark.csv 文件中。

测试工具列表

数据集已包含的测试工具包括:

  • Clirr
  • Japicmp
  • Japi checker
  • Japitools
  • Java API compliance checker
  • Jour
  • Revapi
  • Sigtest

测试结果

数据集提供了不同工具在检测API变化方面的性能结果,具体包括对访问修饰符、数据类型、异常、泛型、继承、成员和其他修饰符的检测准确率。

搜集汇总
数据集介绍
main_image_url
构建方式
API Evolution Data Corpus是一个模拟Java中API演化的数据集,其构建方式是通过创建两个版本的库,每个版本包含合成的'dummy' API类,这些类在两个版本之间发生了演化。数据集主要由两个目录组成:**lib-v1**和**lib-v2**,分别存储了一个版本及其后续版本的API示例。每个目录下有数千个包,每个包模拟一个API变化,变化体现在包名称上。
特点
该数据集的特点在于它提供了一个针对API向后兼容性评估的测试平台。它不仅包含API的源代码和字节码,还提供了用于生成API不兼容性结果表的脚本,以及用于测试第三方工具性能的基准测试脚本。数据集的结构使得它能够清晰地展示源代码和二进制级别的兼容性变化。
使用方法
使用该数据集,首先需要构建它,通过执行命令`ant jar`来生成三个JAR文件。然后可以使用提供的脚本进行基准测试,如执行`./compatibility.sh`来生成CSV文件,该文件详细列出了每个API变化及其是否源码或二进制兼容。此外,可以通过执行`./benchmark.sh`脚本来测试第三方工具对API变化的检测能力,并将结果保存在`benchmark.csv`文件中。
背景与挑战
背景概述
API Evolution Data Corpus是一个模拟Java中API演化的数据集。该数据集由两个版本的库组成,包含合成的“虚拟”API类,这些类在两个版本之间发生了演化。该数据集的创建旨在解决向后兼容性的评估问题,为相关工具提供测试数据。自创建以来,该数据集已成为评估和比较不同API演化检测工具性能的重要基准,对软件维护和演化领域产生了显著影响。
当前挑战
该数据集在构建和使用过程中面临的挑战主要包括:如何精确模拟真实的API变化,以及如何确保测试数据能够全面覆盖各种可能的API变化类型。此外,对于所解决的领域问题,即评估API向后兼容性工具的性能,挑战在于工具是否能准确检测出所有类型的API变化,包括源码级和二进制级的不兼容变化。
常用场景
经典使用场景
在软件工程领域,API向后兼容性的评估是一项关键任务。API Evolution Data Corpus数据集为此提供了模拟Java API演化的测试数据,其经典使用场景在于作为基准测试,以评估各类工具在检测API变化方面的性能。
解决学术问题
该数据集解决了学术研究中缺乏统一标准来评估API兼容性检测工具的问题。通过提供经过设计的API变化案例,研究者可以准确评测工具的检测效果,从而推动相关技术的进步。
衍生相关工作
基于API Evolution Data Corpus,衍生出了多项相关工作,包括对现有API兼容性检测工具的评估与比较,以及开发新的检测算法和工具,以更好地服务于软件工程实践。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作