Explaining Software Bugs Leveraging Code Structures in Neural Machine Translation

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Mahbub, Parvez, Shuvo, Ohiduzzaman, Rahman, Mohammad Masudur
Formato: Preprint
Publicado: 2022
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866909467322351616
author Mahbub, Parvez
Shuvo, Ohiduzzaman
Rahman, Mohammad Masudur
author_facet Mahbub, Parvez
Shuvo, Ohiduzzaman
Rahman, Mohammad Masudur
contents Software bugs claim approximately 50% of development time and cost the global economy billions of dollars. Once a bug is reported, the assigned developer attempts to identify and understand the source code responsible for the bug and then corrects the code. Over the last five decades, there has been significant research on automatically finding or correcting software bugs. However, there has been little research on automatically explaining the bugs to the developers, which is essential but a highly challenging task. In this paper, we propose Bugsplainer, a transformer-based generative model, that generates natural language explanations for software bugs by learning from a large corpus of bug-fix commits. Bugsplainer can leverage structural information and buggy patterns from the source code to generate an explanation for a bug. Our evaluation using three performance metrics shows that Bugsplainer can generate understandable and good explanations according to Google's standard, and can outperform multiple baselines from the literature. We also conduct a developer study involving 20 participants where the explanations from Bugsplainer were found to be more accurate, more precise, more concise and more useful than the baselines.
format Preprint
id arxiv_https___arxiv_org_abs_2212_04584
institution arXiv
publishDate 2022
record_format arxiv
spellingShingle Explaining Software Bugs Leveraging Code Structures in Neural Machine Translation
Mahbub, Parvez
Shuvo, Ohiduzzaman
Rahman, Mohammad Masudur
Software Engineering
Software bugs claim approximately 50% of development time and cost the global economy billions of dollars. Once a bug is reported, the assigned developer attempts to identify and understand the source code responsible for the bug and then corrects the code. Over the last five decades, there has been significant research on automatically finding or correcting software bugs. However, there has been little research on automatically explaining the bugs to the developers, which is essential but a highly challenging task. In this paper, we propose Bugsplainer, a transformer-based generative model, that generates natural language explanations for software bugs by learning from a large corpus of bug-fix commits. Bugsplainer can leverage structural information and buggy patterns from the source code to generate an explanation for a bug. Our evaluation using three performance metrics shows that Bugsplainer can generate understandable and good explanations according to Google's standard, and can outperform multiple baselines from the literature. We also conduct a developer study involving 20 participants where the explanations from Bugsplainer were found to be more accurate, more precise, more concise and more useful than the baselines.
title Explaining Software Bugs Leveraging Code Structures in Neural Machine Translation
topic Software Engineering
url https://arxiv.org/abs/2212.04584