Title
Escaping Dependency Hell: Finding Build Dependency Errors with the Unified Dependency Graph
Abstract
Modern software projects rely on build systems and build scripts to assemble executable artifacts correctly and efficiently. However, developing build scripts is error-prone. Dependency-related errors in build scripts, mainly including missing dependencies and redundant dependencies, are common in various kinds of software projects. These errors lead to build failures, incorrect build results or poor performance in incremental or parallel builds. To detect such errors, various techniques are proposed and suffer from low efficiency and high false positive problems, due to the deficiency of the underlying dependency graphs. In this work, we design a new dependency graph, the unified dependency graph (UDG), which leverages both static and dynamic information to uniformly encode the declared and actual dependencies between build targets and files. The construction of UDG facilitates the efficient and precise detection of dependency errors via simple graph traversals. We implement the proposed approach as a tool, VeriBuild, and evaluate it on forty-two well-maintained open-source projects. The experimental results show that, without losing precision, VeriBuild incurs 58.2% less overhead than the state-of-the-art approach. By the time of writing, 398 detected dependency issues have been confirmed by the developers.
Year
DOI
Venue
2020
10.1145/3395363.3397388
ISSTA '20: 29th ACM SIGSOFT International Symposium on Software Testing and Analysis Virtual Event USA July, 2020
DocType
ISBN
Citations 
Conference
978-1-4503-8008-9
0
PageRank 
References 
Authors
0.34
22
6
Name
Order
Citations
PageRank
Gang Fan1151.92
Chengpeng Wang200.68
Rongxin Wu352819.69
Xiao Xiao4161.59
Qingkai Shi5447.50
Charles Zhang651228.97