Statistical Software Debugging

Alice Zheng


  Traditional software debugging is an arduous task that requires time, effort, and a good understanding of the source code. Given the scale and complexity of the task, the development of methods for automatically debugging software seems both essential and very difficult. However, several trends make such an endeavor increasingly realistic: (1) the wide-scale deployment of software, (2) the establishment of distributed crash report feedback systems, and (3) the development of statistical machine learning algorithms that can take advantage of aggregate data over multiple users.
In this talk, I present a statistical software debugging framework that applies machine learning techniques to run-time reports of instrumented programs. The problem has a relatively simple solution under the single-bug assumption. However, in the more realistic case of multiple bugs, the problem can no longer be dealt with using simple feature selection and classification techniques. I describe the chanllenges and present a solution inspired by bi-clustering algorithms.
This is joint work with Ben Liblit (U. Wisconsin, Madison), Michael Jordan (U.C. Berkeley), Alex Aiken and Mayur Naik (Stanford).

Back to the Main Page

Pradeep Ravikumar
Last modified: Fri Oct 13 11:22:28 EDT 2006