网易首页 > 网易号 > 正文 申请入驻

发明Jenkins的人,现在劝你少跑点测试

0
分享至

2004年,Sun Microsystems的一名开发者受够了构建老是被自己搞挂。他写了个小工具当副业,专门抓自己的错。这个工具后来叫Hudson,再后来叫Jenkins,最终教会了整个行业一个习惯:每次提交都自动跑测试,一直跑下去。

二十年后,同一个人——川口耕介(Kohsuke Kawaguchi)——联合创办的公司,核心产品建立在完全相反的想法上:用机器学习预测某次改动会让哪些测试失败,然后只跑那些。早期客户报告测试执行时间砍掉了90%。这个工具现在以 CloudBees Smart Tests 的名字出货。

让"每次提交跑一万个测试"变便宜的人,如今在研究怎么只跑其中一小部分。这不是自相矛盾,是同一个问题从两头看。

那个发明了习惯的工具

川口2004年在Sun做Hudson,是因为当时的持续集成服务器又重又贵,属于企业级产品。他的判断是:把自动化做成一个免费、可插拔的服务器,任何团队一个下午就能立起来。几年之内,Hudson成了Java世界默认的CI服务器。

接下来是开源史上最离奇的章节之一。2010年Oracle收购Sun,并主张Hudson商标。2011年1月,社区投票决定改名:214票赞成改成Jenkins,14票反对。约85%的开发者迁往Jenkins,前25个插件里有21个跟着走。Oracle留下Hudson,捐给了Eclipse,到2017年被宣布淘汰。Jenkins这个"分叉"几乎所有人都跟了,再没回头。

川口在自己的LinkedIn上把结果写得很直白:一个拥有超过1500个插件的生态,十多年里一直是最流行的CI/CD软件。不管你怎么看Jenkins老化的架构,这种寿命在开发者工具里几乎闻所未闻。

但真正关键的是这一点:Jenkins不只是自动化了构建,它改变了团队对"跑得起多少测试"的认知。当每次提交跑全量套件变成免费,套件就开始膨胀。没人需要盯时钟了,也就没人去修剪。

Jenkins自己造出来的问题

时间快进到现在,算术反过来了。一条10分钟的CI流水线让团队保持流畅;一条90分钟的流水线做的事比浪费钱更糟——它改变开发者行为。人们开始攒改动,合并大分支来摊薄等待,反馈回路从分钟拉长到小时,持续集成原本的意义悄悄流失。

行业的第一反应是堆算力:更多并行执行器、更多机器、切分套件。账单跟着分钟数一起涨。第二个答案才是川口选的:别再假装每个测试在每次提交上都有相同的失败概率。

这是Launchable的创立洞察,他2019年和Harpreet Singh一起做的公司。他们观察到,Facebook多年前就在内部建了预测式测试选择,作为私有优化。技术是work的,但普通团队用不上。Launchable的卖点就是把它变成任何CI流水线都能调用的产品。

预测式测试选择到底怎么运转

机制没有营销话术那么玄,这是褒义。按Launchable自己的文档和产品描述:

  • 模型在你的历史数据上训练。每次构建、每个测试会话、每条通过/失败结果都被记录下来。不存在一个通用的"哪些测试通常失败"的大模型,信号来自团队自己的战绩。
  • 每次提交拿到一个打分后的子集。你推送时,系统看哪些文件变了,对照历史上"改动与测试失败"的关系,返回一份针对这次改动最可能失败的测试排序。
  • 你跑一个切片,带置信度旋钮。流水线请求套件的前N个百分点;模型越有把握,你可以要更小的切片。团队最自豪的功能之一是"置信曲线",把模型随着数据积累而成熟的过程可视化。
  • CLI优先,语言无关。CLI包了一层REST API,对接Java、Python、Ruby、Go、JavaScript、.NET、Perl等二十多个测试运行器。

数字来自早期客户。2024年8月CloudBees收购Launchable时,新闻稿引用了BMW和GoCardless的数据:机器小时减少50%,测试执行时间减少90%,构建时间减少40%。这些是具名客户提供的厂商口径数字,不是独立基准测试,但具体到值得当作方向来认真对待。

发布帖里不会写的那个坑

一个预测失败的模型,从统计上讲,是被允许出错的。如果它把某个测试排进"这次改动不太可能失败"并跳过,而这个测试其实被你的提交搞坏了,你要到后面才知道——通常是第二天夜里,定时全量跑把它抓出来。如果你的发布节奏以周计,这个延迟没问题;如果你一小时内就要上生产,可能就不行。

三个风险值得单独列出来:

  • 冷启动。模型第一天什么都不知道。你需要几周的历史记录,置信曲线才有意义。只有几百个测试的小项目攒不出有用信号。
  • 漂移。重构架构或引入新模块,学到的"改动—失败"关系就会偏移。系统需要持续重新学习,你也需要注意到它准确率下滑。
  • 覆盖盲区。预测式选择优化的是"找出历史说很可能失败的测试"。极少失败的测试永远排在末尾,而防住罕见回归的测试恰恰就住在那里。定时全量跑不是可选项,它是让这个优化变得安全的兜底网。

需要说明:我没有在生产环境跑过Launchable或CloudBees Smart Tests。我自己的项目在GitHub Actions上跑小套件,整条流水线几分钟就结束,对这类项目,这个产品品类确实不划算。这一点很重要,因为决策依据是套件规模,不是时髦。

底下的那套哲学

在最近与Josh Long的播客对话里,川口讲了一个关于AI在软件开发中的观点,也正好是他职业生涯的总结:AI正在快速改变软件开发,但最终胜出的系统,可能是那些把智能带进既有工作流的,而不是逼所有人搬进一个巨大的聊天界面。

具体到测试上看这意味着什么。预测式测试选择不要求开发者做任何新动作。你不用把代码粘进聊天窗口,不用学提示词格式。流水线还是2011年那样跑测试,唯一的区别是一个学习出来的模型决定这次提交该跑套件的哪一片。智能坐在你已有的工作流里面。

这个判断比听起来更锋利,因为它跟当下大多数打着"AI for developers"旗号出货的东西相反。默认的卖点是新界面:新聊天、新面板、新地方要你去查。川口的赌注——背后是二十年看着工具要么嵌入要么死掉——是AI的持久形态是隐形的。Jenkins赢,是因为它嵌进了构建里;Smart Tests想赢,是因为它嵌进了流水线里。没有东西要采纳,也没有东西要离开。

一张清单:这东西适合你的团队吗

"你该不该用"的诚实答案是"看情况"。下面是我真会走一遍的决策清单:

  • 你的套件超过30分钟吗?低于这个数,预测式选择省下的是分钟级收益,记录、训练、监控模型的运维开销不划算。
  • 你每周有几百次提交吗?模型靠历史喂养,靠新结果重新训练。提交少的仓库会把它饿死。
  • 你有至少几个月的CI数据可训练吗?没有历史就没有信号。除了现在开始记录,没别的可做,而记录本身不花钱。
  • 你能容忍罕见失败被晚发现吗?如果每次合并都是当天上生产,把这个代价诚实地和节省的分钟数放在一起称。
  • 团队里有人愿意盯置信曲线吗?一个没人监控的跳测试模型,是安全网上的慢性渗漏。指定负责人,否则别上。

如果大部分答案是"否",无聊的替代方案依然有效:把套件拆成提交级的快速层和夜间的慢速层,把不稳定的测试修掉而不是重试,能缓存的都缓存。川口的公司瞄准的是那些招数已经不够用的团队。

一个完整的圆

这个故事有种整齐的对称。2004年,测试的门槛是成本,川口把它拆了。行业的回应是建出大到成本再次成为门槛的套件,只是这次用小时计而不是许可证计。现在同一个人在攻老问题的新版本,用的技术之所以存在,正是因为上百万条Jenkins流水线花了二十年,记录下了这种模型恰好需要的数据。

Smart Tests本身赢不赢没那么重要,重要的是这个模式:开发者工具里下一波有用的AI,大概不会长成聊天窗口的样子。它会看起来像你现有的流水线,安静地少跑一些,抓住同样的失败。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
乒乓亚锦赛:团体8强今天产生!国乒向鹏、李天阳首秀!10月20日赛程出炉

乒乓亚锦赛:团体8强今天产生!国乒向鹏、李天阳首秀!10月20日赛程出炉

好乒乓
2026-10-20 13:00:52
北爱公开赛:常冰玉3-4惜败!7位中国冠军一轮游,压力给到赵心童

北爱公开赛:常冰玉3-4惜败!7位中国冠军一轮游,压力给到赵心童

小火箭爱体育
2026-10-20 19:26:02
重大改革!浙江省委书记王浩宣布,浙江省统一招投标交易平台启用

重大改革!浙江省委书记王浩宣布,浙江省统一招投标交易平台启用

新京报
2026-10-20 23:11:13
特朗普突然意识到:泽连斯基这两下子,怕是要让自己栽个大跟头

特朗普突然意识到:泽连斯基这两下子,怕是要让自己栽个大跟头

雪儿爱追剧
2026-10-19 22:02:59
上海这一天,何超琼唱《龙的传人》,章子怡又肿了,刘嘉玲太松弛

上海这一天,何超琼唱《龙的传人》,章子怡又肿了,刘嘉玲太松弛

枫尘余往逝
2026-10-20 21:48:38
新央企国家数据集团今成立,董事长、总经理亮相

新央企国家数据集团今成立,董事长、总经理亮相

上观新闻
2026-10-20 20:31:29
A股:不必再等周三开盘了,行情已经十分清晰,明天没有任何意外了

A股:不必再等周三开盘了,行情已经十分清晰,明天没有任何意外了

财经大拿
2026-10-20 12:11:04
中央政法委下死命令!严厉查处这些行为,一起都不放过!

中央政法委下死命令!严厉查处这些行为,一起都不放过!

职场资深秘书
2026-10-20 11:23:21
字节把微信逼急了?

字节把微信逼急了?

虎嗅APP
2026-10-19 17:08:22
“成都绕城高速公路车流量太大了”,网友建议“成都五环升格新绕城”,四川省交通运输厅回应:必要性不强,或对城市空间造成严重分割

“成都绕城高速公路车流量太大了”,网友建议“成都五环升格新绕城”,四川省交通运输厅回应:必要性不强,或对城市空间造成严重分割

掌上金牛
2026-10-20 20:08:53
大家今年都“穷”到什么程度了?网友评论区堪比大型“比惨”现场

大家今年都“穷”到什么程度了?网友评论区堪比大型“比惨”现场

夜深爱杂谈
2026-10-20 20:22:43
上海1%跌幅背后的通缩警报

上海1%跌幅背后的通缩警报

凤眼论
2026-10-20 09:20:57
中国十大悬案(两案已告破)

中国十大悬案(两案已告破)

年代回忆
2026-10-17 20:10:28
华为新路由器藏在书架里,造型像本书还带MESH

华为新路由器藏在书架里,造型像本书还带MESH

我是一个养虾人
2026-10-19 13:09:29
张雨绮这个V开到肚脐眼下了,太敢穿了

张雨绮这个V开到肚脐眼下了,太敢穿了

情感大头说说
2026-10-17 04:20:04
8个违规化工厂,竟有7个是村支书家的!

8个违规化工厂,竟有7个是村支书家的!

方清云
2026-10-20 14:04:27
把越野车卖成网红,净利润跌掉87.2%,全网最听劝董事长官宣离职

把越野车卖成网红,净利润跌掉87.2%,全网最听劝董事长官宣离职

观史搜寻着
2026-10-20 18:44:04
李嘉诚的命,真硬!

李嘉诚的命,真硬!

梳子姐
2026-10-15 15:48:06
比砒霜毒 68 倍!冰箱里这 3 样东西,开水煮不死、油炸不掉,赶紧扔

比砒霜毒 68 倍!冰箱里这 3 样东西,开水煮不死、油炸不掉,赶紧扔

时尚的弄潮
2026-10-20 03:53:03
黄克诚晚年吐真言:朱老总带上井冈山的,何止一支军队?

黄克诚晚年吐真言:朱老总带上井冈山的,何止一支军队?

纪史行者
2026-10-18 10:45:20
2026-10-21 00:52:49
全栈遛狗员
全栈遛狗员
白天跟需求对线,晚上在小区遛狗。
240文章数 122关注度
往期回顾 全部

科技要闻

新版MiniMax,能和DeepSeek掰手腕吗?

头条要闻

距中国台湾110公里 日美出动6万人大举军演为历史之最

头条要闻

距中国台湾110公里 日美出动6万人大举军演为历史之最

体育要闻

巴拉克:天生亚军与漫长极夜

娱乐要闻

刘恺威承认新恋情,打球认识

财经要闻

抄底万达之后 私募大佬又对恒大下手了

汽车要闻

黑科技一次看全 2026奇瑞全球创新大会干货汇总

态度原创

数码
艺术
亲子
本地
手机

数码要闻

飞雅F3体验:原来我真的需要一副「会出声的墨镜」

艺术要闻

吴冠中 这幅小画《大巴山中》,368万!

亲子要闻

礼来儿童溃疡性结肠炎新药3期数据:超八成患儿诱导治疗应答

本地新闻

一场垂直登高赛跑出了"山城"的真正内核

手机要闻

iOS 27.2下周发布!苹果将为国内用户带来两个新设置

无障碍浏览 进入关怀版