An Empirical Study of Fault Localization in Python Programs

05/31/2023
by   Mohammad Rezaalipour, et al.
0

Despite 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 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 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. 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

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
03/27/2018

An Empirical Study of Fault Localization Families and Their Combinations

The performance of fault localization techniques is critical to their ad...
research
05/31/2022

A Replication Study on Predicting Metamorphic Relations at Unit Testing Level

Metamorphic Testing (MT) addresses the test oracle problem by examining ...
research
07/18/2020

An empirical study of Linespots: A novel past-fault algorithm

This paper proposes the novel past-faults fault prediction algorithm Lin...
research
11/21/2020

An Empirical Study on Failed Error Propagation in Java Programs with Real Faults

During testing, developers can place oracles externally or internally wi...
research
08/04/2020

Anchor: Locating Android Framework-specific Crashing Faults

Android framework-specific app crashes are hard to debug. Indeed, the ca...
research
01/21/2022

An empirical study on Java method name suggestion: are we there yet?

A large-scale evaluation for current naming approaches substantiates tha...

Please sign up or login with your details

Forgot password? Click here to reset