Publication

Back to overview

Every build you break: developer-oriented assistance for build failure resolution

Type of publication Peer-reviewed
Publikationsform Original article (peer-reviewed)
Author Vassallo Carmine, Proksch Sebastian, Zemp Timothy, Gall Harald C.,
Project SURF-MobileAppsData
Show all

Original article (peer-reviewed)

Journal Empirical Software Engineering
Volume (Issue) 25(3)
Page(s) 2218 - 2257
Title of proceedings Empirical Software Engineering
DOI 10.1007/s10664-019-09765-y

Open Access

URL https://www.zora.uzh.ch/id/eprint/198330/
Type of Open Access Repository (Green Open Access)

Abstract

Continuous integration is an agile software development practice. Instead of integrating features right before a release, they are constantly being integrated into an automated build process. This shortens the release cycle, improves software quality, and reduces time to market. However, the whole process will come to a halt when a commit breaks the build, which can happen for several reasons, e.g., compilation errors or test failures, and fixing the build suddenly becomes a top priority. Developers not only have to find the cause of the build break and fix it, but they have to be quick in all of it to avoid a delay for others. Unfortunately, these steps require deep knowledge and are often time-consuming. To support developers in fixing a build break, we propose Bart, a tool that summarizes the reasons for Maven build failures and suggests possible solutions found on the internet. We will show in a case study with 17 participants that developers find Bart useful to understand build breaks and that using Bart substantially reduces the time to fix a build break, on average by 37%. We have also conducted a qualitative study to better understand the workflows and information needs when fixing builds. We found that typical workflows differ substantially between various error categories, and that several uncommon build errors are both very hard to investigate and to fix. These findings will be useful to inform future research in this area.
-