This dissertation evaluates the following thesis statement: Program analysis techniques can enable and support the debugging of failures in widely-used applications by (1) capturing, replaying, and, as much as possible, anonymizing failing executions and (2) highlighting subsets of failure-inducing inputs that are likely to be helpful for debugging such failures. To investigate this thesis, I developed techniques for recording, minimizing, and replaying executions captured from users' machines, anonymizing execution recordings, and automatically identifying failure-relevant inputs. I then performed experiments to evaluate the techniques in realistic scenarios using real applications and real failures. The results of these experiments demons...
There are many ways to find bugs in programs. For example, observed input and output values can be c...
This thesis introduces a methodology for determining program locations where faults can easily hide....
With the increasing complexity of today's software, the software development process is becoming hig...
The ubiquitous nature of software demands that software is released without faults. However, softwar...
Debugging a software program constitutes a significant and laborious task for programmers, often con...
With the growing software industry and our dependency on complex software applications, it is vital ...
In this thesis, we present methodologies involving a data structure called the debugging graph where...
Regression testing is the most wide-spread method to ensure the quality of software systems. Wheneve...
When fixing a bug in software, developers must build an understanding or explanation of the bug and ...
Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Compute...
Recent years have seen great advances in software engineering and programming languages, and more an...
The explicit design of the architecture for a software product is a well established part of develop...
Debugging is a significant part of programming. However, a lot of introductory pro- gramming classes...
Thesis (Ph.D.)--University of Washington, 2014This dissertation presents five program analysis techn...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
There are many ways to find bugs in programs. For example, observed input and output values can be c...
This thesis introduces a methodology for determining program locations where faults can easily hide....
With the increasing complexity of today's software, the software development process is becoming hig...
The ubiquitous nature of software demands that software is released without faults. However, softwar...
Debugging a software program constitutes a significant and laborious task for programmers, often con...
With the growing software industry and our dependency on complex software applications, it is vital ...
In this thesis, we present methodologies involving a data structure called the debugging graph where...
Regression testing is the most wide-spread method to ensure the quality of software systems. Wheneve...
When fixing a bug in software, developers must build an understanding or explanation of the bug and ...
Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Compute...
Recent years have seen great advances in software engineering and programming languages, and more an...
The explicit design of the architecture for a software product is a well established part of develop...
Debugging is a significant part of programming. However, a lot of introductory pro- gramming classes...
Thesis (Ph.D.)--University of Washington, 2014This dissertation presents five program analysis techn...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
There are many ways to find bugs in programs. For example, observed input and output values can be c...
This thesis introduces a methodology for determining program locations where faults can easily hide....
With the increasing complexity of today's software, the software development process is becoming hig...