Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1062455.1062522acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Locating causes of program failures

Published: 15 May 2005 Publication History

Abstract

Which is the defect that causes a software failure? By comparing the program states of a failing and a passing run, we can identify the state differences that cause the failure. However, these state differences can occur all over the program run. Therefore, we focus in space on those variables and values that are relevant for the failure, and in time on those moments where cause transitions occur---moments where new relevant variables begin being failure causes: "Initially, variable argc was 3; therefore, at shell_sort(), variable [2] was 0, and therefore, the program failed." In our evaluation, cause transitions locate the failure-inducing defect twice as well as the best methods known so far.

References

[1]
AskIgor web site. http://www.askigor.org/http://www.askigor.org/.
[2]
H. Agrawal and J. R. Horgan. Dynamic program slicing. In Proceedings of the ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation (PLDI), volume 25(6) of ACM SIGPLAN Notices, pages 246--256, White Plains, New York, June 1990.
[3]
M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin. Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering, 27(2):1--25, Feb. 2001.
[4]
A. Groce. Error explanation with distance metrics. In Proc. Tools and Algorithms for the Construction and Analysis of Systems (TACAS), pages 108--122, 2004.
[5]
M. J. Harrold, G. Rothermel, K. Sayre, R. Wu, and L. Yi. An empirical investigation of the relationship between spectra differences and regression faults. Software Testing, Verification and Reliability, 10(3):171--194, 2000.
[6]
S. Horwitz and T. Reps. The use of program dependence graphs in software engineering. In Proc. 14th International Conference on Software Engineering, pages 392--411, 1992.
[7]
M. Hutchins, H. Foster, T. Goradia, and T. Ostrand. Experiments on the effectiveness of dataflow- and controlflow-based test adequacy criteria. In Proc. 16th International Conference on Software Engineering, pages 191--200, May 1994.
[8]
J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In Proc. International Conference on Software Engineering (ICSE), pages 467--477, Orlando, Florida, May 2002.
[9]
B. Korel and J. Laski. Dynamic slicing of computer programs. The Journal of Systems and Software, 13(3):187--195, Nov. 1990.
[10]
B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. In Proc. of the SIGPLAN 2003 Conference on Programming Language Design and Implementation (PLDI), San Diego, California, June 2003.
[11]
B. Pytlik, M. Renieris, S. Krishnamurthi, and S. Reiss. Automated fault localization using potential invariants. In M. Ronsse, editor, Proc. Fifth Int. Workshop on Automated and Algorithmic Debugging (AADEBUG), Ghent, Belgium, Sept. 2003.
[12]
M. Renieris and S. P. Reiss. Fault localization with nearest neighbor queries. In Proc. 18th Int. Conference on Automated Software Engineering, Montreal, Canada, 2003.
[13]
G. Rothermel and M. J. Harrold. Empirical studies of a safe regression test selection technique. Software Engineering, 24(6):401--419, 1998.
[14]
J. M. Voas. PIE: a dynamic failure-based technique. IEEE Transactions on Software Engineering, 18(8):717--727, 1992.
[15]
M. Weiser. Programmers use slices when debugging. Communications of the ACM, 25(7):446--452, 1982.
[16]
A. Zeller. Isolating cause-effect chains from computer programs. In W. G. Griswold, editor, Proc. Tenth ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-10), pages 1--10, Charleston, South Carolina, Nov. 2002. ACM Press.
[17]
A. Zeller. Why does my program fail? A guide to automated debugging. Morgan Kaufmann Publishers, August 2005. To appear (ISBN 1-55860-866-4).
[18]
A. Zeller and R. Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering, 28(2):183--200, Feb. 2002.
[19]
T. Zimmermann and A. Zeller. Visualizing memory graphs. In S. Diehl, editor, Proc. of the International Dagstuhl Seminar on Software Visualization, volume 2269 of Lecture Notes in Computer Science, pages 191--204, Dagstuhl, Germany, May 2002. Springer-Verlag.

Cited By

View all
  • (2024)Isolation-Based Debugging for Neural NetworksProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652132(338-349)Online publication date: 11-Sep-2024
  • (2024)C2D2: Extracting Critical Changes for Real-World Bugs with Dependency-Sensitive Delta DebuggingProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652129(300-312)Online publication date: 11-Sep-2024
  • (2024)A Post-training Framework for Improving the Performance of Deep Learning Models via Model TransformationACM Transactions on Software Engineering and Methodology10.1145/363001133:3(1-41)Online publication date: 15-Mar-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '05: Proceedings of the 27th international conference on Software engineering
May 2005
754 pages
ISBN:1581139632
DOI:10.1145/1062455
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: 15 May 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. adaptive testing
  2. automated debugging
  3. program analysis
  4. tracing

Qualifiers

  • Article

Conference

ICSE05
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)42
  • Downloads (Last 6 weeks)4
Reflects downloads up to 30 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Isolation-Based Debugging for Neural NetworksProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652132(338-349)Online publication date: 11-Sep-2024
  • (2024)C2D2: Extracting Critical Changes for Real-World Bugs with Dependency-Sensitive Delta DebuggingProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652129(300-312)Online publication date: 11-Sep-2024
  • (2024)A Post-training Framework for Improving the Performance of Deep Learning Models via Model TransformationACM Transactions on Software Engineering and Methodology10.1145/363001133:3(1-41)Online publication date: 15-Mar-2024
  • (2024)Effective fault localization using probabilistic and grouping approachInternational Journal of System Assurance Engineering and Management10.1007/s13198-024-02479-515:9(4616-4635)Online publication date: 18-Aug-2024
  • (2024)An empirical study of fault localization in Python programsEmpirical Software Engineering10.1007/s10664-024-10475-329:4Online publication date: 13-Jun-2024
  • (2024)Chamelon : A Delta-Debugger for OCamlFormal Methods10.1007/978-3-031-71177-0_6(76-83)Online publication date: 13-Sep-2024
  • (2023)The MADAG Strategy for Fault Location TechniquesApplied Sciences10.3390/app1302081913:2(819)Online publication date: 6-Jan-2023
  • (2023)Toward More Efficient Statistical Debugging with Abstraction RefinementACM Transactions on Software Engineering and Methodology10.1145/354479032:2(1-38)Online publication date: 30-Mar-2023
  • (2023)Augmenting Diffs With Runtime InformationIEEE Transactions on Software Engineering10.1109/TSE.2023.332425849:11(4988-5007)Online publication date: 1-Nov-2023
  • (2023)Evaluating the Impact of Experimental Assumptions in Automated Fault LocalizationProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00025(159-171)Online publication date: 14-May-2023
  • 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