Model-based testing of breaking changes in Node.js libraries

Anders Møller, Martin Toldam Torp

Research output: Contribution to book/anthology/report/proceedingArticle in proceedingsResearchpeer-review

20 Citations (Scopus)
312 Downloads (Pure)

Abstract

Semantic versioning is widely used by library developers to indicate whether updates contain changes that may break existing clients. Especially for dynamic languages like JavaScript, using semantic versioning correctly is known to be difficult, which often causes program failures and makes client developers reluctant to switch to new library versions. The concept of type regression testing has recently been introduced as an automated mechanism to assist the JavaScript library developers. That mechanism is effective for detecting breaking changes in widely used libraries, but it suffers from scalability limitations that make it slow and also less useful for libraries that do not have many available clients. This paper presents a model-based variant of type regression testing. Instead of comparing API models of a library before and after an update, it finds breaking changes by automatically generating tests from a reusable API model. Experiments show that this new approach significantly improves scalability: it runs faster, and it can find breaking changes in more libraries.

Original languageEnglish
Title of host publicationESEC/FSE 2019 - Proceedings of the 2019 27th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering
EditorsSven Apel, Marlon Dumas, Alessandra Russo, Dietmar Pfahl
Number of pages11
PublisherAssociation for Computing Machinery
Publication dateAug 2019
Pages409-419
ISBN (Electronic)9781450355728
DOIs
Publication statusPublished - Aug 2019
Event27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2019 - Tallinn, Estonia
Duration: 26 Aug 201930 Aug 2019

Conference

Conference27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2019
Country/TerritoryEstonia
CityTallinn
Period26/08/201930/08/2019

Keywords

  • JavaScript
  • Semantic versioning

Fingerprint

Dive into the research topics of 'Model-based testing of breaking changes in Node.js libraries'. Together they form a unique fingerprint.

Cite this