Automated Testing Techniques for Event-Driven and Dynamically Typed Software Applications

Research output: Book/anthology/dissertation/reportPh.D. thesisResearch

Documents

    Christoffer Quist Adamsen
Software testing is the process of executing a software application on a set of inputs, and determining if the application behaves as intended on these inputs. This thesis focuses on testing techniques for event-driven and dynamically typed applications. This is an important class of software, which includes mobile and web applications, that can be challenging to test thoroughly. When developers test their applications, they face several challenges. In particular, they need to: (i) generate a set of inputs to their application, along with oracles that specify intended behavior, (ii) react to test failures by repairing the application, and (iii) determine when the testing is adequate.

The goal of this thesis is to design new techniques that can help developers in addressing these challenges. The thesis identifies opportunities for improving over state-of-the-art techniques, and proposes new techniques to address each of the challenges. We present a new methodology that extends the error detection capabilities of existing, manually written Android test suites. In the context of JavaScript web applications, we present practical race detectors for detecting AJAX and initialization races, and a technique that can prevent event race errors by restricting the nondeterminism. Finally, we present a notion of test completeness for dynamic languages, along with a hybrid static/dynamic analysis framework that approximates test completeness, and demonstrate the usefulness of test completeness facts. To demonstrate the usefulness of the proposed techniques, they have been implemented in publicly available prototypes, which have been evaluated on real-world software applications.
Translated title of the contributionAutomatiserede Testingteknikker for Event-Drevne og Dynamisk Typede Softwareapplikationer
Original languageEnglish
PublisherAarhus Universitet
Number of pages220
Publication statusPublished - 23 May 2018

See relations at Aarhus University Citationformats

ID: 122935976