AutoFLox: An Automatic Fault Localizer for Client-Side JavaScript

Frolin Ocariza Jr., Karthik Pattabiraman and Ali Mesbah, Proceedings of the IEEE International Conference on Software Testing, Verification and Validation (ICST), 2012 (Acceptance rate: 27%). [ PDF File | Talk ]

Abstract: JavaScript is a scripting language that plays a prominent role in modern web applications today. It is dynamic, loosely typed, and asynchronous. In addition, it is extensively used to interact with the DOM at runtime. All these characteristics make JavaScript error-prone and challenging to debug. JavaScript fault localization is currently a tedious and mainly manual task. Despite these challenges, the problem has received very limited attention from the research community. We propose an automated technique to localize JavaScript faults based on dynamic analysis of the web application, tracing, and backward slicing of JavaScript code. Our fault localization approach is implemented in an open source tool called AUTOFLOX. The results of our empirical evaluation indicate that (1) DOM-related errors are prominent in web applications, i.e., they form at least 79% of reported JavaScript bugs (2) our approach is capable of automatically localizing DOM-related JavaScript errors with a high degree of accuracy (over 90%) and no false-positives, and (3) our approach is capable of isolating JavaScript errors in a production web application, viz., tumblr.