Leveraging Structural Properties of Source Code Graphs for Just-In-Time Bug Prediction

01/25/2022
by   Md Nadim, et al.
0

The most common use of data visualization is to minimize the complexity for proper understanding. A graph is one of the most commonly used representations for understanding relational data. It produces a simplified representation of data that is challenging to comprehend if kept in a textual format. In this study, we propose a methodology to utilize the relational properties of source code in the form of a graph to identify Just-in-Time (JIT) bug prediction in software systems during different revisions of software evolution and maintenance. We presented a method to convert the source codes of commit patches to equivalent graph representations and named it Source Code Graph (SCG). To understand and compare multiple source code graphs, we extracted several structural properties of these graphs, such as the density, number of cycles, nodes, edges, etc. We then utilized the attribute values of those SCGs to visualize and detect buggy software commits. We process more than 246K software commits from 12 subject systems in this investigation. Our investigation on these 12 open-source software projects written in C++ and Java programming languages shows that if we combine the features from SCG with conventional features used in similar studies, we will get the increased performance of Machine Learning (ML) based buggy commit detection models. We also find the increase of F1 Scores in predicting buggy and non-buggy commits statistically significant using the Wilcoxon Signed Rank Test. Since SCG-based feature values represent the style or structural properties of source code updates or changes in the software system, it suggests the importance of careful maintenance of source code style or structure for keeping a software system bug-free.

READ FULL TEXT
research
12/07/2022

Utilizing Source Code Syntax Patterns to Detect Bug Inducing Commits using Machine Learning Models

Detecting Bug Inducing Commit (BIC) or Just in Time (JIT) defect predict...
research
10/11/2021

Graph-Based Machine Learning Improves Just-in-Time Defect Prediction

The increasing complexity of today's software requires the contribution ...
research
03/21/2018

Estimating defectiveness of source code: A predictive model using GitHub content

Two key contributions presented in this paper are: i) A method for build...
research
04/01/2019

STYLE-ANALYZER: fixing code style inconsistencies with interpretable unsupervised algorithms

Source code reviews are manual, time-consuming, and expensive. Human inv...
research
08/12/2021

SysMap: A Lightweight Software Visualization Tool to Analyze the Software Evolution of a System

Software visualization helps to comprehend the system by providing a viv...
research
02/15/2021

Investigating and Recommending Co-Changed Entities for JavaScript Programs

JavaScript (JS) is one of the most popular programming languages due to ...
research
05/12/2021

Parthenos: A Source Code Injection Approach for Software Transformation

Maintaining legacy enterprise information systems is a known necessity i...

Please sign up or login with your details

Forgot password? Click here to reset