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.
翻译:现代软件系统高度依赖第三方开发的外部库以确保高效开发。然而,频繁的库升级可能导致库与其客户端系统之间的兼容性问题。本文介绍了CompSuite,一个包含123个真实Java客户端-库配对的数据集,其中升级库会导致相应客户端出现不兼容问题。CompSuite中的每个不兼容问题均与开发者编写的测试用例相关联,可用于复现该问题。该数据集还提供了命令行界面,简化了每个问题的执行与验证流程。借助这一基础设施,用户可一键检查任意不兼容问题,或逐步复现问题以进行更详细的调查。我们公开提供CompSuite以促进开放科学。我们相信,各类软件分析技术(如兼容性检查、调试和回归测试选择)均可从CompSuite中受益。