Analyse von Defekten in einem großen Softwaresystem durch die Auswertung von Versionsverwaltungssystemen

von: Alexander Pepper

Abstract (Deutsch)

In dieser Diplomarbeit werden Verfahren des Wissenschaftsbereichs „Software Repository Mining” untersucht, verbessert sowie neu entwickelt, um Daten von Versionsverwaltungssystemen (kurz VCS) und Bugtrackern aufzubereiten und zu analysieren. Als Grundverfahren wird der SZZ-Algorithmus ([1] und [3]) bzw. dessen Implementierung (CVSAnalY mit der Erweiterung HunkBlame, [2] und [A]) verwendet.

Das Ziel dieser Diplomarbeit ist die Identifizierung und Analyse von Defekten. Dafür werden Bugreports mit ihren Reparaturen im VCS verknüpft sowie die ihnen zugrundeliegenden Bug-Commits identifiziert. Neben der Anwendung und Verbesserung der Verfahren werden diese hinterfragt und deren Ergebnisse untersucht. Bei der Überprüfung der Verfahren, insbesondere der Grundannahmen des SZZ-Algorithmus, zeigen sich gravierende Mängel, die weiteren Forschungsbedarf aufzeigen.

Als Forschungsobjekt dient das VCS des kommerziellen Infopark CMS der Infopark AG [B]. Es enthält 45.000 Commits und seine Historie reicht über zehn Jahre zurück. Neben Vergleichen mit anderen Studien werden neue Ergebnisse präsentiert. Unter anderem zeigte sich überraschenderweise, dass Commits, die wenige Zeilen ändern, defektanfälliger sind als Commits, die viele Zeilen ändern. Außerdem konnte belegt werden, dass Dateien, die häufiger oder von vielen verschiedenen Entwicklern geändert werden, defektanfälliger sind als Dateien, die seltener geändert oder von weniger Entwicklern modifiziert werden.

Die digitale Version dieser Diplomarbeit ist unter [C] verfügbar.

Abstract (English)

In this diploma thesis, methods of “Software Repository Mining” are studied, improved and newly developed, in order to prepare and analyze data from version control systems (VCS) and bugtrackers. The SZZ algorithm ([1] and [3]), especially its actual implementation (CVSAnalY with the extension HunkBlame, [2] and [A]), is the basic method used for this research.

Identification and analysis of defects are the main goals of this thesis. Bugreports are linked to their bugfix commits, as well as to there underlying bug commit, in order to allow structured analysis. In addition to using and improving the known methods, the results are scrutinized. In the process the methods (the SZZ algorithm in particular) reveal significant shortcomings. There improvement remains subject to further research.

The VCS of the commercial Infopark CMS by the Infopark AG [B] serves as the object of this study. The repository contains more than 45,000 commits and ten years of development history. In addition to comparing the results to other studies, new results are presented. Surprisingly, a commit is more susceptible to defects, the fewer lines of code are modified. Files that are modified more frequently or that are modified by several different developers, are also more susceptible to defects.

The digital version of this diploma thesis is available at [C].

Literatur | Literature

[1] Kim, Sunghun ; Zimmermann, Thomas ; Pan, Kai ; Whitehead, Jr., E. James: Automatic Identification of Bug-Introducing Changes. In: Proceedings of the 21st IEEE International Conference on Automated Software Engineering. Washington, DC, USA : IEEE Computer Society, 2006 (ASE ’06). – ISBN 0–7695–2579–2, S. 81–90

[2] Sadowski, Caitlin ; Lewis, Chris ; Lin, Zhongpeng ; Zhu, Xiaoyan ; Whitehead, Jr., E. James: An Empirical Analysis of the FixCache Algorithm. In: Proceeding of the 8th Working Conference on Mining Software Repositories. New York, NY, USA : ACM, 2011 (MSR ’11), S. 219–222

[3] Śliwerski, Jacek ; Zimmermann, Thomas ; Zeller, Andreas: When Do Changes Induce Fixes? In: Proceedings of the 2005 International Workshop on Mining Software Repositories. New York, NY, USA : ACM, 2005 (MSR ’05). – ISBN 1–59593–123–6, S. 1–5

Internetquellen | Online sources

[A] http://github.com/SoftwareIntrospectionLab/cvsanaly (Abruf: 07.11.2011)

[B] http://www.infopark.de (Abruf: 07.11.2011)

[C] http://www.inf.fu-berlin.de/inst/ag-se/theses/Pepper11-repository-analysis-defect-identification.pdf (Abruf: 30.11.2011)