Investigating Change Patterns that Fix Bugs

Status

finished by Marco Jakob.

Introduction

Bug fixing is a major maintenance activity. One of the reasons why bugs occur are incomplete test cases. This is observable when bug fixing changes tend to concentrate on if-else or loop updates. Frequent occurring bug fixing change patterns will highlight incomplete test cases and common inaccuracies in a particular software project.

The goals of this diploma thesis

The goal of this diploma thesis is to build a methodology and tool on top of ChangeDistiller and Evolizer to investigate if bug fixing change patterns exist and whether they can highlight incomplete test cases in a software project.

Task description

The first step is to review the state-of-the-art including:

  • Our taxonomy of source code changes and change extraction algorithm.
  • The linking of bug reports and modification reports.
  • Existing approaches on the investigation of bug fixing change.

The next step is concerned with developing an Eclipse plug-in on top of ChangeDistiller and Evolizer to extract and investigate change patterns which fix bugs. This step includes:

  • Establishing the link between bug reports from Bugzilla and modification reports from CVS (using and extending the work of Schaffhauser).
  • Extracting change patterns for bugs of which the link could have been established.
  • Postprocess (clustering, filtering) the extracted information and display them in a way enabling the investigation of the mentioned hypothesis.
  • The development of JUnit test cases to test correctness of the extraction and postprocessing steps.

The major part of this diploma thesis is the investigation if bug fixing change patterns exist and whether they can highlight incomplete test cases. This investigation has to be done by using the newly developed Eclipse plug-in and reviewing the test cases of the software projects Eclipse, Azureus, and JEdit to evaluate the results.

The deliverables are as follows:

When What
1st month State-of-the-art report.
3rd month Developing an Eclipse plug-in to extract and investigate bug fixing change patterns.
5th month Case studies and evaluation.
last month Finishing diploma thesis.

General thesis guidelines

The typical rules of academic work must be followed. "So what is a (Diploma) Thesis" describes guidelines which must be followed. At the end of the thesis, a final report has to be written. The report should clearly be organized, follow the usual academic report structure, and has to be written in English using our s.e.a.l. LaTeX-template.

Since implementing software is also part of this thesis, state-of-the-art design, coding, and documentation standards for the software have to be obeyed.

The diploma thesis has to be concluded with a final presentation for the members of the Software Evolution and Architecture Lab (s.e.a.l.).

Advisor

Beat Fluri, Prof. Harald Gall.

More information on "What is a Diploma Thesis and How to do a Diploma Thesis at IFI" is provided here.