如何使用 SonarQube 开发高质量的软件

使用诸如SonarQube 之类的工具,可以为程序员带来更高的质量和更高的生产力,并促进代码的某种“标准化”,这是一个非常重要的因素,因为软件产品的某些部分通常在不同的人之间共享。

通过对源代码的静态分析,SonarQube 衡量可靠性、可维护性、安全性、复杂性、测试覆盖率和代码重复的级别,并根据发现的缺陷的严重程度分配一个分数。

当软件质量保持较高时,可以保证更大的安全性,并可以在产品的整个生命周期中降低成本减少维护时间,为生产者、客户和金融家创造价值。

如何量化软件的质量

软件的高质量与以下因素有关:

  • – 减少测试和交付时间

  • – 减少超过 50% 的维修和修改

  • – 提高客户满意度

  • – 发布后降低维护成本

  • – 减少项目合同纠纷

  • – 减少取消的项目

  • – 提高可靠性

  • – 减少已发布应用程序中的安全漏洞

SonarQube 规则的类别

SonarQube 使用分为种类型的规则来分析代码:代码异味、漏洞、漏洞和安全热点

代码味道类别包括显示编程缺陷,但没有揭示错误,因此不会影响软件的实际正确性,但使代码少维护的特点。

错误是程序意外或不正确行为所依赖的错误,降低了程序的可靠性。

漏洞是可以被利用来破坏系统安全级别的弱点。

安全热点是没有问题但可能成为漏洞的弱点。示例包括错误的 cookie 配置、非标准加密算法的使用以及无法建立安全连接的协议的使用。

还可以通过 SonarQube 平台创建新规则,并且可以选择一组规则与每种语言相关联。

严重程度

在分析过程中,每次代码片段违反规则时都会定义问题。每个问题都与不同的严重程度相关:

  • 拦截器:一个可以改变程序行为的错误。必须检查代码。

  • 严重:不太可能改变程序行为或安全缺陷的错误。代码来自于审查。

  • 主要:降低开发人员生产力的代码缺陷,例如重复的代码、未使用的参数和变量

  • 次要:代码缺陷会略微降低开发人员的生产力,例如太长的行和少于三个案例的开关。

  • 信息:这不是真正的软件缺陷,例如争用“TODO”的评论或使用已弃用的结构。

五状态

一个问题,一旦创建,可以呈现五种状态:在它创建后立即(1) open,当用户表示它是一个有效问题时它变为(2) 确认(3)当用户表示在不应再次考虑下一次分析,因为已经进行了更改,(4)当问题报告为已解决但尚未真正纠正时重新打开,以及(5)当 SonarQube 不再将其识别为问题时关闭。问题在修复后或因为识别它的相关规则不再可用时被关闭,已删除

指标的评级

用于定义代码质量的指标是复杂性、重复性、可维护性、可靠性、安全性、大小和测试覆盖率。

可靠性等级
  • A = 0 错误

  • B = 至少一个小错误

  • C = 至少一个主要错误

  • D = 至少一个严重错误

  • E = 至少一个错误拦截器

安全等级
  • A = 0 漏洞

  • B = 至少有轻微的漏洞

  • C = 至少一个主要漏洞

  • D = 至少一个严重漏洞

  • E = 至少一个拦截器漏洞

技术债务评级

这取决于“技术债务比率”(TD 比率),即债务与预计开发时间的比率,计算为 LOCx30min。

  • A = TD 比率 <= 5%

  • B = TD 比率在 6% 到 10% 之间

  • C = TD 比率介于 10% 和 20% 之间

  • D = TD 比率在 21% 和 50% 之间

  • E = TD 比率> = 50%

高质量软件的生产成本更低

如果您相信持续集成,则不能忽视 SonarQube 的使用,因为它允许您在每次更改后检查代码,从而始终保持软件的高品质。

快乐编码!

关于我们

泽阳,DevOps领域实践者。专注于企业级DevOps运维开发技术实践分享,主要以新Linux运维技术、DevOps技术课程为主。丰富的一线实战经验,课程追求实用性获得多数学员认可。课程内容均来源于企业应用,在这里既学习技术又能获取热门技能,欢迎您的到来!(微信ID: devopsvip)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值