Understanding the use of spectrum-based fault localization

Developers spend significant time locating and fixing bugs, which is often performed manually. Although spectrum-based fault localization (SFL) techniques aim at helping developers to locate faults, they are not yet used in practice. Recent studies have investigated how developers use SFL, presentin...

Descripción completa

Detalles Bibliográficos
Autores: Amario de Souza, Higor [UNESP], de Souza Lauretto, Marcelo, Kon, Fabio, Lordello Chaim, Marcos
Tipo de recurso: artículo
Estado:Versión publicada
Fecha de publicación:2024
País:Brasil
Institución:Universidade Estadual Paulista (UNESP)
Repositorio:Repositório Institucional da UNESP
Idioma:inglés
OAI Identifier:oai:repositorio.unesp.br:11449/305000
Acceso en línea:http://dx.doi.org/10.1002/smr.2622
https://hdl.handle.net/11449/305000
Access Level:acceso abierto
Palabra clave:automated debugging
fault comprehension
fault localization
spectrum-based
user study
Descripción
Sumario:Developers spend significant time locating and fixing bugs, which is often performed manually. Although spectrum-based fault localization (SFL) techniques aim at helping developers to locate faults, they are not yet used in practice. Recent studies have investigated how developers use SFL, presenting different conclusions about their effectiveness and usefulness. We carried out a user study to further enhance the understanding of SFL. We assessed whether SFL improves the developers' performance and to what extent SFL leads developers to inspect faulty code excerpts. We also investigated the intention of the developers to use SFL and how they interact with SFL. Twenty-six participants performed debugging tasks using real programs, with and without using the Jaguar SFL tool. Using SFL, more developers located and fixed the bugs. SFL also led more developers to inspect the faulty code and locate the faulty method. However, they did not spend less time locating the faults. SFL was well-accepted by the participants, who showed intention to use it in their daily activities. Our results indicate that SFL is useful even when the fault is not ranked among the first positions, leading developers to reach faulty code regions and find the bugs.