Uniform TitleImproving software reliability using exception analysis of object oriented programs
NameFu, Chen (author), Ryder, Barbara (chair), Nguyen, Thu (internal member), Martin, Richard (internal member), Frankl, Phyllis (outside member), Rutgers University, Graduate School - New Brunswick,
DescriptionMore applications are designed as server programs, many of which are expected to run 24x7. Ensuring the quality of error handling code is vital to the high availability that are expected from them. However, error handling code is hard to explore, review and test, for the reason that 1) it is scattered all over the system, often not at all organized; 2) it is impossible to trigger during runtime by simply manipulating the program inputs or configurations.
The goal of our research is to provide tools that helps programmers explore, review and test error handling code in a structured way to boost the system availability and maintainability.
The contributions of this thesis are the following:
* Definition of the problem of white box robustness testing for Java-based server applications, including an exception *def-catch*
coverage metric and testing framework.
* A new program analysis that enables the above mentioned testing methodology, which allows compiler-generated instrumentation to guide the fault injection and to record the recovery code exercised. (An injected fault is experienced as a Java exception.) The analysis
(i) identifies the *exception-flow `def-uses'* to be tested in this manner, (ii) determines the kind of fault to be requested at a program point, and (iii) finds appropriate locations for code instrumentation.
* Empirical studies of several variants of the analysis algorithms, which demonstrate increased precision in obtaining good test coverage on a set of server benchmarks. These studies include aggregate accuracy and timing information, with discussions of cases in which
static analysis is difficult.
* A program understanding tool that visualizes discovered *exception-flow `def-use'* links.
* A novel program analysis that discovers semantic relations between the *exception-flow `def-uses'* links and combines them into chains, in order to reveal the propagation path of an exception from its original to its final handler.
* An initial case study of testing exception propagation chains.
NoteIncludes bibliographical references (p. 109-114).
CollectionGraduate School - New Brunswick Electronic Theses and Dissertations
Organization NameRutgers, The State University of New Jersey
RightsThe author owns the copyright to this work.