skip to main content
10.1145/1081706.1081753acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

SOBER: statistical model-based bug localization

Published: 01 September 2005 Publication History

Abstract

Automated localization of software bugs is one of the essential issues in debugging aids. Previous studies indicated that the evaluation history of program predicates may disclose important clues about underlying bugs. In this paper, we propose a new statistical model-based approach, called SOBER, which localizes software bugs without any prior knowledge of program semantics. Unlike existing statistical debugging approaches that select predicates correlated with program failures, SOBER models evaluation patterns of predicates in both correct and incorrect runs respectively and regards a predicate as bug-relevant if its evaluation pattern in incorrect runs differs significantly from that in correct ones. SOBER features a principled quantification of the pattern difference that measures the bug-relevance of program predicates.We systematically evaluated our approach under the same setting as previous studies. The result demonstrated the power of our approach in bug localization: SOBER can help programmers locate 68 out of 130 bugs in the Siemens suite when programmers are expected to examine no more than 10% of the code, whereas the best previously reported is 52 out of 130. Moreover, with the assistance of SOBER, we found two bugs in bc 1.06 (an arbitrary precision calculator on UNIX/Linux), one of which has never been reported before.

References

[1]
K. Apt and E. Olderog. Verification of Sequential and Concurrent Programs. Springer-Verlag, second edition, 1997.
[2]
Y. Brun and M. Ernst. Finding latent code errors via machine learning over program executions. I Proc. of the 26th Int. Conf. on Software Engineering (ICSE '04), pages 480--490, 2004.
[3]
G. Casella and R. Berger. Statistical Inference. Duxbury Press, second edition, 2001.
[4]
E. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999.
[5]
H. Cleve and A. Zeller. Locating causes of program failures. In Proc. of the 27th Int. Conf. on Software Engineering (ICSE '05), 2005.
[6]
W. Dickinson, D. Leon, and A. Podgurski. Finding failures by cluster analysis of execution profiles. I Proc. of the 23rd Int. Conf. on Software Engineering (ICSE '01), pages 339--348, 2001.
[7]
D. Engler, D. Chen, and A. Chou. Bugs as inconsistent behavior: A general approach to inferring errors in systems code. In Symp. on Operating Systems Principles, pages 57--72, 2001.
[8]
M. Ernst, J. Cockrell, W. Griswold, and D. Notkin. Dynamically discovering likely program invariants to support program evolution. IEEE Trans. on Software Engineering, 27(2):1--25, 2001.
[9]
S. Hangal and M. Lam. Tracking dow software bugs using automatic anomaly detection. I Proc. of the 24th Int. Conf. on Software Engineering (ICSE '02), 2002.
[10]
M. Harrold, G. Rothermel, K. Sayre, R. Wu, and L. Yi. A empirical investigation of the relationship between spectra differences and regression faults. Software Testing, Verification & Reliability, 10(3):171--194, 2000.
[11]
M. Hutchins, H. Foster, T. Goradia, and T. Ostrand. Experiments of the effectiveness of data flow-and control flow-based test adequacy criteria. In Proc. of the 16th Int. Conf. on Software Engineering (ICSE '94), pages 191--200, 1994.
[12]
J. Jones, M. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In Proc. of the 24th Int. Conf. on Software Engineering (ICSE '02), pages 467--477, 2002.
[13]
E. Lehmann. Testing Statistical Hypotheses. Springer, second edition, 1997.
[14]
B. Liblit, A. Aiken, A. Zheng, and M. Jordan. Bug isolation via remote program sampling. In Proc. of ACM SIGPLAN 2003 Int. Conf. on Programming Language Design and Implementation (PLDI '03), pages 141--154, 2003.
[15]
B. Liblit, M. Naik, A. Zheng, A. Aiken, and M. Jordan. Scalable statistical bug isolation. In Proc. of ACM SIGPLAN 2005 Int. Conf. on Programming Language Design and Implementation (PLDI '05), 2005.
[16]
S. McCamant and M. Ernst. Predicting problems caused by component upgrades. In Proc. of the 9th European Software Engineering Conf. held jointly with 11th ACM SIGSOFT Int. Symp. on Foundations of Software Engineering (ESEC/FSE '03), pages 287--296, 2003.
[17]
M. Musuvathi, D. Park, A. Chou, D. Engler, and D. Dill. Cmc: A pragmatic approach to model checking real code. In Proc. of the 5th Symp. on Operating System Design and Implementation (OSDI '02), 2002.
[18]
A. Podgurski, D. Leon, P. Francis, W. Masri, M. Minch, J. Sun, and B. Wang. Automated support for classifying software failure reports. In Proc. of the 25th Int. Conf. on Software Engineering (ICSE '03), pages 465--475, 2003.
[19]
B. Pytlik, M. Renieris, S. Krishnamurthi, and S. Reiss. Automated fault localization using potential invariants. I Proc. of the 5th Int. Workshop on Automated and Algorithmic DebuggingSymp (AADEBUG '03), pages 287--296, 2003.
[20]
M. Renieris and S. Reiss. Fault localization with nearest eighbor queries. I Proc. of the 18th IEEE Int. Conf. on Automated Software Engineering (ASE '03), 2003.
[21]
T. Reps, T. Ball, M. Das, and J. Larus. The use of program profiling for software maintenance with applications to the year 2000 problem. SIGSOFT Softw. Eng. Notes, 22(6):432--449, 1997.
[22]
G. Rothermel and M. Harrold. Empirical studies of a safe regression test selection technique. IEEE Trans. on Software Engineering, 24(6):401--419, 1998.
[23]
W. Visser, K. Havelund, G. Brat, and S. Park. Model checking programs. In Proc. of the 15th IEEE Int. Conf. on Automated Software Engineering (ASE '00), 2000.
[24]
A. Zeller. Isolating cause-effect chains from computer programs. I Proc. of ACM 10th Int. Symp. on the Foundations of Software Engineering (FSE '02), 2002.
[25]
T. Zimmermann and A. Zeller. Visualizing memory graphs. I Revised Lectures o Software Visualization, International Seminar, pages 191--204, 2002.

Cited By

View all
  • (2023)Variable-Based Fault Localization via Enhanced Decision TreeACM Transactions on Software Engineering and Methodology10.1145/3624741Online publication date: 18-Sep-2023
  • (2023)UniLoc: Unified Fault Localization of Continuous Integration FailuresACM Transactions on Software Engineering and Methodology10.1145/359379932:6(1-31)Online publication date: 8-May-2023
  • (2023)BL-GAN: Semi-Supervised Bug Localization via Generative Adversarial NetworkIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2022.322532935:11(11112-11125)Online publication date: 1-Nov-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
September 2005
402 pages
ISBN:1595930140
DOI:10.1145/1081706
  • cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 30, Issue 5
    September 2005
    462 pages
    ISSN:0163-5948
    DOI:10.1145/1095430
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. localization metrics
  2. statistical debugging

Qualifiers

  • Article

Conference

ESEC/FSE05
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)38
  • Downloads (Last 6 weeks)2
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Variable-Based Fault Localization via Enhanced Decision TreeACM Transactions on Software Engineering and Methodology10.1145/3624741Online publication date: 18-Sep-2023
  • (2023)UniLoc: Unified Fault Localization of Continuous Integration FailuresACM Transactions on Software Engineering and Methodology10.1145/359379932:6(1-31)Online publication date: 8-May-2023
  • (2023)BL-GAN: Semi-Supervised Bug Localization via Generative Adversarial NetworkIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2022.322532935:11(11112-11125)Online publication date: 1-Nov-2023
  • (2023)Locating Framework-specific Crashing Faults with Compact and Explainable Candidate Set2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)10.1109/ICSE48619.2023.00026(172-183)Online publication date: May-2023
  • (2023)Spectrum‐Based Techniques for Software Fault LocalizationHandbook of Software Fault Localization10.1002/9781119880929.ch4(201-270)Online publication date: 21-Apr-2023
  • (2022)Detecting non-crashing functional bugs in Android apps via deep-state differential analysisProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549170(434-446)Online publication date: 7-Nov-2022
  • (2022)Legion: Massively Composing Rankers for Improved Bug Localization at AdobeIEEE Transactions on Software Engineering10.1109/TSE.2021.307521548:8(3010-3024)Online publication date: 1-Aug-2022
  • (2022)Improving Weighted-SBFL by Blocking Spectrum2022 IEEE 22nd International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM55253.2022.00036(253-263)Online publication date: Oct-2022
  • (2022)Debug-localize-repair: a symbiotic construction for heap manipulationsFormal Methods in System Design10.1007/s10703-021-00387-z58:3(399-439)Online publication date: 8-Feb-2022
  • (2021)Architecture Anti-Patterns: Automatically Detectable Violations of Design PrinciplesIEEE Transactions on Software Engineering10.1109/TSE.2019.291085647:5(1008-1028)Online publication date: 1-May-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media