[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2642937.2643014acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

MIMIC: locating and understanding bugs by analyzing mimicked executions

Published: 15 September 2014 Publication History

Abstract

Automated debugging techniques aim to help developers locate and understand the cause of a failure, an extremely challenging yet fundamental task. Most state-of-the-art approaches suffer from two problems: they require a large number of passing and failing tests and report possible faulty code with no explanation. To mitigate these issues, we present MIMIC, a novel automated debugging technique that combines and extends our previous input generation and anomaly detection techniques. MIMIC (1) synthesizes multiple passing and failing executions similar to an observed failure and (2) uses these executions to detect anomalies in behavior that may explain the failure. We evaluated MIMIC on six failures of real-world programs with promising results: for five of these failures, MIMIC identified their root causes while producing a limited number of false positives. Most importantly, the anomalies identified by MIMIC provided information that may help developers understand (and ultimately eliminate) such root causes.

References

[1]
Coreutils. http://www.gnu.org/software/coreutils/.
[2]
R. Abreu, P. Zoeteweij, and A. J. C. v. Gemund. An Evaluation of Similarity Coefficients for Software Fault Localization. In Proceedings of the Pacific Rim International Symposium on Dependable Computing, pages 39--46, 2006.
[3]
S. Artzi, J. Dolby, F. Tip, and M. Pistoia. Practical Fault Localization for Dynamic Web Applications. In Proceedings of the International Conference on Software Engineering, pages 265--274. ACM, 2010.
[4]
A. Babenko, L. Mariani, and F. Pastore. AVA: Automated Interpretation of Dynamically Detected Anomalies. In Proceedings of the International Symposium on Software Testing and Analysis, pages 237--248, 2009.
[5]
L. Briand, Y. Labiche, and X. Liu. Using Machine Learning to Support Debugging with Tarantula. In Proceedings of the International Symposium on Software Reliability Engineering, pages 137--146, 2007.
[6]
CoreUtils. Fault in Mknod. http://lists.gnu.org/archive/html/bug-coreutils/2008-03/msg00224.html.
[7]
CoreUtils. Fault in OD. http://lists.gnu.org/archive/html/bug-coreutils/2007-08/msg00034.html.
[8]
CoreUtils. Fault in PR. http://lists.gnu.org/archive/html/bug-coreutils/2008-04/msg00177.html.
[9]
C. Csallner and Y. Smaragdakis. Dynamically Discovering Likely Interface Invariants. In Proceedings of the International Conference on Software Engineering, pages 861--864, 2006.
[10]
C. Csallner and Y. Smaragdakis. DSD-Crasher: A hybrid analysis tool for bug finding. ACM Transactions on Software Engineering and Methodologie, 17(2):245--254, 2008.
[11]
Davide Libenzi. XMail. http://www.xmailserver.org/.
[12]
M. Dimitrov and H. Zhou. Anomaly-based Bug Prediction, Isolation, and Validation: An Automated Approach for Software Debugging. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, pages 61--72, 2009.
[13]
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):99--123, 2001.
[14]
G. Fraser and A. Arcuri. EvoSuite: Automatic Test Suite Generation for Object-oriented Software. In Proceedings of the ACM Symposium and the European Conference on Foundations of Software Engineering, pages 416--419. ACM, 2011.
[15]
W. Jin and A. Orso. Bugredux: Reproducing field failures for in-house debugging. In Proceedings of the International Conference on Software Engineering, pages 474--484, 2012.
[16]
W. Jin and A. Orso. F3: fault localization for field failures. In Proceedings of the International Symposium on Software Testing and Analysis, pages 213--223, 2013.
[17]
J. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In Proceedings of the International Conference on Software Engineering, pages 467--477, 2002.
[18]
F. M. Kifetew, W. Jin, R. Tiella, A. Orso, and P. Tonella. Reproducing Field Failures for Programs with Complex Grammar-Based Input. In Proceedings of the IEEE International Conference on Software Testing, Verification and Validation, pages 163--172, March 2014.
[19]
B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan. Scalable Statistical Bug Isolation. In Proceedings of the Conference on Programming Language Design and Implementation, pages 15--26, 2005.
[20]
Lincoln University of Nebraska. Software-artifact Infrastructure Repository. http://sir.unl.edu/.
[21]
C. Liu, X. Yan, L. Fei, J. Han, and S. P. Midkiff. SOBER: Statistical Model-based Bug Localization. In Proceedings of the ACM Symposium and the European Conference on Foundations of Software Engineering, pages 286--295, 2005.
[22]
L. Mariani and F. Pastore. Automated Identification of Failure Causes in System Logs. In Proceedings of the International Symposium on Software Reliability Engineering, pages 117--126, 2008.
[23]
L. Mariani, F. Pastore, and M. Pezze. Dynamic Analysis for Diagnosing Integration Faults. IEEE Transactions on Software Engineering, 37(4):486--508, 2011.
[24]
C. Parnin and A. Orso. Are automated debugging techniques actually helping programmers? In Proceedings of the International Symposium on Software Testing and Analysis, pages 199--209, July 2011.
[25]
F. Pastore, L. Mariani, and A. Goffi. RADAR: A tool for debugging regression problems in C/C++ software. In Proceedings of the International Conference on Software Engineering, pages 1335--1338, 2013.
[26]
F. Pastore, L. Mariani, A. Goffi, M. Oriol, and M. Wahler. Dynamic analysis of upgrades in C/C++ software. In International Symposium on Software Reliability Engineering, pages 91--100, 2012.
[27]
M. Renieris and S. Reiss. Fault Localization with Nearest Neighbor Queries. In Proceedings of the International Conference on Automated Software Engineering, pages 30--39, 2003.
[28]
J. Rößler, G. Fraser, A. Zeller, and A. Orso. Isolating Failure Causes Through Test Case Generation. In Proceedings of International Symposium on Software Testing and Analysis, pages 309--319, 2012.
[29]
S. K. Sahoo, J. Criswell, C. Geigle, and V. Adve. Using Likely Invariants for Automated Software Fault Localization. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, pages 139--152, 2013.
[30]
A. Wasylkowski, A. Zeller, and C. Lindig. Detecting Object Usage Anomalies. In Proceedings of the ACM Symposium and the European Conference on Foundations of Software Engineering, pages 35--44, 2007.
[31]
T. Xie and D. Notkin. Tool-assisted Unit Test Selection based on Operational Violations. In Proceedings of the International Conference on Automated Software Engineering, pages 40--48, 2003.
[32]
Y. Yu, J. Jones, and M. J. Harrold. An Empirical Study of the Effects of Test-suite Reduction on Fault Localization. In Proceedings of the International Conference on Software Engineering, pages 201--210. ACM, 2008.
[33]
A. Zeller and R. Hildebrandt. Simplifying and Isolating Failure-Inducing Input. IEEE Transactions on Software Engineering, 28(2):183--200, 2002.
[34]
X. Zhang, N. Gupta, and R. Gupta. Locating Faults Through Automated Predicate Switching. In Proceedings of the International Conference on Software Engineering, pages 272--281, 2006.

Cited By

View all
  • (2024)FILO: Automated FIx-LOcus Identification for Android Framework Compatibility IssuesInformation10.3390/info1508042315:8(423)Online publication date: 23-Jul-2024
  • (2022)Search-based Testing for Accurate Fault Localization in CPS2022 IEEE 33rd International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE55969.2022.00024(145-156)Online publication date: Oct-2022
  • (2021)Execution reconstruction: harnessing failure reoccurrences for failure reproductionProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454101(1155-1170)Online publication date: 19-Jun-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '14: Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering
September 2014
934 pages
ISBN:9781450330138
DOI:10.1145/2642937
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 September 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. anomaly detection
  2. debugging
  3. execution synthesis

Qualifiers

  • Research-article

Funding Sources

Conference

ASE '14
Sponsor:

Acceptance Rates

ASE '14 Paper Acceptance Rate 82 of 337 submissions, 24%;
Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)43
  • Downloads (Last 6 weeks)3
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)FILO: Automated FIx-LOcus Identification for Android Framework Compatibility IssuesInformation10.3390/info1508042315:8(423)Online publication date: 23-Jul-2024
  • (2022)Search-based Testing for Accurate Fault Localization in CPS2022 IEEE 33rd International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE55969.2022.00024(145-156)Online publication date: Oct-2022
  • (2021)Execution reconstruction: harnessing failure reoccurrences for failure reproductionProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454101(1155-1170)Online publication date: 19-Jun-2021
  • (2020)Causal testingProceedings of the ACM/IEEE 42nd International Conference on Software Engineering10.1145/3377811.3380377(87-99)Online publication date: 27-Jun-2020
  • (2020)Improving Fault-Localization Accuracy by Referencing Debugging History to Alleviate Structure Bias in Code SuspiciousnessIEEE Transactions on Reliability10.1109/TR.2020.298297569:3(1021-1049)Online publication date: Sep-2020
  • (2019)Automatic Software RepairIEEE Transactions on Software Engineering10.1109/TSE.2017.275501345:1(34-67)Online publication date: 1-Jan-2019
  • (2019)FILO: FIx-LOcus Recommendation for Problems Caused by Android Framework Upgrade2019 IEEE 30th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE.2019.00043(358-368)Online publication date: Oct-2019
  • (2018)Toward introducing automated program repair techniques to industrial software developmentProceedings of the 26th Conference on Program Comprehension10.1145/3196321.3196358(332-335)Online publication date: 28-May-2018
  • (2017)Revisiting the Practical Use of Automated Software Fault Localization Techniques2017 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)10.1109/ISSREW.2017.68(175-182)Online publication date: Oct-2017
  • (2017)Selective Bisection DebuggingProceedings of the 20th International Conference on Fundamental Approaches to Software Engineering - Volume 1020210.1007/978-3-662-54494-5_4(60-77)Online publication date: 22-Apr-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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media