Program analysis to support quality assurance techniques for web applications
Alessandro Orso, William G. J. Halfond · 2010
As web applications occupy an increasingly important role in our day-to-day lives, testing and analysis techniques that ensure that these applications function with a high level of quality are becoming even more essential. However, many software quality assurance techniques are not directly applicable to modern web applications. Certain characteristics, such as the use of HTTP and generated object programs, can make it difficult to identify software abstractions used by traditional quality assurance techniques. More generally, many of these abstractions are implemented differently in web applications, and the lack of techniques to identify them complicates the application of existing quality assurance techniques to web applications. For my dissertation, I developed program analysis techniques for modern web applications and showed that these techniques can be used to improve quality assurance. The first part of my research focused on the development of a suite of program analysis techniques that identifies useful abstractions in web applications. The second part of my research evaluated whether these program analysis techniques can be used to successfully adapt traditional quality assurance techniques to web applications, improve existing web application quality assurance techniques, and develop new techniques focused on web application-specific issues. My work in quality assurance techniques focused on improving three different areas: generating test inputs, verifying interface invocations, and detecting vulnerabilities. My evaluations of the resulting techniques showed that the use of my program analyses resulted in significant improvements in existing quality assurance techniques and facilitated the development of new useful techniques.