Client–Library Compatibility Testing with API Interaction Snapshots
This program is tentative and subject to change.
Modern software development heavily relies on third-party libraries to speed up development and improve quality. As libraries evolve, they may break the tacit contract established with their clients by introducing behavioral breaking changes (BBCs) that alter run-time behavior and silently break client applications without being detected at compile time. Traditional regression tests on the client side often fail to detect such BBCs, either due to limited library coverage or weak assertions that do not sufficiently exercise the library’s expected behavior.
To address this issue, we propose a novel approach to client–library compatibility testing that leverages existing client tests in a novel way. Instead of relying on developer-written assertions, we propose to record the actual interactions at the API boundary during the execution of client tests (protocol, input and output values, exceptions, etc.). These sequences of API interactions are stored as snapshots which capture the exact contract expected by a client at a specific point in time. As the library evolves, we compare the original and new snapshots to identify perturbations in the contract, flag potential BBCs, and notify clients.
We implement this technique in our prototype tool Gilesi, a Java framework that automatically instruments library APIs, records snapshots, and compares them. Through a preliminary case study on several client–library pairs with artificially seeded BBCs, we show that Gilesi reliably detects BBCs missed by client test suites.
This program is tentative and subject to change.
Fri 12 SepDisplayed time zone: Auckland, Wellington change
13:30 - 15:00 | Session 15 - Reuse 2NIER Track / Industry Track / Journal First Track / Research Papers Track at Room TBD1 | ||
13:30 15m | AST-Enhanced or AST-Overloaded? The Surprising Impact of Hybrid Graph Representations on Code Clone Detection Research Papers Track Zixian Zhang School of Computer Science, University of Galway, Takfarinas Saber School of Computer Science, University of Galway | ||
13:45 10m | Client–Library Compatibility Testing with API Interaction Snapshots NIER Track Gustave Monce Univ. Bordeaux, Bordeaux INP, CNRS, LaBRI, Thomas Degueule CNRS, Jean-Rémy Falleri Univ. Bordeaux, Bordeaux INP, CNRS, LaBRI. Institut Universitaire de France., Romain Robbes CNRS, LaBRI, University of Bordeaux | ||
13:55 10m | Prompting Matters: Assessing the Effect of Prompting Techniques on LLM-Generated Class Code NIER Track Adam Yuen University of Calgary, John Pangas University of Calgary, Md Mainul Hasan Polash University of Calgary, Ahmad Abdellatif University of Calgary | ||
14:05 10m | From First Use to Final Commit: Studying the Evolution of Multi-CI Service Adoption NIER Track Pre-print | ||
14:15 15m | Automated Recovery of Software Product Lines from Legacy Configurable Codebases Industry Track Tewfik Ziadi University of Doha for Science and Technology (UDST), Karim Ghallab Sorbonne Université - RedFabriQ/Mobioos, Zaak Chalal RedFabriQ/Mobioos | ||
14:30 15m | Integrating Rules and Semantics for LLM-Based C-to-Rust Translation Industry Track Feng Luo Harbin Institute of Technology (Shenzhen), Kexing Ji Harbin Institute of Technology (Shenzhen), Cuiyun Gao Harbin Institute of Technology, Shuzheng Gao Chinese University of Hong Kong, jiafeng Harbin Institute of Technology (Shenzhen), Kui Liu Huawei, Xin Xia Zhejiang University, Michael Lyu The Chinese University of Hong Kong | ||
14:45 15m | Code search engines for the next generation Journal First Track |