Not logged in.

Contribution Details

Type Bachelor's Thesis
Scope Discipline-based scholarship
Title Improving Build Failure Resolution Through In-IDE Assistance
Organization Unit
Authors
  • Alex Scheitlin
Supervisors
  • Harald Gall
  • Sebastian Proksch
  • Carmine Vassallo
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2018
Abstract Text Continuous integration is an essential part of modern software engineering and helps programmers to automate their build process (e.g., compiling source code, packaging binary code, or running tests). While developers benefit from earlier caught bugs, more stable code bases, and shorter software release cycles, they still face several problems when working with continuous integration. For example, if a software build fails, additional time is needed to resolve detected problems by build servers (i.e., build failures). Developers first need to locate the root of failure and then fix the error. For that purpose, they leave their Integrated Development Environment (IDE) and scan through long log files on the build server. To simplify and reduce the effort required for this process, the vision is to bridge the gap between the build-related information available on the build server and the local development environment where the source code needs to be fixed. Therefore, CAESAR (Ci Assistant for (Build Failure) Resolution and Summarization) was developed, which is an IDE plugin that leverages detailed build-related information to support developers in debugging build failures directly within their IDE. The tool summarizes build logs, classifies errors, shows the files in which the errors occurred, gives hints or error descriptions, and enables to directly debug the error. This is all possible without leaving the IDE. To evaluate the usefulness of CAESAR, a controlled experiment was conducted, showing that on average, developers could resolve build failures 48.4% faster when working with CAESAR. Especially, the evaluation of the experiment showed that developers working with CAESAR were able to reduce the time needed to identify the error in the build log and locate it within the source code. Lastly, participants stated that, thanks to CAESARís assistance, context switches between their own IDE and the build server were no longer required.
Zusammenfassung Continuous Integration bildet ein wesentlicher Bestandteil der modernen Softwareentwicklung. Sie hilft Programmierern das Erstellen von Software zu automatisieren (z.B. Kompilierung von Quellcode, Abpacken von Binärcode oder Durchführen von Tests). Während Entwickler von früher identifizierten Fehlern, stabilerem Quellcode und kürzeren Softwarerelease-Zyklen profitieren, werden sie bei der Anwendung von Continuous Integration Methoden immer noch mit einigen Problemen konfrontiert. Wenn beispielsweise ein Software-Build fehlschlägt, wird zusätzliche Zeit benötigt, um die von Build-Servern identifizierten Probleme (Build-Fehler) zu lösen. Entwickler müssen zuerst die Ursache des Build-Fehlers finden und anschliessend den Quellcode verbessern. Dazu verlassen sie ihre Entwicklungsumgebung und durchsuchen Logdateien auf dem Build-Server. Um diesen Prozess für Entwickler zu vereinfachen und den dafür benötigten Zeitaufwand zu reduzieren, ist es das Ziel, die Lücke zwischen den auf dem Build-Server verfügbaren Informationen und der lokalen Entwicklungsumgebung, in welcher der Quellcode repariert werden muss, zu schliessen. Dazu wurde CAESAR (Ci Assistant for (Build Failure) Resolution and Summarization) entwickelt, eine Erweiterung für Entwicklungsumgebungen, welche zentrale Informationen über den Software-Build nutzt um Entwickler lokal bei der Fehlerbereinigung zu unterstützen. Das Programm fasst Build-Protokolle zusammen, klassifiziert Fehler, zeigt die Dateien an, in welchen die Fehler aufgetreten sind, gibt Hinweise oder Fehlerbeschreibungen und ermöglicht es, den Fehler direkt Schritt für Schritt zu reproduzieren. All dies ist möglich ohne die Entwicklungsumgebung zu verlassen. Um den Nutzen von CAESAR zu evaluieren, wurde ein kontrolliertes Experiment durchgeführt, welches zeigen konnte, dass Entwickler fehlgeschlagene Builds im Schnitt 48.4% schneller reparieren konnten, wenn sie mit CAESAR arbeiteten. Die Auswertung zeigte ebenfalls, dass es Entwicklern durch die Unterstützung von CAESAR gelungen war, die notwendige Zeit, um die Fehler zuerst zu finden und zu verstehen und anschliessend im Quellcode wiederzufinden, zu reduzieren. Zusätzlich gaben die Teilnehmer der Studie an, dass dank CAESAR kein Kontextwechsel zwischen der eigenen Entwicklungsumgebung und dem Build-Server mehr nötig war.
PDF File Download
Export BibTeX