Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Automatically repairing environmental build failures
Organization Unit
Authors
  • Emirald Mateli
Supervisors
  • Harald Gall
  • Carmine Vassallo
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2020
Abstract Text Continuous Integration is a widely-used software engineering practice in both industry and opensource projects to automate compilation, testing, and quality assurance tasks. Recent studies reveal that troubleshooting build failures is the main barrier that developers encounter when adopting CI. Because of their complexity, developers usually spend at least one hour per day in fixing build failures. While the majority of build failures are caused by expected human mistakes such as the wrong implementation of a method, a non-negligible part of failures (33%) are caused by environmental factors such as flakiness of the build infrastructure. In this thesis, we want to understand how developers fix environmental failures and the extent to which they can be automatically repaired. We inspect 380 failed builds belonging to 42 different environmental failure types from 97 open-source projects written in Java and Ruby and built on Travis CI. Based on the analysis of the resolution patterns of these failures, we devise and implement an approach for automatically repairing 10 environmental build failure types. To show the applicability of our approach, we run our tool against 67 environmental build failures from popular GitHub projects achieving an overall success rate of 55.22%. To assess the usefulness of our automatic repair, we successfully fix 37 builds from GitHub projects and open issues on these projects where we propose to accept the generated patches for those failures. 66.6% agree with the proposed fixes and are willing to use our tool.
PDF File Download
Export BibTeX