Javascript must be enabled to continue!
An empirical study of fault localization in Python programs
View through CrossRef
AbstractDespite its massive popularity as a programming language, especially in novel domains like data science programs, there is comparatively little research about fault localization that targets Python. Even though it is plausible that several findings about programming languages like C/C++ and Java—the most common choices for fault localization research—carry over to other languages, whether the dynamic nature of Python and how the language is used in practice affect the capabilities of classic fault localization approaches remain open questions to investigate. This paper is the first multi-family large-scale empirical study of fault localization on real-world Python programs and faults. Using Zou et al.’s recent large-scale empirical study of fault localization in Java (Zou et al. 2021) as the basis of our study, we investigated the effectiveness (i.e., localization accuracy), efficiency (i.e., runtime performance), and other features (e.g., different entity granularities) of seven well-known fault-localization techniques in four families (spectrum-based, mutation-based, predicate switching, and stack-trace based) on 135 faults from 13 open-source Python projects from the BugsInPy curated collection (Widyasari et al. 2020). The results replicate for Python several results known about Java, and shed light on whether Python’s peculiarities affect the capabilities of fault localization. The replication package that accompanies this paper includes detailed data about our experiments, as well as the tool FauxPy that we implemented to conduct the study.
Springer Science and Business Media LLC
Title: An empirical study of fault localization in Python programs
Description:
AbstractDespite its massive popularity as a programming language, especially in novel domains like data science programs, there is comparatively little research about fault localization that targets Python.
Even though it is plausible that several findings about programming languages like C/C++ and Java—the most common choices for fault localization research—carry over to other languages, whether the dynamic nature of Python and how the language is used in practice affect the capabilities of classic fault localization approaches remain open questions to investigate.
This paper is the first multi-family large-scale empirical study of fault localization on real-world Python programs and faults.
Using Zou et al.
’s recent large-scale empirical study of fault localization in Java (Zou et al.
2021) as the basis of our study, we investigated the effectiveness (i.
e.
, localization accuracy), efficiency (i.
e.
, runtime performance), and other features (e.
g.
, different entity granularities) of seven well-known fault-localization techniques in four families (spectrum-based, mutation-based, predicate switching, and stack-trace based) on 135 faults from 13 open-source Python projects from the BugsInPy curated collection (Widyasari et al.
2020).
The results replicate for Python several results known about Java, and shed light on whether Python’s peculiarities affect the capabilities of fault localization.
The replication package that accompanies this paper includes detailed data about our experiments, as well as the tool FauxPy that we implemented to conduct the study.
Related Results
Integration Techniques of Fault Detection and Isolation Using Interval Observers
Integration Techniques of Fault Detection and Isolation Using Interval Observers
An interval observer has been illustrated to be a suitable approach to detect and isolate faults affecting complex dynamical industrial systems.
Concerning fault detection, interv...
Decomposition and Evolution of Intracontinental Strike‐Slip Faults in Eastern Tibetan Plateau
Decomposition and Evolution of Intracontinental Strike‐Slip Faults in Eastern Tibetan Plateau
Abstract:Little attention had been paid to the intracontinental strike‐slip faults of the Tibetan Plateau. Since the discovery of the Longriba fault using re‐measured GPS data in 2...
Basic and Advance: Phython Programming
Basic and Advance: Phython Programming
"This book will introduce you to the python programming language. It's aimed at beginning programmers, but even if you have written programs before and just want to add python to y...
Indoor Localization System Based on RSSI-APIT Algorithm
Indoor Localization System Based on RSSI-APIT Algorithm
An indoor localization system based on the RSSI-APIT algorithm is designed in this study. Integrated RSSI (received signal strength indication) and non-ranging APIT (approximate pe...
Structural Characteristics and Evolution Mechanism of Paleogene Faults in the Central Dongying Depression, Bohai Bay Basin
Structural Characteristics and Evolution Mechanism of Paleogene Faults in the Central Dongying Depression, Bohai Bay Basin
Abstract
This study used the growth index, fault activity rate and fault distance burial depth curve methods to analyze the characteristics of fault activity in the central...
Fault stability transition with slip and wear production: laboratory constraints
Fault stability transition with slip and wear production: laboratory constraints
Large earthquakes take place on mature faults with hundreds of meters to kilometres of cumulative slip. At shallow depths, the fault zone is generally composed of non-cohesive rock...
Low-temperature thermochronology of fault zones
Low-temperature thermochronology of fault zones
<p>Thermal signatures as well as timing of fault motions can be constrained by thermochronological analyses of fault-zone rocks (e.g., Tagami, 2012, 2019).&#1...
Data-driven Fault Diagnosis for Cyber-Physical Systems
Data-driven Fault Diagnosis for Cyber-Physical Systems
The concept of Industry 4.0 uses cyber-physical systems and the Internet of Things to create "smart factories" that enable automated and connected production. However, the complex ...

