一句话:构建包含123个真实Java库升级不兼容案例及可复现测试用例的公开数据集与命令行工具。
现代软件系统依赖第三方库,但库的频繁升级可能导致其与客户端系统之间出现不兼容问题。本文提出 Compsuite,一个包含 123 个真实 Java 客户端-库配对的公开数据集,其中每个配对都因库升级而在客户端引发不兼容问题。Compsuite 为每个不兼容问题关联开发者编写的测试用例,可用于复现该问题;同时提供命令行接口,简化每个问题的执行与验证。用户可以一键检查任意不兼容问题,或逐步复现以进行更细致的调查。该数据集公开可用,并可支持兼容性检查、调试和回归测试选择等软件分析技术。
Modern software systems heavily rely on external libraries developed by third-parties to ensure efficient development. However, frequent library upgrades can lead to compatibility issues between the libraries and their client systems. In this paper, we introduce Compsuite, a dataset that includes 123 real-world Java client-library pairs where upgrading the library causes an incompatibility issue in the corresponding client. Each incompatibility issue in Compsuite is associated with a test case authored by the developers, which can be used to reproduce the issue. The dataset also provides a command-line interface that simplifies the execution and validation of each issue. With this infrastructure, users can perform an inspection of any incompatibility issue with the push of a button, or reproduce an issue step-by-step for a more detailed investigation. We make Compsuite publicly available to promote open science. We believe that various software analysis techniques, such as compatibility checking, debugging, and regression test selection, can benefit from Compsuite. The demonstration video of Compsuite is available at https://www.youtube.com/watch?v=7DQGsGs_65s.