• Cite Icon1
  • https://doi.org/10.22028/d291-26531Copy DOI Icon

From software failure to explanation

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

“Why does my program crash?”—This ever recurring question drives the developer both when trying to reconstruct a failure that happened in the field and during the analysis and debugging of the test case that captures the failure. This is the question this thesis attempts to answer. For that I will present two approaches which, when combined, start off with only a dump of the memory at the moment of the crash (a core dump) and eventually give a full explanation of the failure in terms of the important runtime features of the program such as critical branches, state predicates or any other execution aspect that is deemed helpful for understanding the underlying problem. The first approach (called RECORE) takes a core dump of a crash and by means of search-based test case generation comes up with a small, self-contained and easy to understand unit test that is similar to the test as it is attached to a bug report and reproduces the failure. This test case can server as a starting point for analysis and manual debugging. Our evaluation shows that in five out of seven real cases, the resulting test captures the essence of the failure. But this failing test case can also serve as the starting point for the second approach (called BUGEX). BUGEX is a universal debugging framework that applies the scientific method and can be implemented for arbitrary runtime features (called facts). First it observes those facts during the execution of the failing test case. Using state-of-the-art statistical debugging, these facts are then correlated to the failure, forming a hypothesis. Then it performs experiments: it generates additional executions to challenge these facts and from these additional observations refines the hypothesis. The result is a correlation of critical execution aspects to the failure with unprecedented accuracy and instantaneously point the developer to the problem. This general debugging framework can be implemented for any runtime aspects; for evaluation purposes I implemented it for branches and state predicates. The evaluation shows that in six out of seven real cases, the resulting facts pinpoint the failure. Both approaches are independent form one another and each automates a tedious and error prone task. When being combined, they automate a large part of the debugging process, where the remaining manual task—fixing the defect—can never be fully automated.

Similar Papers
  • Research Article
  • Citations45

An evaluation of pure spectrum‐based fault localization techniques for large‐scale software systems

  • May 24, 2019
  • Software: Practice and Experience
  • Simon Heiden +6
  • Conference Article
  • Citations133

Adaptive random testing

  • Jul 17, 2011
  • Andrea Arcuri +1
  • Conference Article
  • Citations19

Test case analytics: Mining test case traces to improve risk-driven testing

  • Mar 01, 2015
  • Tanzeem Noor +1
  • Conference Article
  • Citations2

Taming a Fuzzer Using Delta Debugging Trails

  • Dec 01, 2014
  • Yuanli Pei +4
  • Research Article
  • Citations16

Mutation-oriented test data augmentation for GUI software fault localization

  • Jul 24, 2013
  • Information and Software Technology
  • Zhongxing Yu +2
  • Conference Article
  • Citations2

Isolating failing test cases: A comparative experimental study of clustering techniques

  • Jun 01, 2013
  • Joan Farjo +2
  • Conference Article
  • Citations8

Analyzing Refactorings' Impact on Regression Test Cases

  • Jul 01, 2015
  • Yuan Gao +4
  • Book Chapter

Chapter 13 - Isolating Failure Causes

  • Jan 01, 2006
  • Why Programs Fail
  • Andreas Zeller
  • Conference Article
  • Citations6

A Test Suite Reduction Approach to Improving the Effectiveness of Fault Localization

  • Nov 01, 2017
  • Wenhao Fu +4
  • Research Article

A Method of Fault Localization for Chinese Train Control Systems Based on Relationship Matrix with Frequent Terms

  • Mar 01, 2022
  • IEEJ Transactions on Electrical and Electronic Engineering
  • Yanpeng Zhang +2
  • PDF
  • Research Article
  • Citations1

Software Fault Localization Based on Weighted Association Rule Mining and Complex Networks

  • Jul 05, 2024
  • Mathematics
  • Wentao Wu +2
  • Conference Article
  • Citations2

A Software Multi-Fault Clustering Ensemble Technology

  • Dec 01, 2022
  • Mingxing Zhang +4
  • Conference Article
  • Citations51

Cause Reduction for Quick Testing

  • Mar 01, 2014
  • Alex Groce +4
  • PDF
  • Research Article
  • Citations12

Combining Slicing and Constraint Solving for Better Debugging: The CONBAS Approach

  • Dec 31, 2012
  • Advances in Software Engineering
  • Birgit Hofer +1
  • Research Article
  • Citations19

A systematic literature review on benchmarks for evaluating debugging approaches

  • Jun 30, 2022
  • Journal of Systems and Software
  • Thomas Hirsch +1
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.