HireBuild: An Automatic Approach to History-Driven Repair of Build Scripts

Author email: foyzul.hassan@my.utsa.edu
Tool name: HireBuild
Description: Advancements in software build tools such as Maven reduce build management effort, but developers still need specialized knowledge and long time to maintain build scripts and resolve build failures. More recent build tools such as Gradle give developers greater extent of customization flexibility, but can be even more difficult to maintain. According to the TravisTorrent dataset of open-source software continuous integration, 22% of code commits include changes in build script files to maintain build scripts or to resolve build failures. Automated program repair techniques have great potential to reduce cost of resolving software failures, but the existing techniques mostly focus on repairing source code so that they cannot directly help resolving software build failures. To address this limitation, we propose HireBuild: History-Driven Repair of Build Scripts, the first approach to automatic patch generation for build scripts, using fix patterns automatically generated from existing build script fixes and recommending fix patterns based on build log similarity. From TravisTorrent dataset, we extracted 175 build failures and their corresponding fixes which revise Gradle build scripts. Among these 175 build failures, we used the 135 earlier build fixes for automatic fix-pattern generation and the more recent 40 build failures (fixes) for evaluation of our approach. Our experiment shows that our approach can fix 11 of 24 reproducible build failures, or 45% of the reproducible build failures, within comparable time of manual fixes.
Bibtex: @INPROCEEDINGS{8453189, author={F. {Hassan} and X. {Wang}}, booktitle={2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)}, title={HireBuild: An Automatic Approach to History-Driven Repair of Build Scripts}, year={2018}, volume={}, number={}, pages={1078-1089}, keywords={software fault tolerance;software maintenance;software tools;source code (software);software build failures;History-Driven Repair;build log similarity;Gradle build scripts;software build tools;build script files;fix patterns;reproducible build failures;HireBuild;Automated program repair techniques;source code;automatic patch generation;build script fixes;Maintenance engineering;Software;Tools;Task analysis;Computer bugs;Data mining;Software engineering;Patch Generation;Software Build Scripts;Build Logs}, doi={10.1145/3180155.3180181}, ISSN={1558-1225}, month={May},}
Link to public pdf: https://ieeexplore.ieee.org/abstract/document/8453189
Link to tool webpage: http://hyrts.org/
Link to demo: Not provided by authors
Category: None
Year and Conference: 2018, ICSE
Terms of use