Understanding build issue resolution in practice: symptoms and fix patterns

Y Lou, Z Chen, Y Cao, D Hao, L Zhang - … of the 28th ACM Joint Meeting …, 2020 - dl.acm.org
Proceedings of the 28th ACM Joint Meeting on European Software Engineering …, 2020dl.acm.org
Build systems are essential for modern software maintenance and development, while build
failures occur frequently across software systems, inducing non-negligible costs in
development activities. Build failure resolution is a challenging problem and multiple studies
have demonstrated that developers spend non-trivial time in resolving encountered build
failures; to relieve manual efforts, automated resolution techniques are emerging recently,
which are promising but still limitedly effective. Understanding how build failures are …
Build systems are essential for modern software maintenance and development, while build failures occur frequently across software systems, inducing non-negligible costs in development activities. Build failure resolution is a challenging problem and multiple studies have demonstrated that developers spend non-trivial time in resolving encountered build failures; to relieve manual efforts, automated resolution techniques are emerging recently, which are promising but still limitedly effective. Understanding how build failures are resolved in practice can provide guidelines for both developers and researchers on build issue resolution. Therefore, this work presents a comprehensive study of fix patterns in practical build failures. Specifically, we study 1,080 build issues of three popular build systems Maven, Ant, and Gradle from Stack Overflow, construct a fine-granularity taxonomy of 50 categories regarding to the failure symptoms, and summarize the fix patterns for different failure types. Our key findings reveal that build issues stretch over a wide spectrum of symptoms; 67.96% of the build issues are fixed by modifying the build script code related to plugins and dependencies; and there are 20 symptom categories, more than half of whose build issues can be fixed by specific patterns. Furthermore, we also address the challenges in applying non-intuitive or simplistic fix patterns for developers.
ACM Digital Library