Detecting Breaking Changes in JavaScript APIs

Master Thesis (2017)
Author(s)

J.C.M. Kraaijeveld (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Maurício Aniche – Mentor

C Hauff – Graduation committee member

Alberto Bacchelli – Graduation committee member

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2017 Michel Kraaijeveld
More Info
expand_more
Publication Year
2017
Language
English
Copyright
© 2017 Michel Kraaijeveld
Graduation Date
18-10-2017
Awarding Institution
Delft University of Technology
Programme
['Computer Science']
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

The goal of this thesis is to explore the current possibilities for detecting breaking changes in JavaScript. For this, we propose an approach and show its accuracy by constructing a tool and evaluating it. The evaluation is carried out on 3 chosen JavaScript projects and a total of 3000 consumer packages. For each of the projects, we compute the precision and recall rates. Furthermore, an empirical study is carried out on the 3000 consumer packages to see the effects of breaking changes on developers. The results show that we are able to detect between 43% and 80% of breaking changes. The outcome of the empirical study suggests that breaking changes appear quite often between versions, and even in versions that should not contain them according to the rules for semantic versioning. Additionally, we show the current limitations of our approach and how they can be improved upon in future research.

Files

License info not available