一句话:通过分析构建日志与仓库信息,自动检测持续集成中的四类反模式并报告过程退化。
持续集成(CI)被广泛使用,但实践中反模式会逐步渗入项目,削弱其收益,且往往难以及早发现。作者先调查124名开发者对CI反模式的认识,进而构建了CI-Odor报告工具:它通过分析常规构建日志和仓库信息,自动检测四类相关反模式。为评估有效性,作者分析了36个流行Java项目的18,474份构建日志,发现3,823条高严重性警告,且分布在多个项目中。随后,他们通过13名项目原开发者的调查以及42名开发者的总体反馈进行验证,结果确认了所生成报告的相关性。
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.
@inproceedings{VassalloPGP19,
title = {Automated Reporting of Anti-Patterns and Decay in Continuous Integration},
author = {Carmine Vassallo and Sebastian Proksch and Harald C. Gall and Massimiliano Di Penta},
booktitle = {ICSE},
year = {2019},
doi = {10.1109/icse.2019.00028}
}