Evaluating data-flow coverage in spectrum-based fault localization

06/27/2019
by   Henrique Lemos Ribeiro, et al.
0

Background: Debugging is a key task during the software development cycle. Spectrum-based Fault Localization (SFL) is a promising technique to improve and automate debugging. SFL techniques use control-flow spectra to pinpoint the most suspicious program elements. However, data-flow spectra provide more detailed information about the program execution, which may be useful for fault localization. Aims: We evaluate the effectiveness and efficiency of ten SFL ranking metrics using data-flow spectra. Method: We compare the performance of data- and control-flow spectra for SFL using 163 faults from 5 real-world open source programs, which contain from 468 to 4130 test cases. The data- and control-flow spectra types used in our evaluation are definition-use associations (DUAs) and lines, respectively. Results: Using data-flow spectra, up to 50 control-flow spectra. Also, most SFL ranking metrics present better effectiveness using data-flow to inspect up to the top-40 positions. The execution cost of data-flow spectra is higher than control-flow, taking from 22 seconds to less than 9 minutes. Data-flow has an average overhead of 353 all programs, while the average overhead for control-flow is of 102 Conclusions: The results suggest that SFL techniques can benefit from using data-flow spectra to classify faults in better positions, which may lead developers to inspect less code to find bugs. The execution cost to gather data-flow is higher compared to control-flow, but it is not prohibitive. Moreover, data-flow spectra also provide information about suspicious variables for fault localization, which may improve the developers' performance using SFL.

READ FULL TEXT
research
06/16/2023

Improving Spectrum-Based Localization of Multiple Faults by Iterative Test Suite Reduction

Spectrum-based fault localization (SBFL) works well for single-fault pro...
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
01/08/2021

Locating Faults with Program Slicing: An Empirical Analysis

Statistical fault localization is an easily deployed technique for quick...
research
01/31/2023

EC-CFI: Control-Flow Integrity via Code Encryption Counteracting Fault Attacks

Fault attacks enable adversaries to manipulate the control-flow of secur...
research
02/27/2018

Network-Clustered Multi-Modal Bug Localization

Developers often spend much effort and resources to debug a program. To ...
research
03/07/2022

IOLLVM: enhance version of OLLVM

Code obfuscation increases the difficulty of understanding programs, imp...
research
12/16/2020

Automatic source localization and spectra generation from deconvolved beamforming maps

We present two methods for the automated detection of aeroacoustic sourc...

Please sign up or login with your details

Forgot password? Click here to reset