A tool to reduce defects due to dependencies between HTML5, JavaScript and CSS3

Document
Description
One of the most common errors developers make is to provide incorrect string

identifiers across the HTML5-JavaScript-CSS3 stack. The existing literature shows that a

significant percentage of defects observed in real-world codebases belong to this

category. Existing work focuses on semantic static analysis,

One of the most common errors developers make is to provide incorrect string

identifiers across the HTML5-JavaScript-CSS3 stack. The existing literature shows that a

significant percentage of defects observed in real-world codebases belong to this

category. Existing work focuses on semantic static analysis, while this thesis attempts to

tackle the challenges that can be solved using syntactic static analysis. This thesis

proposes a tool for quickly identifying defects at the time of injection due to

dependencies between HTML5, JavaScript, and CSS3, specifically in syntactic errors in

string identifiers. The proposed solution reduces the delta (time) between defect injection

and defect discovery with the use of a dedicated just-in-time syntactic string identifier

resolution tool. The solution focuses on modeling the nature of syntactic dependencies

across the stack, and providing a tool that helps developers discover such dependencies.

This thesis reports on an empirical study of the tool usage by developers in a realistic

scenario, with the focus on defect injection and defect discovery times of defects of this

nature (syntactic errors in string identifiers) with and without the use of the proposed

tool. Further, the tool was validated against a set of real-world codebases to analyze the

significance of these defects.