Detecting Build Dependency Errors in Incremental Builds
Incremental and parallel builds performed by build tools such as Make are the heart of modern C/C++ software projects. Their correct and efficient execution depends on build scripts. However, build scripts are prone to errors. The most prevalent errors are missing dependencies (MDs) and redundant dependencies (RDs). The state-of-the-art methods for detecting these errors rely on clean builds (i.e., full builds of a subset of software configurations in a clean environment), which is costly and takes up to a few hours for large-scale projects. To address these challenges, we propose a novel approach called EChecker to detect build dependency errors in the context of incremental builds. The core idea of EChecker is to automatically update actual build dependencies by inferring them from C/C++ pre-processor directives and Makefile changes from new commits, which avoids clean builds when possible. EChecker achieves higher efficiency than the methods that rely on clean builds while maintaining effectiveness. We selected 12 representative projects, with their sizes ranging from small to large, with 240 commits (20 commits for each project), based on which we evaluated the effectiveness and efficiency of EChecker. We compared the evaluation results with a state-of-the-art build dependency error detection tool. The evaluation shows that the F-1 score of EChecker improved by 0.18 over the state-of-the-art method. EChecker increases the build dependency error detection efficiency by an average of 85.14 times (with a median of 16.30 times). The results demonstrate that EChecker can support practitioners in detecting build dependency errors efficiently.
Fri 20 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:30 - 16:30 | Builds and TestingTechnical Papers at EI 9 Hlawka Chair(s): Zeyu Sun Institute of Software at Chinese Academy of Sciences | ||
15:30 20mTalk | Enhancing Multi-agent System Testing with Diversity-Guided Exploration and Adaptive Critical State Exploitation Technical Papers Xuyan Ma Institute of Software at Chinese Academy of Sciences, Yawen Wang Institute of Software at Chinese Academy of Sciences, Junjie Wang Institute of Software at Chinese Academy of Sciences, Xiaofei Xie Singapore Management University, Boyu Wu Institute of Software at Chinese Academy of Sciences, Shoubin Li Institute of Software at Chinese Academy of Sciences, Fanjiang Xu Institute of Software at Chinese Academy of Sciences, Qing Wang Institute of Software at Chinese Academy of Sciences DOI | ||
15:50 20mTalk | Commit Artifact Preserving Build Prediction Technical Papers Guoqing Wang Peking University, Zeyu Sun Institute of Software at Chinese Academy of Sciences, Yizhou Chen Peking University, Yifan Zhao Peking University, Qingyuan Liang Peking University, Dan Hao Peking University DOI | ||
16:10 20mTalk | Detecting Build Dependency Errors in Incremental Builds Technical Papers Jun Lyu Nanjing University, Shanshan Li Nanjing University, He Zhang Nanjing University, Yang Zhang Nanjing University, Guoping Rong Nanjing University, Manuel Rigger National University of Singapore DOI |