Reproducing Failures in Fault Signatures

09/20/2023
by   Ashwin Kallingal Joshy, et al.
0

Software often fails in the field, however reproducing and debugging field failures is very challenging: the failure-inducing input may be missing, and the program setup can be complicated and hard to reproduce by the developers. In this paper, we propose to generate fault signatures from the failure locations and the original source code to reproduce the faults in small executable programs. We say that a fault signature reproduces the fault in the original program if the two failed in the same location, triggered the same error conditions after executing the same selective sequences of failure-inducing statements. A fault signature aims to contain only sufficient statements that can reproduce the faults. That way, it provides some context to inform how a fault is developed and also avoids unnecessary complexity and setups that may block fault diagnosis. To compute fault signatures from the failures, we applied a path-sensitive static analysis tool to generate a path that leads to the fault, and then applied an existing syntactic patching tool to convert the path into an executable program. Our evaluation on real-world bugs from Corebench, BugBench, and Manybugs shows that fault signatures can reproduce the fault for the original programs. Because fault signatures are less complex, automatic test input generation tools generated failure-inducing inputs that could not be generated by using the entire programs. Some failure-inducing inputs can be directly transferred to the original programs. Our experimental data are publicly available at https://doi.org/10.5281/zenodo.5430155.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/02/2022

FuzzerAid: Grouping Fuzzed Crashes Based On Fault Signatures

Fuzzing has been an important approach for finding bugs and vulnerabilit...
research
12/09/2017

Inforence: Effective Fault Localization Based on Information-Theoretic Analysis and Statistical Causal Inference

In this paper, a novel approach, Inforence, is proposed to isolate the s...
research
08/27/2021

CharmFL: A Fault Localization Tool for Python

Fault localization is one of the most time-consuming and error-prone par...
research
07/26/2021

A Partial Reproduction of A Guided Genetic Algorithm for Automated Crash Reproduction

This paper is a partial reproduction of work by Soltani et al. which pre...
research
03/29/2019

Automatic Failure Explanation in CPS Models

Debugging Cyber-Physical System (CPS) models can be extremely complex. I...
research
02/02/2023

A novel failure indexing approach with run-time values of program variables

Failures with different root causes can disturb multi-fault localization...
research
08/10/2021

Searching for Multi-Fault Programs in Defects4J

Defects4J has enabled numerous software testing and debugging research w...

Please sign up or login with your details

Forgot password? Click here to reset