@inproceedings{5c46c1c954c441a6818a77ee86d7e0ca,
title = "NodeRacer: Event Race Detection for Node.js Applications",
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. ",
keywords = "flaky tests, JavaScript, race conditions",
author = "Endo, {Andre Takeshi} and Anders M{\o}ller",
year = "2020",
month = oct,
doi = "10.1109/ICST46399.2020.00022",
language = "English",
series = "Proceedings - 2020 IEEE 13th International Conference on Software Testing, Verification and Validation, ICST 2020",
pages = "120--130",
booktitle = "2020 IEEE 13th International Conference on Software Testing, Verification and Validation, ICST 2020",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
note = "13th IEEE International Conference on Software Testing, Verification and Validation, ICST 2020 ; Conference date: 23-03-2020 Through 27-03-2020",
}