一句话:首次系统比较持续集成改进技术,评估10种技术的14个变体在构建与测试粒度上的得失。
持续集成(CI)在现代软件工程中被广泛采用,但成本高昂,Google 和 Mozilla 的 CI 系统耗资数百万美元。已有多种技术有望节省 CI 成本或缩短反馈时间,但其收益可能在其他维度带来代价,也可能在非设计场景中意外有效。本文首次对改进 CI 的技术进行全面比较,在构建和测试两种粒度上评估基于选择与优先级策略的 10 种技术共 14 个变体。作者在 100 个真实项目上,用 10 种成本与反馈时间节省指标衡量其优缺点,分析哪些设计决策有助于不同维度的收益,并综合结果提出未来研究建议。
Continuous integration (CI) is a widely used practice in modern software engineering. Unfortunately, it is also an expensive practice - Google and Mozilla estimate their CI systems in millions of dollars. There are a number of techniques and tools designed to or having the potential to save the cost of CI or expand its benefit - reducing time to feedback. However, their benefits in some dimensions may also result in drawbacks in others. They may also be beneficial in other scenarios where they are not designed to help. In this paper, we perform the first exhaustive comparison of techniques to improve CI, evaluating 14 variants of 10 techniques using selection and prioritization strategies on build and test granularity. We evaluate their strengths and weaknesses with 10 different cost and time-tofeedback saving metrics on 100 real-world projects. We analyze the results of all techniques to understand the design decisions that helped different dimensions of benefit. We also synthesized those results to lay out a series of recommendations for the development of future research techniques to advance this area.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{abs-2102-06666,
title = {What Helped, and what did not? An Evaluation of the Strategies to Improve Continuous Integration},
author = {Xianhao Jin and Francisco Servant},
booktitle = {ICSE},
year = {2021},
doi = {10.1109/icse43902.2021.00031}
}