AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

使用 Clover 的 Test Optimization 进行更快的测试

  • 2008-11-22
  • 本文字数:1045 字

    阅读完需:约 3 分钟

最近发布的 Clover 2.4 引入了一个叫做“Test Optimization”的新特性,该特性会加快 CI 构建并减少开发者等待测试的时间。它使用了“per-test”覆盖数据只运行受代码改变影响的测试。

Atlassian 发布了其流行的代码覆盖分析工具 Clover 2.4 版,增加了一个名为“ Test Optimization ”的新特性,他说到:

Clover 可以优化测试的运行,极大地降低测试代码改变所需的时间。典型地,只要代码发生了改变,完整的测试套件都会运行。通过使用 Test Optimization,Clover 会根据具体的改变决定要运行的最佳测试子集。只测试你所需要的会提供更快的反馈,而这一切并不会降低测试质量。

在衰退测试套件中计算代码改变所产生的影响是需要时间的,而降低该时间会极大地提升团队的生产率。很多人都认为这就是团队为何要努力保持其单元测试的快速执行的原因,确实是这样的。但有很多原因导致即使团队保证了每个单元测试的快速执行,其整个应用所累积起来的测试套件依然要花费很多时间去运行。

改进这种情况的一个合理的办法就是只运行受代码改变影响的测试。手工完成这项工作不仅要花费很多时间,还会频频导致“测试丢失”,最终失去了优化测试运行带给我们的好处。Clover 的这个新特性为团队提供一种方式来完成这个任务而无需手工操作,同时将“测试丢失”的风险降到最低。

Brendan Humphreys 详细描述了 Clover 是如何完成这个工作的

作为一个代码覆盖工具,Clover 度量每个测试的代码覆盖率——也就是说,它会度量哪些测试运行了哪些代码。通过这种方式,针对某个源代码文件,Clover 可以精确判断出哪些测试适合它。Clover 使用该信息与源文件的修改信息来构建适合于改变的源代码文件的测试子集。接下来这个子集被传到测试运行器中,同时传递的还有上次构建时失败的测试以及之后新加的测试。

根据 Humphrey 所述,Test Optimization 还拥有一些策略以调整测试运行的顺序,他说这可以提升测试运行的效率。关于这些策略:

我们还可以使用一些策略调整 Clover 组合的测试集的顺序:

  • 失败优先(Failfast)——Clover 按照失败的可能性大小运行测试,这样任何失败都会尽可能快的出现。
  • 随机——随机运行测试可以很好的去掉内部测试的依赖。
  • 正常——不会重新排序。测试按照他们传递到测试运行器的顺序运行。

Humphreys 接下来谈到了其 FishEye 团队对该新特性试用 10 天的结果,他说他们的“测试执行时间降低了 25%”。

请花些时间了解一下 Clover 的新版本,尤其是 Humphrey 的感受来看看它是否有助于你的团队。

查看英文原文: Faster Test Runs With Clover’s Test Optimization

2008-11-22 00:401108
用户头像

发布了 88 篇内容, 共 266.6 次阅读, 收获喜欢 8 次。

关注

评论

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

星环科技发布工业互联网解决方案,场景化赋能制造业转型升级

星环科技

SQL 改写系列十:半连接转内连接

OceanBase 数据库

软件测试 | 测试开发 | css selector用法

测吧(北京)科技有限公司

测试

华为云快成长直播间云会议专场,华为员工都在用的高效办公神器

科技云未来

ODC 3.4.0 现已上线,让数据库开发更简单

OceanBase 数据库

为企业产品实现随时随地的客户服务

Baklib

产品 企业 客户服务 帮助中心 降低成本

软件测试 | 测试开发 | 前端代码优化小技巧

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | web自动化测试-文件上传与弹框处理

测吧(北京)科技有限公司

测试

如何让用户用好你的在线设计协作工具?帮助中心来解决

Baklib

高效的知识管理应具备的元素

Baklib

知识管理 高效 知识库

软件测试 | 测试开发 | 记一次connection-reset-by-peer问题定位

测吧(北京)科技有限公司

测试

Sophon AutoCV Q&A大放送:如何加速视觉模型生产和落地(下篇)

星环科技

热烈祝贺致欧家居获2022 IDC中国未来企业大奖「未来数字基础架构领军者优秀奖」

OceanBase 数据库

团队难带测试管理太难做?十多位名企测试专家带你成为优秀管理!

测吧(北京)科技有限公司

测试

[MyBatisPlus]MyBatisPlus简介、入门案例

十八岁讨厌编程

Java 后端开发 9月月更

软件测试 | 测试开发 | 测试人生 | 资深外包逆袭大厂测试开发:面试官的“歧视”表情深深刺痛了我

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | maven构建加速方法

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 自动化测试与性能测试篇(附答案)

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | app自动化测试(Android)--App 控件定位

测吧(北京)科技有限公司

测试

Elasticsearch安全又双叒叕出问题? 搜索引擎该怎么选

星环科技

软件测试 | 测试开发 | Android动态权限详解

测吧(北京)科技有限公司

测试

[SpringBoot]SpringBoot整合第三方技术

十八岁讨厌编程

Java 后端 9月月更

全自研!腾讯云数据库内核 TXSQL性能提升了20%

科技热闻

软件测试 | 测试开发 | Appium 自动化测试从入门到框架实战精华学习笔记(二)

测吧(北京)科技有限公司

测试

星环科技多模型数据统一存储的大数据分布式存储平台方案分享

星环科技

软件测试 | 测试开发 | 测试人生 | 双非院校,从外包到外企涨薪85%,他的涨薪秘籍全公开

测吧(北京)科技有限公司

测试

如何做有价值的企业知识管理?

Baklib

创业 知识管理 企业 知识库

软件测试 | 测试开发 | 使用 adb 对 Android 声音控制全面适配

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Real Distributed APEX

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 接口测试之HTTP 协议讲解

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Appium 自动化测试从基础到框架实战精华学习笔记(一)

测吧(北京)科技有限公司

测试

使用Clover的Test Optimization进行更快的测试_Java_Mike Bria_InfoQ精选文章