“Automatic Fault Localization for Client-Side JavaScript”, Frolin Ocariza, Guanpeng Li, Karthik Pattabiraman, and Ali Mesbah.
Journal of Software Testing, Verification and Reliability (STVR), 69–88, 2016


JavaScript is a scripting language that plays a prominent role in web applications today. It is dynamic, loosely typed and asynchronous and is extensively used to interact with the Document Object Model (DOM) at runtime. All these characteristics make JavaScript code error-prone; unfortunately, JavaScript fault localization remains a tedious and mainly manual task. Despite these challenges, the problem has received very limited research attention. This paper proposes an automated technique to localize JavaScript faults based on dynamic analysis, tracing and backward slicing of JavaScript code. This technique is capable of handling features of JavaScript code that have traditionally been difficult to analyze, including eval, anonymous functions and minified code. The approach is implemented in an open source tool called AutoFlox, and evaluation results indicate that it is capable of (1) automatically localizing DOM-related JavaScript faults with high accuracy (over 96%) and no false-positives and (2) isolating JavaScript faults in production websites and actual bugs from real-world web applications.


  author = {Ocariza, Frolin and Li, Guanpeng and Pattabiraman, Karthik and Mesbah, Ali},
  title = {Automatic Fault Localization for Client-Side {JavaScript}},
  journal = {Journal of Software Testing, Verification and Reliability (STVR)},
  year = {2016},
  volume = {26},
  number = {1},
  pages = {69--88},
  publisher = {Wiley},
  url = {http://salt.ece.ubc.ca/publications/docs/stvr15-frolin.pdf}