event

PhD Defense by Wei Jin

Primary tabs

Ph.D. Dissertation Defense Announcement

 Title: Automated Support for Reproducing and Debugging Field Failures

 Wei Jin

School of Computer ScienceCollege of ComputingGeorgia Institute of Technologyhttp://www.cc.gatech.edu/~wjin6/ 

 Date: Friday, May 1, 2015Time: 1:00pm-3:00pm ETLocation: KACB 2100   Committee:Dr. Alessandro Orso (Advisor, School of Computer Science, Georgia Institute of Technology) Dr. Mayur Naik (School of Computer Science, Georgia Institute of Technology) Dr. Milos Prvulovic (School of Computer Science, Georgia Institute of Technology) Dr. Taesoo Kim (School of Computer Science, Georgia Institute of Technology) Dr. Satish Chandra (Samsung Electronics)     Abstract: Software testing activities are generally insufficient in house due to time and resource limitations. As a result, deployed software is bound to contain bugs and will eventually misbehave in the field, which will result in field failures---failures that occur on user machines after the deployment of software. As confirmed by a recent survey conducted among developers of the Apache, Eclipse, and Mozilla projects, two extremely challenging tasks during maintenance are reproducing and debugging field failures. Unfortunately, the information typically contained in traditional bug reports, such as memory dumps or crash call stacks is usually insufficient for reproducing the observed field failure, which seriously hinders developers' ability to debug such failures.  To address and mitigate the problems of reproducing and debugging field failures, I first present an overall approach that comprises two techniques, BugRedux and F^3, in this dissertation. BugRedux is a general technique for reproducing field failures that collects dynamic data about failing executions in the field and uses this data to synthesize executions that mimic the observed field failures. F^3 leverages the executions generated by BugRedux to perform automated debugging using a set of suitably optimized fault-localization techniques.  To assess the usefulness of my overall approach, I performed two empirical studies of my approach on a set of real-world programs and field failures. The results of the evaluation are promising in that, for all the failures considered, my approach was able to (1) synthesize failing executions that mimicked the observed field failures, (2) synthesize passing executions similar to the failing ones, and (3) use the synthesized executions successfully to perform fault localization with accurate results. The results of my studies and the observations that I made in BugRedux and F^3 lead to another goal of my dissertation---providing a principled and efficient way to identify potentially faulty statements together with information that can help fixing such statements. To achieve this goal, I propose two techniques, on-demand formula computation (OFC) and clause weighting (CW), to improve state-of-the-art formula-based debugging. OFC improves the overall efficiency of formula-based debugging by exploring all and only the parts of a program that are relevant to a failure. CW improves the accuracy of formula-based debugging by leveraging statistical fault-localization information that accounts for passing tests. The results of the show that, although my techniques are only a first step towards making formula-based debugging more applicable, both of them are effective and can improve the state of the art.

Status

  • Workflow Status:Published
  • Created By:Tatianna Richardson
  • Created:04/17/2015
  • Modified By:Fletcher Moore
  • Modified:10/07/2016

Categories

Target Audience