Scalable statistical bug isolation

We present a statistical debugging algorithm that isolates bugs in programs containing multiple undiagnosed bugs. Earlier statistical algorithms that focus solely on identifying predictors that correlate with program failure perform poorly when there are multiple bugs. Our new technique separates the effects of different bugs and identifies predictors that are associated with individual bugs. These predictors reveal both the circumstances under which bugs occur as well as the frequencies of failure modes, making it easier to prioritize debugging efforts. Our algorithm is validated using several case studies, including examples in which the algorithm identified previously unknown, significant crashing bugs in widely used systems.

[1]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[2]  E. L. Lehmann,et al.  Theory of point estimation , 1950 .

[3]  Eric Horvitz,et al.  Structure and chance: melding logic and probability for software debugging , 1995, CACM.

[4]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[5]  Alessandro Orso,et al.  Monitoring deployed software using software tomography , 2002, PASTE '02.

[6]  Sudheendra Hangal,et al.  Tracking down software bugs using automatic anomaly detection , 2002, ICSE '02.

[7]  Michael I. Jordan,et al.  Bug isolation via remote program sampling , 2003, PLDI '03.

[8]  Sebastian Elbaum,et al.  Deploying Instrumented Software to Assist the Testing Activity , 2003 .

[9]  Daniel Shawcross Wilkerson,et al.  Winnowing: local algorithms for document fingerprinting , 2003, SIGMOD '03.

[10]  Michael I. Jordan,et al.  Statistical Debugging of Sampled Programs , 2003, NIPS.

[11]  Alessandro Orso,et al.  Leveraging field data for impact analysis and regression testing , 2003, ESEC/FSE-11.

[12]  Bin Wang,et al.  Automated support for classifying software failure reports , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[13]  Ben Liblit,et al.  Public deployment of cooperative bug isolation , 2004, ICSE 2004.

[14]  Matthias Hauswirth,et al.  Low-overhead memory leak detection using adaptive statistical profiling , 2004, ASPLOS XI.

[15]  Stephen E. Fienberg,et al.  Testing Statistical Hypotheses , 2005 .