Lune

FSE2024Top-tier venue

Understanding the Impact of APIs Behavioral Breaking Changes on Client Applications

Dhanushka Jayasuriya, Valerio Terragni, Jens Dietrich, Kelly Blincoe

2024Year
8Citations
3Top-tier citations

Abstract

Libraries play a significant role in software development as they provide reusable functionality, which helps expedite the development process. As libraries evolve, they release new versions with optimisations like new functionality, bug fixes, and patches for known security vulnerabilities. To obtain these optimisations, the client applications that depend on these libraries must update to use the latest version. However, this can cause software failures in the clients if the update includes breaking changes. These breaking changes can be divided into syntactic and semantic (behavioral) breaking changes. While there has been considerable research on syntactic breaking changes introduced between library updates and their impact on client projects, there is a notable lack of research regarding behavioral breaking changes introduced during library updates and their impacts on clients. We conducted an empirical analysis to identify the impact behavioral breaking changes have on clients by examining the impact of dependency updates on client test suites. We examined a set of java projects built using Maven, which included 30,548 dependencies under 8,086 Maven artifacts. We automatically updated out-of-date dependencies and ran the client test suites. We found that 2.30% of these updates had behavioral breaking changes that impacted client tests. Our results show that most breaking changes were introduced during a non- Major dependency update, violating the semantic versioning scheme. We further analyzed the effects these behavioral breaking changes have on client tests.We present a taxonomy of effects related to these changes, which we broadly categorize as Test Failures and Test Errors . Our results further indicate that the library developers did not adequately document the exceptions thrown due to precondition violations.

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext 36caf493-e1c1-4853-b15f-4c03f37b74f7

Cited by top-tier papers3

Ask how each one uses it

Builds on7

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines