写点什么

管道式的持续集成解决方案好吗?

  • 2007-09-29
  • 本文字数:941 字

    阅读完需:约 3 分钟

敏捷开发的最佳实践之一就是持续集成,它使团队成员可以有规律地将他们的代码与基线集成并运行所有的单元测试和系统测试。在大多数团队中,当代码检入后, 持续集成服务器都能很快地自动完成这个工作。通常在项目初期一切都很顺利,但有时当团队或代码基线变得很大时,持续集成的速度就会开始下降。构建内容在增 加而反馈速度却在下降,构建一次可能要花上一小时甚至更多才能知道成功与否,而些时,有人可能已经将他们的代码检入到构建失败的版本中了。

为了解决这个问题,很多团队使他们的持续集成“管道化”,即分阶段进行构建。运行轻量级的构建,这个构建仅包括执行速度较快的那些测试,这样团队可以较快的得到初步结果,而更大范围的构建会在后台运行。而那些较慢的功能 / 集成 / 系统测试会在随后的阶段执行。 Simon Stewart 认为这种解决方案是有好处的

这就是我们为什么最终会采用构建管道来做解决方案。较迟的构建比较早的构建会执行的更慢一些,但一切是按照能够提供更快反馈的方式来组织的。我们知道我们 只需要手工测试这些构建,让它们穿过管道的终点,假如我们向其中增加一些阶段,那么我们对应用程序按照预期方式执行的自信就会随之增加。如果我们足够聪明 (快看!我们又一次拉动了“聪明”这根杠杆!)的话,我们还可以把应用部署到越来越现实的环境中,并且把它当作管道的一部分来在上面运行测试,而这些是我 们在使用开发工作站时从来没有想到的事情。

然而,不是所有人都认为这是个好主意。 ThoughtWorks 的 Julian Simpson 把它叫做“厄运管道(pipeline of doom)”。他认为,我们是在用管道(一个慢速构建机制)来回避这个问题,而不是解决这个问题。这种方法只能给我们虚假的信心,认为我们的集成是成功的。开发人员一直在几个迭代中使用这些不好的代码,这只能加剧问题。

我发现管道方法存在另一方面的问题,那就是在开发者检入代码之前不会迫使他们运行功能测试,这就相当于你不让他们通过重构去改进代码。而假如大家运行它们 时感到痛苦的话,他们就有动力去解决它们。那些测试相当于给你当头棒喝:你必须小心又小心,否则,你可能在一天内只能运行很少的几次测试。

那么,你的团队使用了阶段化持续集成了吗?对你来说,效果如何呢?

查看英文原文 Is a Pipelined Continous Integration a Good Idea?

2007-09-29 05:131154
用户头像

发布了 100 篇内容, 共 23.2 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

技术分享 | Selenium多浏览器处理

霍格沃兹测试开发学社

接口测试实战| GET/POST 请求区别详解

霍格沃兹测试开发学社

技术分享 | app自动化测试(Android)--高级定位技巧

霍格沃兹测试开发学社

干货|app自动化测试之Appium问题分析及定位

霍格沃兹测试开发学社

文件传输软件的市场现状和未来趋势

镭速

文件传输软件

全网首档操作系统探访体验栏目“龙蜥+超级探访”震撼上线!看国产 OS 如何乘风破浪

OpenAnolis小助手

开源 操作系统 龙蜥 统信软件 超级探访

融云:从「对话框」跳进魔法世界,AIGC 带给社交的新范式

融云 RongCloud

人工智能 AI 通信 社交 AIGC

基于Vue构建低代码平台的思考

互联网工科生

Vue 低代码 表单 JNPF

自动化实践-全量Json对比在技改需求提效实践

得物技术

json 自动化 测试 企业号 8 月 PK 榜

ThreadLocal

红袖添香

Java ThreadLocal ThreadLocalMap Java 线程

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 版本更新 AIGC

恭喜!杭州悦数成为「大数据技术标准推进委员会」2023 年度合作伙伴

悦数图数据库

数据库 图数据库 NebulaGraph

不可错过!12个编写整洁Java代码的最佳实践方法

飞算JavaAI开发助手

悦数图数据库:发布 AI 大模型解决方案,开启「图+ 大模型」应用新范式

悦数图数据库

数据库 图数据库 分布式图数据库 NebulaGraph 悦数

企业文件传输软件安全性分析与对比

镭速

文件传输软件

【我和openGauss的故事】在vm中安装openEuler及使用yum安装openGauss

daydayup

【我和openGauss的故事】带有out参数的存储过程及自定义函数的重载测试

daydayup

干货|app自动化测试之Capability 使用进阶

霍格沃兹测试开发学社

瓴羊Quick BI在Gartner魔力象限中脱颖而出

夜雨微澜

PoseiSwap 开启“Poseidon”池,治理体系或将全面开启

西柚子

Jupyter Notebook 遇上 NebulaGraph,可视化探索图数据库

NebulaGraph

AI Jupyter Notebook 图数据库

Uiautomator2.0

霍格沃兹测试开发学社

测试必会 Docker 实战(一):掌握高频命令,夯实内功基础

霍格沃兹测试开发学社

技术分享 | 测试平台开发-前端开发之Vue.js 框架

霍格沃兹测试开发学社

瓴羊Quick BI:数据大屏可视化展示,助企业提升竞争优势

巷子

软件测试/测试开发丨Python 内置库 json

测试人

Python json 软件测试

8月征文:今天你 ARTS 打卡了吗?【中奖名单见文末】

InfoQ写作社区官方

ARTS 打卡计划 征文活动 热门活动

管道式的持续集成解决方案好吗?_研发效能_Amr Elssamadisy_InfoQ精选文章