Explaining Software Bugs Leveraging Code Structures in Neural Machine Translation

12/08/2022
by   Parvez Mahbub, et al.
0

Software bugs claim approximately 50 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.

READ FULL TEXT

page 1

page 9

research
08/23/2023

Bugsplainer: Leveraging Code Structures to Explain Software Bugs with Neural Machine Translation

Software bugs cost the global economy billions of dollars each year and ...
research
07/05/2020

EvilCoder: Automated Bug Insertion

The art of finding software vulnerabilities has been covered extensively...
research
11/12/2020

Large-Scale Manual Validation of Bug Fixing Commits: A Fine-grained Analysis of Tangling

Context: Tangled commits are changes to software that address multiple c...
research
06/29/2023

RAPGen: An Approach for Fixing Code Inefficiencies in Zero-Shot

Performance bugs are non-functional bugs that can even manifest in well-...
research
09/15/2022

Studying the explanations for the automated prediction of bug and non-bug issues using LIME and SHAP

Context: The identification of bugs within the reported issues in an iss...
research
11/10/2020

Debugging Tests for Model Explanations

We investigate whether post-hoc model explanations are effective for dia...
research
12/11/2020

WITCHER : Detecting Crash Consistency Bugs in Non-volatile Memory Programs

The advent of non-volatile main memory (NVM) enables the development of ...

Please sign up or login with your details

Forgot password? Click here to reset