masterThesis
Improving bug localization by mining crash reports: an empirical study
Fecha
2020-02-19Registro en:
MEDEIROS, Marcos Alexandre de Melo. Improving bug localization by mining crash reports: an empirical study. 2020. 85f. Dissertação (Mestrado em Sistemas e Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2020.
Autor
Medeiros, Marcos Alexandre de Melo
Resumen
The information available in crash reports has been used to understand the root cause of
bugs and improve the overall quality of systems. Nonetheless, crash reports often lead to a
huge amount of information, being necessary to apply techniques that aim to consolidate
the crash report data into groups, according to a set of well-defined criteria. In this
dissertation, we contribute with a customization of rules that automatically find and
group correlated crash reports (according to their stack traces) in the context of large
scale web-based systems. We select and adapt some existing approaches described in the
literature about crash report grouping and suspicious file ranking of crashing the system.
Next, we design and implement a software tool to identify and rank buggy files using
stack traces from crash reports. We use our tool and approach to identify and rank buggy
files — that is, files that are most likely to contribute to a crash and thus need a fix. We
evaluate our approach comparing two sets of classes and methods: the classes (methods)
that developers changed to fix a bug and the suspected buggy classes (methods) that
are present in the stack traces of the correlated crash reports. Our study provides new
pieces of evidence of the potential use of crash report groups to correctly indicate buggy
classes and methods present in stack traces. For instance, we successfully identify a buggy
class with recall varying from 61.4% to 77.3% and precision ranging from 41.4% to 55.5%,
considering the top 1, top 3, top 5, and top 10 suspicious buggy files identified and ranked
by our approach. The main implication of our approach is that developers can locate and
fix the root cause of a crash report considering a few classes or methods, instead of having
to review thousands of assets.