Not logged in.

Contribution Details

Type Bachelor's Thesis
Scope Discipline-based scholarship
Title Build Log Differencing
Other Titles More Efficient Failure Cause Identification
Organization Unit
Authors
  • Noah Chavannes
Supervisors
  • Sebastian Proksch
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Number of Pages 49
Date 2019
Abstract Text Continuous integration (CI) is transforming from a trend to the industry standard in software development [23]. A goal of CI is to develop software in a productive manner and with high quality. Building software is a sub-process of CI and does unfortunately not always succeed on the first try. Finding the failure cause in a broken build can be a tedious process and delay the work of other developers [25]. Comparing two successive build logs could yield the failure cause by highlighting the differences, but current text differencing tools fail to do so in an efficient manner. We introduce the concept of filtering build logs for irrelevant artifacts, which allows a meaningful comparison. Furthermore, we developed BLogDiff, a tool that applies the concept of noise filtering and allows developers to calculate the difference between two build logs. We evaluated the tool by conducting a survey and could show that the tool supports inexperienced developers in finding the cause of failing builds. Lastly, we analyzed the build log domain quantitatively and found different characteristics of successful and failing builds.
Zusammenfassung Continuous Integration (CI) befindet sich im Wandel von einem Trend zum Industriestandard in der Softwareentwicklung [23]. Ziel von CI ist es, Software produktiv und mit hoher Qualität zu entwickeln. Das "Building" von Software ist ein Teilprozess von CI und gelingt bedauerlicherweise nicht immer auf Anhieb. Die Fehlersuche bei einem fehlerhaften Build kann sich als sehr mühsamer Prozess erweisen und die Arbeit anderer Entwickler verzögern [25]. Der Vergleich zweier aufeinanderfolgender Build-Protokolle könnte bei der Fehlersuche behilflich sein, indem die Unterschiede mit einem Textvergleichswerkzeug hervorgehoben werden. Aktuelle Programme unterstützen diesen Task jedoch nicht zufriedenstellend. Wir stellen das Konzept der Filterung von Build-Protokollen nach irrelevanten Artefakten vor, wodurch ein Vergleich ermöglicht wird. Darüber hinaus haben wir BLogDiff entwickelt, ein Tool, welches dieses Konzept anwendet und den Entwicklern ermöglicht, zwei Build-Protokolle zu vergleichen. Das Tool wurde durch eine Umfrage evaluiert. Wir konnten zeigen, dass das Tool unerfahrene Entwickler dabei unterstützt, die Ursache für fehlerhafte Builds zu finden. Abschließend analysierten wir die Build-Protokoll Domäne quantitativ und fanden verschiedene Merkmale, die erfolgreiche und fehlschlagende Builds unterscheiden.
PDF File Download
Export BibTeX