Affiliation:
1. The University of Texas at Austin
2. Meta Platforms
3. Nanyang Technological University
Abstract
Modern software systems are complex, and they heavily rely on external libraries developed by different teams and organizations. Such systems suffer from higher instability due to incompatibility issues caused by library upgrades. In this article, we address the problem by investigating the impact of a library upgrade on the behaviors of its clients. We developed
CompCheck
, an automated upgrade compatibility checking framework that generates incompatibility-revealing tests based on previous examples.
CompCheck
first establishes an offline knowledge base of incompatibility issues by mining from open source projects and their upgrades. It then discovers incompatibilities for a specific client project, by searching for similar library usages in the knowledge base and generating tests to reveal the problems. We evaluated
CompCheck
on 202 call sites of 37 open source projects and the results show that
CompCheck
successfully revealed incompatibility issues on 76 call sites, 72.7% and 94.9% more than two existing techniques, confirming
CompCheck
’s applicability and effectiveness.
Funder
Ministry of Education, Singapore, under its Academic Research Fund Tier 2
Publisher
Association for Computing Machinery (ACM)
Reference94 articles.
1. Alibaba. 2022. Fastjson. Retrieved February 9 2023 from https://github.com/alibaba/fastjson.
2. A Systematic Evaluation of Static API-Misuse Detectors
3. Apache. 2022. Apache HttpComponents. Retrieved February 9 2023 from https://hc.apache.org.
4. Apache Software Foundation. 2020. Apache Maven Project. Retrieved February 9 2023 from https://maven.apache.org.
5. Internet Archive. 2020. Heritrix. Retrieved February 9 2023 from https://github.com/internetarchive/heritrix3.
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Understanding the Impact of APIs Behavioral Breaking Changes on Client Applications;Proceedings of the ACM on Software Engineering;2024-07-12
2. Diagnosis of package installation incompatibility via knowledge base;Science of Computer Programming;2024-07
3. Comparing Execution Trace Using Merkle- Tree to Detect Backward Incompatibilities;2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER);2024-03-12
4. Compsuite: A Dataset of Java Library Upgrade Incompatibility Issues;2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE);2023-09-11