Mining Fix Patterns for FindBugs Violations

12/08/2017
by   Kui Liu, et al.
0

In this paper, we first collect and track large-scale fixed and unfixed violations across revisions of software. It turns out that a small number of violation types are responsible for the majority of recurrently occurring violations and they are fixed with similar code changes. To automatically identify patterns in violations and their fixes, we propose an approach that utilizes convolutional neural networks and clustering. We then evaluate the usefulness of the identified fix patterns by applying them to unfixed violations. The results show that actual developers accepted and merged 69 of 116 fixes generated from the fix patterns. From the study, we observe the recurrences of fixed violations that may help prioritize violations, identify fix patterns from existing fixed violations, and resolve similar violations existing in the wild.

READ FULL TEXT

page 11

page 14

research
01/27/2020

Ammonia: An Approach for Deriving Project-specific Bug Patterns

Finding and fixing buggy code is an important and cost-intensive mainten...
research
01/24/2014

Using Neural Network to Propose Solutions to Threats in Attack Patterns

In the last decade, a lot of effort has been put into securing software ...
research
07/13/2021

Mining Idioms in the Wild

Existing code repositories contain numerous instances of code patterns t...
research
02/22/2023

How Ready Is DNS for an IPv6-Only World?

DNS is one of the core building blocks of the Internet. In this paper, w...
research
01/16/2019

Encoding Candlesticks as Images for Patterns Classification Using Convolutional Neural Networks

Candlestick charts display the high, low, open and closing prices for a ...
research
02/18/2021

A matrix approach to detect temporal behavioral patterns at electric vehicle charging stations

Based on the electric vehicle (EV) arrival times and the duration of EV ...
research
12/06/2021

Manas: Mining Software Repositories to Assist AutoML

Today deep learning is widely used for building software. A software eng...

Please sign up or login with your details

Forgot password? Click here to reset