NodeRacer: Event Race Detection for Node.js Applications

Andre Takeshi Endo, Anders Møller

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

17 Citations (Scopus)
289 Downloads (Pure)

Abstract

The Node.js platform empowers a huge number of software systems programmed with JavaScript. Node.js employs an asynchronous execution model where event handlers are scheduled nondeterministically, and unexpected races between event handlers often cause malfunctions. Existing techniques for detecting such event races require complex modifications of the Node.js internals, or target only certain kinds of races. This paper presents a new approach, called NODERACER, that detects event races in Node.js applications by selectively postponing events, guided by happens-before relations. The technique is implemented entirely with code instrumentation, without modifications of the Node.js system. Our experimental results give evidence that NODERACER finds event race errors with higher probability than a state-of-the-art fuzzer, and that the use of happens-before relations helps avoiding false positives. Furthermore, we demonstrate that NODERACER produces actionable error reports, and that it can be helpful for detecting test flakiness that is caused by event races.

Original languageEnglish
Title of host publication2020 IEEE 13th International Conference on Software Testing, Verification and Validation, ICST 2020 : Proceedings
Place of publicationPorto
PublisherInstitute of Electrical and Electronics Engineers Inc.
Publication dateOct 2020
Pages120-130
Article number9159075
ISBN (Electronic)9781728157771
DOIs
Publication statusPublished - Oct 2020
Event13th IEEE International Conference on Software Testing, Verification and Validation, ICST 2020 - Porto, Portugal
Duration: 23 Mar 202027 Mar 2020

Conference

Conference13th IEEE International Conference on Software Testing, Verification and Validation, ICST 2020
Country/TerritoryPortugal
CityPorto
Period23/03/202027/03/2020
SeriesProceedings - 2020 IEEE 13th International Conference on Software Testing, Verification and Validation, ICST 2020

Keywords

  • flaky tests
  • JavaScript
  • race conditions

Fingerprint

Dive into the research topics of 'NodeRacer: Event Race Detection for Node.js Applications'. Together they form a unique fingerprint.

Cite this