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

skip to main content
10.1145/2001420.2001447acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Minimizing reproduction of software failures

Published: 17 July 2011 Publication History

Abstract

A program fails. What now? Taking a single failing run, we record and minimize the interaction between objects to the set of calls relevant for the failure. The result is a minimal unit test that faithfully reproduces the failure at will: "Out of these 14,628 calls, only 2 are required". In a study of 17 real-life bugs, our JINSI prototype reduced the search space to 13.7% of the dynamic slice or 0.22% of the source code, with only 1--12 calls left to examine.

References

[1]
S. Artzi, J. Dolby, F. Tip, and M. Pistoia. Directed test generation for effective fault localization. In ISSTA '10, pages 49--59. ACM, 2010.
[2]
S. Artzi, S. Kim, and M. D. Ernst. ReCrash: Making software failures reproducible by preserving object states. In ECOOP '08, pages 542--565, Berlin, Heidelberg, 2008. Springer-Verlag.
[3]
M. Burger and A. Zeller. Replaying and isolating failing multi-object interactions. In WODA '08, pages 71--77, New York, NY, USA, 2008. ACM.
[4]
J. Clause and A. Orso. A technique for enabling and supporting debugging of field failures. In ICSE '07, pages 261--270, Washington, DC, USA, 2007. IEEE Computer Society.
[5]
H. Cleve and A. Zeller. Locating causes of program failures. In ICSE '05, pages 342--351, New York, NY, USA, 2005. ACM.
[6]
S. Colebourne. Joda Time---Java date and time API. http://joda-time.sourceforge.net/.
[7]
B. L. Computer, B. Liblit, A. Aiken, M. Naik, and A. X. Zheng. Scalable statistical bug isolation. In PLDI '05, pages 15--26. ACM Press, 2005.
[8]
C. Csallner and Y. Smaragdakis. Check 'n' crash: combining static checking and testing. In ICSE '05, pages 422--431, New York, NY, USA, 2005. ACM.
[9]
C. Csallner and T. Xie. DSD-crasher: A hybrid analysis tool for bug finding. In ISSTA '06, pages 245--254. ACM, 2006.
[10]
V. Dallmeier, C. Lindig, and A. Zeller. Lightweight defect localization for Java. In ECOOP '05, number 3586 in Lecture Notes in Computer Science, pages 528--550. Springer, July 2005.
[11]
V. Dallmeier, A. Zeller, and B. Meyer. Generating fixes from object behavior anomalies. In ASE '09, Auckland, New Zealand, November 2009.
[12]
H. Do, S. Elbaum, and G. Rothermel. Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Softw. Engg., 10(4):405--435, 2005.
[13]
M. Doliner. Cobertura. http://cobertura.sourceforge.net/.
[14]
A. Z. Ee, A. X. Zheng, M. I. Jordan, B. Liblit, and A. Aiken. Statistical debugging of sampled programs. In Advances in Neural Information Processing Systems 16, pages 9--11. MIT Press, 2003.
[15]
S. Elbaum, H. N. Chin, M. B. Dwyer, and J. Dokulil. Carving differential unit test cases from system test cases. In SIGSOFT '06/FSE-14, pages 253--264, New York, NY, USA, 2006. ACM.
[16]
S. Elbaum, H. N. Chin, M. B. Dwyer, and M. Jorde. Carving and replaying differential unit test cases from system test cases. IEEE Trans. Softw. Eng., 35(1):29--45, 2009.
[17]
N. Gupta, H. He, X. Zhang, and R. Gupta. Locating faulty code using failure-inducing chops. In ASE '05, pages 263--272, New York, NY, USA, 2005. ACM.
[18]
C. Hammacher. Java slicer. http://www.st.cs.uni-saarland.de/javaslicer/.
[19]
J. A. Jones and M. J. Harrold. Empirical evaluation of the Tarantula automatic fault-localization technique. In ASE '05, pages 273--282, New York, NY, USA, 2005. ACM.
[20]
J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In ICSE '02, pages 467--477, New York, NY, USA, 2002. ACM.
[21]
Y. Lei and J. H. Andrews. Minimization of randomized unit test cases. In ISSRE '05, pages 267--276, Washington, DC, USA, 2005. IEEE Computer Society.
[22]
A. Leitner, M. Oriol, A. Zeller, I. Ciupa, and B. Meyer. Efficient unit test case minimization. In ASE '07, pages 417--420, New York, NY, USA, 2007. ACM.
[23]
B. McWhirter. JAXEN --- Universal Java XPath engine. http://jaxen.codehaus.org/.
[24]
A. Orso, S. Joshi, M. Burger, and A. Zeller. Isolating relevant component interactions with JINSI. In WODA '06, pages 3--10, New York, NY, USA, 2006. ACM.
[25]
A. Orso and B. Kennedy. Selective Capture and Replay of Program Executions. In WODA '05, pages 29--35, St. Louis, MO, USA, may 2005.
[26]
D. Saff, S. Artzi, J. H. Perkins, and M. D. Ernst. Automatic test factoring for Java. In ASE '05, pages 114--123, New York, NY, USA, 2005. ACM.
[27]
J. Steven, P. Chandra, B. Fleck, and A. Podgurski. jRapture: A capture/replay tool for observation-based testing. In ISSTA '00, pages 158--167, New York, NY, USA, 2000. ACM.
[28]
F. Tip. A survey of program slicing techniques. Journal of programming languages, 3(3):121--189, 1995.
[29]
D. A. Wheeler. SLOCCount --- count source lines of code (SLOC). http://www.dwheeler.com/sloccount/.
[30]
A. Zeller. Yesterday, my program worked. Today, it does not. Why? In ESEC/FSE '99, pages 253--267, London, UK, 1999. Springer-Verlag.
[31]
A. Zeller. Isolating cause-effect chains from computer programs. In SIGSOFT '02/FSE-10, pages 1--10, New York, NY, USA, November 2002. ACM Press.
[32]
A. Zeller and R. Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Trans. Softw. Eng., 28(2):183--200, 2002.
[33]
Z. Zhang, W. K. Chan, T. H. Tse, B. Jiang, and X. Wang. Capturing propagation of infected program states. In ESEC/FSE '09, pages 43--52, New York, NY, USA, 2009. ACM.

Cited By

View all
  • (2024)DDImage: an image reduction based approach for automatically explaining black-box classifiersEmpirical Software Engineering10.1007/s10664-024-10505-029:5Online publication date: 30-Jul-2024
  • (2023)Automated Image Reduction for Explaining Black-box Classifiers2023 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER56733.2023.00042(367-378)Online publication date: Mar-2023
  • (2023)Software Fault Localization: an Overview of Research, Techniques, and ToolsHandbook of Software Fault Localization10.1002/9781119880929.ch1(1-117)Online publication date: 21-Apr-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ISSTA '11: Proceedings of the 2011 International Symposium on Software Testing and Analysis
July 2011
394 pages
ISBN:9781450305624
DOI:10.1145/2001420
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

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 July 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. automated debugging
  2. capture/replay

Qualifiers

  • Research-article

Funding Sources

Conference

ISSTA '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 58 of 213 submissions, 27%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)DDImage: an image reduction based approach for automatically explaining black-box classifiersEmpirical Software Engineering10.1007/s10664-024-10505-029:5Online publication date: 30-Jul-2024
  • (2023)Automated Image Reduction for Explaining Black-box Classifiers2023 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER56733.2023.00042(367-378)Online publication date: Mar-2023
  • (2023)Software Fault Localization: an Overview of Research, Techniques, and ToolsHandbook of Software Fault Localization10.1002/9781119880929.ch1(1-117)Online publication date: 21-Apr-2023
  • (2022)OpenGL API call trace reduction with the minimizing Delta debugging algorithmProceedings of the 13th International Workshop on Automating Test Case Design, Selection and Evaluation10.1145/3548659.3561308(53-56)Online publication date: 7-Nov-2022
  • (2022)Delta Debugging Microservice Systems with Parallel OptimizationIEEE Transactions on Services Computing10.1109/TSC.2019.291982315:1(16-29)Online publication date: 1-Jan-2022
  • (2021)Locating faults with program slicing: an empirical analysisEmpirical Software Engineering10.1007/s10664-020-09931-726:3Online publication date: 1-Apr-2021
  • (2020)Generalizing the Split Factor of the Minimizing Delta Debugging AlgorithmIEEE Access10.1109/ACCESS.2020.30430278(219837-219846)Online publication date: 2020
  • (2018)Delta debugging microservice systemsProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering10.1145/3238147.3240730(802-807)Online publication date: 3-Sep-2018
  • (2018)Context-Based Event Trace Reduction in Client-Side JavaScript Applications2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST)10.1109/ICST.2018.00022(127-138)Online publication date: Apr-2018
  • (2017)Automatically reducing tree-structured test inputsProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155669(861-871)Online publication date: 30-Oct-2017
  • 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