Comprehending Software Bugs Leveraging Code Structures with Neural Language Models
Abstract
Software bugs claim ~50% of development time and cost the global economy billions of dollars every year.
Unfortunately, despite the use of many software quality assurance (SQA) practices in software development (e.g., code review, continuous integration), defects may still exist in the official release of a software product.
If software defects can be predicted at the line level, that can help the developers prioritize SQA efforts for the vulnerable areas of a codebase and thus achieve a high-quality software release.
However, a defect prediction technique could be less helpful without any meaningful explanation of the defect.
In this thesis, we propose and evaluate two novel techniques that support developers in identifying software defects at the line level and provide natural language explanations for those defects.
In our first study, we propose – Bugsplorer – a novel deep-learning technique for line-level defect prediction.
It leverages a hierarchical structure of transformer models to represent two types of code elements: code tokens and code lines.
Our evaluation with five performance metrics shows that Bugsplorer can predict defective lines with 26-72% better accuracy than that of the state-of-the-art technique.
It can also rank the first 20% defective lines within the top 1-3% vulnerable lines.
In our second study, we propose Bugsplainer – a transformer-based generative model that generates natural language explanations for software bugs by leveraging structural information and buggy patterns from the source code.
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 conducted 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.
Given the empirical evidence, our techniques have the potential to significantly reduce the SQA costs.
Subject
Collections
Related items
Showing items related by title, author, creator and subject.
-
DEPLOYMENT OF A 27.5 KHZ LINK USING NON-COHERENT SPACE TIME BLOCK CODED FREQUENCY SHIFT KEYING
Singh, Surinder (2020-07-20)The contents of this thesis explore the challenge of implementing a high-speed and reliable acoustic communication link in shallow water conditions and high flow environments, in which highly varying propagation conditions ... -
Illusion SDK: An Augmented Reality Engine for Flash 11
Howse, Joseph (2012-11-28)This thesis presents Illusion SDK: a general, extensible framework for augmented reality (AR) applications. Illusion provides loosely coupled or decoupled abstractions of sensors, trackers, and compositors. Implementations ... -
TEST CASES REDUCTION IN SOFTWARE PRODUCT LINE USING REGRESSION TESTING
Faculty of Computer Science; Master of Computer Science; Dr. Kirstie Hawkey; Dr.Qigang Gao; Dr. Michael McAllister; Dr. Vlado Keselj, Dr. Morven Gentleman; Not Applicable; Not Applicable; Not Applicable (2012-05-09)Application Engineering is a field where software organizations develop software products from a predefined Software Product Line. The time and cost allotted to come up with a new product variant is limited. Lack of ...