Cross-language program analysis for dynamic web applications

dc.contributor.advisor Suraj C. Kothari
dc.contributor.author Nguyen, Hung
dc.contributor.department Electrical and Computer Engineering
dc.date 2018-08-11T11:53:07.000
dc.date.accessioned 2020-06-30T03:01:09Z
dc.date.available 2020-06-30T03:01:09Z
dc.date.copyright Fri Jan 01 00:00:00 UTC 2016
dc.date.embargo 2001-01-01
dc.date.issued 2016-01-01
dc.description.abstract <p>Web applications have become one of the most important and prevalent types of software. In modern web applications, the display of any web page is usually an interplay of multiple languages and involves code execution at different locations (the server side, the database side, and the client side). These characteristics make it hard to write and maintain web applications. Much of the existing research and tool support often deals with one single language and therefore is still limited in addressing those challenges. To fill in this gap, this dissertation is aimed at developing an infrastructure for cross-language program analysis for dynamic web applications to support creating reliable and robust web applications with higher quality and lower costs. To reach that goal, we have developed the following research components. First, to understand the client-side code that is embedded in the server-side code, we develop an output-oriented symbolic execution engine that approximates all possible outputs of a server-side program. Second, we use variability-aware parsing, a technique recently developed for parsing conditional code in software product lines, to parse those outputs into a compact tree representation (called VarDOM) that represents all possible DOM variants of a web application. Third, we leverage the VarDOM to extract semantic information from the server-side code. Specifically, we develop novel concepts, techniques, and tools (1) to build call graphs for embedded client code in different languages, (2) to compute cross-language program slices, and (3) to compute a novel test coverage criterion called output coverage that aids testers in creating effective test suites for detecting output-related bugs. The results have been demonstrated in a wide range of applications for web programs such as IDE services, fault localization, bug detection, and testing.</p>
dc.format.mimetype application/pdf
dc.identifier archive/lib.dr.iastate.edu/etd/15061/
dc.identifier.articleid 6068
dc.identifier.contextkey 8882601
dc.identifier.doi https://doi.org/10.31274/etd-180810-4664
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath etd/15061
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/29245
dc.language.iso en
dc.source.bitstream archive/lib.dr.iastate.edu/etd/15061/Nguyen_iastate_0097E_15487.pdf|||Fri Jan 14 20:35:08 UTC 2022
dc.subject.disciplines Computer Engineering
dc.subject.keywords Computer Engineering
dc.title Cross-language program analysis for dynamic web applications
dc.type article
dc.type.genre dissertation
dspace.entity.type Publication
relation.isOrgUnitOfPublication a75a044c-d11e-44cd-af4f-dab1d83339ff
thesis.degree.discipline Computer Engineering
thesis.degree.level dissertation
thesis.degree.name Doctor of Philosophy
File
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
Nguyen_iastate_0097E_15487.pdf
Size:
7.64 MB
Format:
Adobe Portable Document Format
Description: