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
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