专栏首页软件测试那些事对不起,增量覆盖率门禁我们原生支持了

对不起,增量覆盖率门禁我们原生支持了

在SonarQube 8之后,官方提供了专门的针对 Pull Request的代码扫描方式,再结合质量门禁中的增量代码(new code)覆盖率指标,可以说是原生支持增量代码覆盖率的诉求了,如下图所示,

案例中针对新增的15行代码,计算出了92.6%的增量覆盖率和83.6的全量覆盖率(合并之后)。

配合上述功能,团队只要在Gitlab/GitHub中使用Merge Request/Pull Request 来 工作,确保只使用MR/PR的方式向主干分支上提交代码,而不再使用Push方式,就能保障所有发布到线上的代码都是通过了质量门禁要求的。

这样的玩法就比较吸引人了,不过有个问题就是,

Pull Request analysis is available starting in Developer Edition.

上述功能主要是通过SonarQube的分支插件来实现的,因此只要引入了开源社区提供的SonarQube 分支插件,就能实现这一过程了。具体的插件配置和使用过程,可以参见《Gitlab+Jenkins+SonarQube计算增量覆盖率》。

当然,还需要更新一下sonar scanner在扫描时的玩法。从原来指定分支的方式修改成为指定pullrquest。

原先方案:

Mvn sonar:sonar -Dsonar.branch.name=ref/merge_reqeust/201 -Dsonar.branch.target=develop

修改为:

Mvn sonar:sonar -Dsonar.pullrequest.key=201 -Dsonar.pullrequest.branch=feature-jira223 -Dsonar.pullrequest.base=develop

以下是这三个参数的含义:

Description

可以参考 https://docs.sonarqube.org/latest/analysis/pull-request/ 了解更多。

需要强调的是,在设置sonar scanner 扫描时,不能有任何关于 sonar.branch.*的参数,否则scanner就认为是在处理某个分支的扫描,而不是针对pull request类的扫描。

那么,接下来的问题是如何配合CI环境来实现自动化的过程了。以Jenkins为例,可以参考gitlab-plugin

https://github.com/jenkinsci/gitlab-plugin#defined-variables

这个插件符合接收Gitlab在MR时发出的webhook并进行解析,提供了一系列后续可以使用的变量。如本例中,则可以在构建脚本中直接使用以下的三个变量,

gitlabSourceBranch
gitlabMergeRequestId
gitlabTargetBranch

祝你玩得愉快。

文章分享自微信公众号:
软件测试那些事

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:风月同天测试人
原始发表时间:2021-10-27
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Gitlab+Jenkins+SonarQube计算增量覆盖率

    当要求质量内建、测试左移、持续集成、DevOps,代码的增量覆盖率几乎是必定会被提出来的话题。这个方案明确了"谁的代码谁负责"的原则,和当年“小岗村包产到户”一...

    Antony
  • super-jacoco单元测试覆盖率度量实践-1

    代码覆盖率,尤其是增量代码覆盖率,是质量门禁的重要指标之一。由于一些不可名状的原因,团队原先提供质量门禁服务的工具暂时停服了,因此需要另外寻找一个工具来代替提...

    Antony
  • Lombok有毒慎用?会导致覆盖率崩塌?

    Lombok 由于其使用的便利性, 目前流传非常广泛。甚至有呼声希望其能被Java官方引入,成为JDK的一部分。

    Antony
  • 代码扫描和质量门禁的度量

    质量门禁在各个部门的前期试点之下,准备在业务系统条线广泛实施了。门禁的顺利实施肯定离不开各个部门的大力配合,为了能让各部门在这个过程中体现出各自的成...

    Antony
  • 腾讯TMQ在线沙龙回顾|后台测试案例分享

    后台测试案例分享 活动时间:2017年9月28日 qq视频分享 活动介绍:TMQ在线沙龙第三十一期分享 本次分享的主题是:后台测试案例分享 共有66位测试小伙伴...

    腾讯移动品质中心TMQ
  • Go增量覆盖率解决方案

    我是一名中间件 QA,我对应的研发团队是有赞 PaaS,目前我们团队有很多产品是使用 go 语言开发,因此我对 go 语言项目的单测覆盖率、集成以及增量测试覆盖...

    jerryteng
  • SonarQube是开源免费的吗?

    SonarQube除了开源的社区版之外,还有开发者版、企业版和数据中心版等不同的发行版本,以满足不同类型的客户需求。以下是根据SonarSource官网整理的各...

    Antony
  • 基于自动化用例的精准测试探索

    在当前web系统或app后端服务测试过程中, 黑盒测试占据了大部分的测试,即便是接口测试,也是基于场景的用例设计,这种测试方法完全依赖于测试人员的能力,经验和业...

    小老鼠
  • 基于自动化用例的精准测试探索

    在当前web系统或app后端服务测试过程中, 黑盒测试占据了大部分的测试,即便是接口测试,也是基于场景的用例设计,这种测试方法完全依赖于测试人员的能力,经验和业...

    测试开发社区
  • 农行 DevOps 进行时之最佳实践分享:自动化单元测试质量门禁

    众所周知,问题发现得越早,修复的成本越低。有统计数据表明,产品上线后修复缺陷所花工时是编码阶段发现该缺陷修复所用工时的640倍。而 DevOps 正是通过质量内...

    DevOps时代
  • 前端精准测试探索:覆盖率实时统计工具

    随着业务增长,随之而来的前端需求激增,如何在有限的时间内保证前端代码的质量。通过测试同学单方面的保障,还是免不了前端线上问题,存在回归不到位或者测试遗漏的地方,...

    有赞coder
  • 内建质量,你真的了解么?

    内建质量作用在开发过程中,要求软件生命周期之间参与的各个角色都需要实时的对软件的质量负责。确保软件在交付到下一环节前已经有了基础的质量保证。其核心目的就是减少因...

    JFrog杰蛙科技
  • 「DevOps 转型与实践」沙龙回顾第一讲

    9 月 19 日,CODING 和中国 DevOps 社区联合举办的深圳第九届 Meetup 在腾讯大厦 2 楼多功能圆满结束。本次沙龙以 「DevOps 转型...

    CODING
  • ​「DevOps 转型与实践」沙龙回顾第一讲

    9 月 19 日,CODING 和中国 DevOps 社区联合举办的深圳第九届 Meetup 在腾讯大厦 2 楼多功能圆满结束。本次沙龙以 「DevOps 转型...

    CODING
  • 精准测试系列《一》

    在实际的软件生产交付过程中,我们通过单元测试、接口测试、功能测试、自动化测试等手段来保障软件质量;但是无论使用哪种测试手段,case 设计是否全面、精简,显得尤...

    Wu_Candy
  • 有赞iOS精准测试实践

    近几年有赞零售业务快速发展,为了满足日益增多的业务需求,2019年起零售客户端发版改成了每周一次,在质量保障方面,技术团队要面对更大的挑战。故此我们团队做了很多...

    有赞coder
  • 增量代码覆盖率工具

    目前有赞共享技术团队测试介入的微服务应用有几百个,大部分底层应用的单测覆盖率在 70% 以上,同时测试组提供的多纬度集成测试自动化的覆盖率也在 70% 以上。有...

    有赞coder
  • vivo 基于 JaCoCo 的测试覆盖率设计与实践

    本文主要介绍vivo内部研发平台使用JaCoCo实现测试覆盖率的实践,包括JaCoCo原理介绍以及在实践过程中遇到的新增代码覆盖率统计问题和频繁发布导致覆盖率丢...

    2020labs小助手

扫码关注腾讯云开发者

领取腾讯云代金券