Type Regression Testing to Detect Breaking Changes in Node.js Libraries
The npm repository contains JavaScript libraries that are used by millions of software developers. Its semantic versioning system relies on the ability to distinguish between breaking and non-breaking changes when libraries are updated. However, the dynamic nature of JavaScript often causes unintended breaking changes to be detected too late, which undermines the robustness of the applications.
We present a novel technique, type regression testing, to automatically determine whether an update of a library implementation affects the types of its public interface, according to how the library is being used by other npm packages. By leveraging available test suites of clients, type regression testing uses a dynamic analysis to learn models of the library interface. Comparing the models before and after an update effectively amplifies the existing tests by revealing changes that may affect the clients.
Experimental results on widely used libraries show that the technique can identify type-related breaking changes with high accuracy. It fully automatically classifies at least 89% of the updates correctly as either major or as minor or patch, and it detects 25 breaking changes among the minor and patch updates.
Thu 19 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:50 - 15:30 | |||
13:50 25mResearch paper | A Characteristic Study of Parameterized Unit Tests in .NET Open Source Projects ECOOP Research Papers Wing Lam University of Illinois at Urbana-Champaign, Siwakorn Srisakaokul University of Illinois at Urbana-Champaign, USA, Blake Bassett University of Illinois at Urbana-Champaign, USA, Peyman Mahdian University of Illinois at Urbana-Champaign, USA, Tao Xie , Pratap Lakshman Microsoft, India, Peli de Halleux Microsoft Research DOI | ||
14:15 25mResearch paper | Learning to Accelerate Symbolic Execution via Code Transformation ECOOP Research Papers Junjie Chen Peking University, Wenxiang Hu Peking University, Lingming Zhang , Dan Hao Peking University, Sarfraz Khurshid University of Texas at Austin, Lu Zhang Peking University DOI | ||
14:40 25mResearch paper | Type Regression Testing to Detect Breaking Changes in Node.js Libraries ECOOP Research Papers Gianluca Mezzetti Aarhus University, Denmark, Anders Møller Aarhus University, Martin Toldam Torp Aarhus University DOI | ||
15:05 25mResearch paper | Targeted Test Generation for Actor Systems ECOOP Research Papers Sihan Li , Farah Hariri University of Illinois at Urbana-Champaign, Gul Agha University of Illinois at Urbana-Champaign, USA DOI |