当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
An empirical characterization of bad practices in continuous integration
Empirical Software Engineering ( IF 4.1 ) Pub Date : 2020-01-08 , DOI: 10.1007/s10664-019-09785-8
Fiorella Zampetti , Carmine Vassallo , Sebastiano Panichella , Gerardo Canfora , Harald Gall , Massimiliano Di Penta

Continuous Integration (CI) has been claimed to introduce several benefits in software development, including high software quality and reliability. However, recent work pointed out challenges, barriers and bad practices characterizing its adoption. This paper empirically investigates what are the bad practices experienced by developers applying CI. The investigation has been conducted by leveraging semi-structured interviews of 13 experts and mining more than 2,300 Stack Overflow posts. As a result, we compiled a catalog of 79 CI bad smells belonging to 7 categories related to different dimensions of a CI pipeline management and process. We have also investigated the perceived importance of the identified bad smells through a survey involving 26 professional developers, and discussed how the results of our study relate to existing knowledge about CI bad practices. Whilst some results, such as the poor usage of branches, confirm existing literature, the study also highlights uncovered bad practices, e.g., related to static analysis tools or the abuse of shell scripts, and contradict knowledge from existing literature, e.g., about avoiding nightly builds. We discuss the implications of our catalog of CI bad smells for (i) practitioners, e.g., favor specific, portable tools over hacking, and do not ignore nor hide build failures, (ii) educators, e.g., teach CI culture, not just technology, and teach CI by providing examples of what not to do, and (iii) researchers, e.g., developing support for failure analysis, as well as automated CI bad smell detectors.

中文翻译:

持续集成中不良实践的经验表征

据称,持续集成 (CI) 可为软件开发带来多项好处,包括高软件质量和可靠性。然而,最近的工作指出了采用该技术的挑战、障碍和不良做法。本文实证调查了开发人员在应用 CI 时遇到的不良做法。该调查是通过对 13 位专家的半结构化访谈和挖掘 2,300 多个 Stack Overflow 帖子进行的。因此,我们编制了一个目录,其中包含与 CI 管道管理和流程的不同维度相关的 7 个类别的 79 个 CI 不良气味。我们还通过一项涉及 26 名专业开发人员的调查调查了已识别出的难闻气味的感知重要性,并讨论了我们的研究结果如何与有关 CI 不良实践的现有知识相关联。虽然一些结果(例如分支使用不当)证实了现有文献,但该研究还强调了未发现的不良做法,例如与静态分析工具或滥用 shell 脚本有关,并与现有文献中的知识相矛盾,例如关于避免使用 nightly建立。我们讨论了我们的 CI 不良气味目录对 (i) 从业者的影响,例如,偏爱特定的便携式工具而不是黑客攻击,并且不要忽视或隐藏构建失败,(ii) 教育者,例如,教授 CI 文化,而不仅仅是技术,并通过提供不该做什么的例子来教授 CI,以及 (iii) 研究人员,例如,开发对故障分析的支持,以及自动化 CI 异味检测器。例如分支使用不当,证实了现有文献,该研究还强调了未发现的不良做法,例如,与静态分析工具或滥用 shell 脚本有关,与现有文献中的知识相矛盾,例如,关于避免夜间构建。我们讨论了我们的 CI 不良气味目录对 (i) 从业者的影响,例如,偏爱特定的便携式工具而不是黑客攻击,并且不要忽视或隐藏构建失败,(ii) 教育者,例如,教授 CI 文化,而不仅仅是技术,并通过提供不该做什么的例子来教授 CI,以及 (iii) 研究人员,例如,开发对故障分析的支持,以及自动化 CI 异味检测器。例如分支使用不当,证实了现有文献,该研究还强调了未发现的不良做法,例如,与静态分析工具或滥用 shell 脚本有关,与现有文献中的知识相矛盾,例如,关于避免夜间构建。我们讨论了我们的 CI 不良气味目录对 (i) 从业者的影响,例如,偏爱特定的便携式工具而不是黑客攻击,并且不要忽视或隐藏构建失败,(ii) 教育者,例如,教授 CI 文化,而不仅仅是技术,并通过提供不该做什么的例子来教授 CI,以及 (iii) 研究人员,例如,开发对故障分析的支持,以及自动化 CI 异味检测器。并且与现有文献中的知识相矛盾,例如,关于避免夜间构建。我们讨论了我们的 CI 不良气味目录对 (i) 从业者的影响,例如,偏爱特定的便携式工具而不是黑客攻击,并且不要忽视或隐藏构建失败,(ii) 教育者,例如,教授 CI 文化,而不仅仅是技术,并通过提供不该做什么的例子来教授 CI,以及 (iii) 研究人员,例如,开发对故障分析的支持,以及自动化 CI 异味检测器。并且与现有文献中的知识相矛盾,例如,关于避免夜间构建。我们讨论了我们的 CI 不良气味目录对 (i) 从业者的影响,例如,偏爱特定的便携式工具而不是黑客攻击,并且不要忽视或隐藏构建失败,(ii) 教育者,例如,教授 CI 文化,而不仅仅是技术,并通过提供不该做什么的例子来教授 CI,以及 (iii) 研究人员,例如,开发对故障分析的支持,以及自动化 CI 异味检测器。
更新日期:2020-01-08
down
wechat
bug