Client-Specific Compatibility Checking via Knowledge-Guided Discovery

CompCheck

CompCheck is a client-specific library upgrade compatibility checking framework that constructs an offline knowledge base summarizing previously discovered incompatibility issues and uses it to guide the the generation of incompatibility-revealing tests on new clients.

Tool

The CompCheck tool is available here.

Dataset

Below is a list of 758 incompatible client-lib pairs with their error types.

Experiments: APIs

The table shows detailed information about the subjects (APIs) used in the experiments. For each API, we show the following:

Id: The id of the API and its corresponding knowledge in the knowledge base

Incompatible API: The fully qualified name and descriptor of the API

Library: The library of the API, in the format (groupId: artifactId)

(lib, lib'): The version numbers before (lib) and after (lib') the upgrade

CompCheck-Experiment APIs

Experiments: Clients

The table shows information of the client projects we used in the experiments. For each client, we show the following: 

URL: The URL of the repository of the client on GitHub

K: The experimented knowledge ID(s)

KLOC: The number of KLOC of the client

#Stars: The number of stars of the client repository on GitHub

SHA: The commit SHA of the client on which we perform analysis