Repository logo
 

Investigating the Techniques to Detect and Reduce Bug Inducing Commits During Change Operations in Software Systems

Date

2020-11-03

Journal Title

Journal ISSN

Volume Title

Publisher

ORCID

0000-0003-1765-2462

Type

Thesis

Degree Level

Masters

Abstract

Performing commit operations to change a software system's existing source code is one of the most frequent maintenance activities for a software system. Studies show that commit operations that are made to fix some detected issues or add new features can also induce new problems (bugs/ issues) in the software system. Such a commit operation is known as bug inducing commit (BIC). Inappropriate or incomplete commit operations can have a severe negative impact on the software system, mainly if these are detected after a long time of their introduction and not fixed as soon as possible. Early detection of bug inducing commits is a challenge. We have conducted three studies in this thesis with the goal of detecting bug inducing (inconsistent) commits as soon as those are made and minimizing the occurrences of such commits. In our first two studies, we apply Machine Learning (ML) models in order to automatically identify commit operations that may induce bugs or inconsistencies in a software system. The results from these studies show that our proposed new features, Token Pattern (TP) and Token Sequence (TS), can significantly improve the performance of detecting bug inducing commits using ML-based models. While our first two studies investigate detecting bug inducing commits, our third study focuses on minimizing bugs and inconsistencies in a software system by automatically suggesting cloned co-change candidates to the programmers during software evolution. Cloned co-change candidates are groups of cloned code fragments that might need to be changed together (co-changed) consistently if any of the group's code fragments are changing in a commit operation to keep the software system consistent. Missing any cloned co-change can be a reason for introducing new inconsistencies or bugs in the software system. We evaluated 12 promising clone detection tools based on their performance in detecting such cloned co-change candidates during software evolution. The obtained results and their analysis provide recommendations for choosing clone detectors to identify cloned co-change candidates, which can help make the change impact analysis process more effective. A useful change impact analysis will also make the change or commit operation more consistent and bug-free. We believe that findings from our research will be of significant importance for better maintenance and evolution of software systems.

Description

Keywords

Software Changes, Commit Operations, Bug Inducing Commit, Bug Fixing Commit, Cloned Co-change Candidate, Clone Detection Tools, Inconsistent Change of Clone Fragments, Source Code Embedding, Machine Learning Models, Software Evolution & Maintenance

Citation

Degree

Master of Science (M.Sc.)

Department

Computer Science

Program

Computer Science

Part Of

item.page.relation.ispartofseries

DOI

item.page.identifier.pmid

item.page.identifier.pmcid