Analyzing Software Bugs in Code Clones
Date
2021-02-02
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
ORCID
Type
Thesis
Degree Level
Doctoral
Abstract
An extensive area of research in Software Engineering for the last two decades has been finding duplicate source code in the code base. The act of duplicating source code or copy-pasting source code in software systems is known as code cloning. Reusing source code or code cloning is a very common practice in software development. Code cloning can save time and cost. On the other hand, if a code fragment contains a bug then duplicating that source code will also duplicate the bug. Thus, in the literature there is a common belief that code cloning is responsible for spreading bugs in software systems. The primary goal of our study is to validate this common belief. To achieve this goal, we performed four major studies and analyzed the characteristics of bug-proneness of code clones. First, we aimed to understand bug-proneness between clone and non-clone code. Afterwards, we explored bug-proneness of micro-clones which are smaller in size (from 1 line of code to 4 lines of code) in our second study. Later, we focused on bug-replication of regular code clones and micro-clones in our third and fourth studies. Our result supports the intuition from the literature and we found that code clones are more bug-prone than non-clone code. Moreover, we found that it is important to emphasize bug-prone code clones so that it will help us in clone management and better maintenance of software systems. We also proposed a possible solution to identify and manage these bug-prone code clones and showed some future paths of this research.
Description
Keywords
Clone code, Software bugs
Citation
Degree
Doctor of Philosophy (Ph.D.)
Department
Computer Science
Program
Computer Science