History-driven Build Failure Fixing: How Far Are We?

Yiling Lou, Junjie Chen, Lingming Zhang, Dan Hao, Lu Zhang

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Build systems are essential for modern software development and maintenance since they are widely used to transform source code artifacts into executable software. Previous work shows that build systems break frequently during software evolution. Therefore, automated build-fixing techniques are in huge demand. In this paper we target a mainstream build system, Gradle, which has become the most widely used build system for Java projects in the open-source community (e.g., GitHub). HireBuild, state-of-the-art build-fixing tool for Gradle, has been recently proposed to fix Gradle build failures via mining the history of prior fixes. Although HireBuild has been shown to be effective for fixing real-world Gradle build failures, it was evaluated on only a limited set of build failures, and largely depends on the quality/availability of historical fix information. To investigate the efficacy and limitations of the history-driven build fix, we first construct a new and large build failure dataset from Top-1000 GitHub projects. Then, we evaluate HireBuild on the extended dataset both quantitatively and qualitatively. Inspired by the findings of the study, we propose a simplistic new technique that generates potential patches via searching from the present project under test and external resources rather than the historical fix information. According to our experimental results, the simplistic approach based on present information successfully fixes 2X more reproducible build failures than the state-of-art HireBuild based on historical fix information. Furthermore, our results also reveal various findings/guidelines for future advanced build failure fixing. 


Original languageEnglish (US)
Title of host publicationISSTA 2019 - Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis
EditorsDongmei Zhang, Anders Moller
PublisherAssociation for Computing Machinery
Pages146-157
Number of pages12
ISBN (Electronic)9781450362245
DOIs
StatePublished - Jul 10 2019
Externally publishedYes
Event28th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2019 - Beijing, China
Duration: Jul 15 2019Jul 19 2019

Publication series

NameISSTA 2019 - Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis

Conference

Conference28th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2019
Country/TerritoryChina
CityBeijing
Period7/15/197/19/19

Keywords

  • Automated Program Repair
  • Build Failure Fixing
  • Build System

ASJC Scopus subject areas

  • Computational Theory and Mathematics
  • Computer Science Applications
  • Software

Fingerprint

Dive into the research topics of 'History-driven Build Failure Fixing: How Far Are We?'. Together they form a unique fingerprint.

Cite this