10.5281/zenodo.2578271
https://zenodo.org/records/2578271
oai:zenodo.org:2578271
Carmine Vassallo
Carmine Vassallo
0000-0003-0495-6803
University of Zurich
Sebastian Proksch
Sebastian Proksch
0000-0003-1856-9361
University of Zurich
Harald C. Gall
Harald C. Gall
0000-0002-3874-5628
University of Zurich
Massimiliano Di Penta
Massimiliano Di Penta
0000-0002-0340-9747
University of Sannio
Automated Reporting of Anti-Patterns and Decay in Continuous Integration
Zenodo
2019
Continuous Integration
Anti-Pattern
Detection
CI-Smell
CI-Decay
2019-02-26
10.5281/zenodo.2578270
https://zenodo.org/communities/empirical-software-engineering
Other (Open)
Continuous Integration (CI) is a widely-used software engineering practice. The software is continuously built so that changes can be easily integrated and issues such as unmet quality goals or style inconsistencies get detected early. Unfortunately, it is not only hard to introduce CI into an existing project, but it is also challenging to live up to the CI principles when facing tough deadlines or business decisions. Previous work has identified common anti-patterns that reduce the promised benefits of CI. Typically, these anti-patterns slowly creep into a project over time before they are identified. We argue that automated detection can help with early identification and prevent such a process decay. In this work, we further analyze this assumption and survey 124 developers about CI anti-patterns. From the results, we build CI-Odor, a reporting tool for CI processes that detects the existence of four relevant anti-patterns by analyzing regular build logs and repository information. In a study on the 18,474 build logs of 36 popular Java projects, we reveal the presence of 3,823 high-severity warnings spread across projects. We validate our reports in a survey among 13 original developers of these projects and through general feedback from 42 developers that confirm the relevance of our reports.
To appear in the proceedings of the 41st IEEE/ACM International Conference on Software Engineering (ICSE) technical track, Montréal, Canada, 2019.