Affiliation:
1. University of Michigan–Dearborn
2. Virginia Tech
3. University of Texas at San Antonio
Abstract
Continuous integration (CI) practices encourage developers to frequently integrate code into a shared repository. Each integration is validated by automatic build and testing such that errors are revealed as early as possible. When CI failures or integration errors are reported, existing techniques are insufficient to automatically locate the root causes for two reasons. First, a CI failure may be triggered by faults in source code and/or build scripts, whereas current approaches consider only source code. Second, a tentative integration can fail because of build failures and/or test failures, whereas existing tools focus on test failures only. This article presents UniLoc, the first unified technique to localize faults in
both
source code and build scripts given a CI failure log, without assuming the failure’s location (source code or build scripts) and nature (a test failure or not). Adopting the information retrieval (IR) strategy, UniLoc locates buggy files by treating source code and build scripts as documents to search and by considering build logs as search queries. However, instead of naïvely applying an off-the-shelf IR technique to these software artifacts, for more accurate fault localization, UniLoc applies various domain-specific heuristics to optimize the search queries, search space, and ranking formulas. To evaluate UniLoc, we gathered 700 CI failure fixes in 72 open source projects that are built with Gradle. UniLoc could effectively locate bugs with the average mean reciprocal rank value as 0.49, mean average precision value as 0.36, and normalized discounted cumulative gain value as 0.54. UniLoc outperformed the state-of-the-art IR-based tool BLUiR and Locus. UniLoc has the potential to help developers diagnose root causes for CI failures more accurately and efficiently.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Reference85 articles.
1. Apache Ant Project. 2018. Ant. Retrieved August 18 2018 from https://ant.apache.org/.
2. Apache Ant Project. 2018. Ivy. Retrieved August 18 2018 from http://ant.apache.org/ivy/.
3. Apache Lucene. 2018. Lucene. Retrieved August 18 2018 from http://lucene.apache.org/.
4. Apache Maven Project. 2018. Maven. Retrieved August 18 2018 from https://maven.apache.org/.
5. PMD. 2018. PMD. Retrieved August 18 2018 from https://pmd.github.io/.
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Formal Explainer for Just-In-Time Defect Predictions;ACM Transactions on Software Engineering and Methodology;2024-08-26