SonarQube_01:代码检测工具的具体介绍与使用

Posted ABin-阿斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SonarQube_01:代码检测工具的具体介绍与使用相关的知识,希望对你有一定的参考价值。

我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。 如果小伙伴们觉得我的文章有点 feel ,那就点个赞再走哦。

下一篇:SonarQube_02:部署SonarQube教程

前言

  • 原作者: 告白与告别
  • 文章原链接地址: https://blog.csdn.net/weixin_39913716/category_7984176.html?spm=1001.2014.3001.5482

一、SonarQube使用简介

1、SonarSource总览

  • SonarSource 为代码质量提供了世界一流的解决方案。其开源和商业版本可帮助各种规模的客户管理其应用程序的代码质量,降低风险并最终交付更可靠的软件。

  • SonarSource 提供 SonarQube 代码管理平台和 SonarLint IDE 开发插件。SonarQube 在持续集成项目中,可以通过jenkins插件在项目中快速实现代码扫描,并且提供了详细的问题分析和 bugs 修改意见。全球超过 1000 多家客户,包括三星、腾讯、招商银行等,并被超过 85,000 家组织使用。

  • SonarSource 解决方案通过插件形式支持20多种编程语言(如 Java,C#,JavaScript,C/C++,TypeScript,COBOL 等)开发的代码。

  • SonarJava 插件为例 SonarSource 支持 498 种规则,bugs、vulnerablility、code smell 三大类问题,包括 Android、api-design、bad-practive 等代码质量问题;兼容 Cert、CWE 和 OWASP 等安全性代码规约;及代码编写规约。

2、SonarSource持续集成能力

主要功能:

  • 用户本地使用 IDE 的插件进行代码分析
  • 用户上传到源代码版本控制服务器
  • 持续集成,使用 Sonar Scanner 进行扫描
  • 将扫描结果上传到 SonarQube 服务器
  • SonarQube server 将结果写入 db
  • 用户通过 web ui 查看扫描结果
  • SonarQube 导出结果到其他需要的服务

3、术语解释

概念定义
Bug(错误)标识代码中存在错误,它将在不久的将来爆发出来,它需要立即修复
Code Smell(代码味道)代码中与可维护性相关的问题。 离开它意味着维护者将更难以修改维护代码。在最坏的情况下,维护人员会在进行更改时引入其他错误,使他们会对代码状态感到困惑。
Remediation Cost(补救成本)修复漏洞和可靠性问题所需的估计时间。
Security Hotspot(安全热点)一个与安全相关的问题, 突出显示使用安全敏感 API 的代码段 (例: 使用弱算法, 连接到没有密码的数据库)。
Technical Debt(技术债务)修复所有可维护性问题/代码味道所需的估计时间
Vulnerability(漏洞)与安全有关的问题, 它代表攻击者可能攻击的后门。

二、SonarQube可视化界面介绍

  • SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过 SonarQube 我们可以检测出项目中重复代码, 潜在 bug, 代码规范,安全性漏洞等问题, 并通过 SonarQube web UI 展示出来。

  • 通过总览我们可以清晰看到当前项目对应的具体 Bug 数以及新增的一个 Bug 数量,重复的代码段。
  • 在企业开发中,新增 Bugs 那一项是坚决不允许出现:“1”,新增异味项根据项目研发周期跟进,如果时间充裕会直接规划一期来修复,从而保证高质量代码。

  • 通过上面图面我们可以看出,他检测出了当前类中有一段注释的代码,并提示不要保留无效的代码,以免影响开发者判断。

1、SonarQube扫描方法

1.1、Jenkins中调用

  • 通过 jenkins 插件调用 sonarScanner 或使用 Maven、Gradle 等内置扫描器,依据项目需要,对代码持续扫描,并将结果推送到 sonarqube 进行页面展示

1.2、SonarQube Scanner

  • 使用 scanner,通过配置文件,修改项目信息,在命令行中调用 scanner 工具,进行扫描,并推送给 sonarqube

1.3、Maven、Gradle等内置扫描器

  • maven 为例,需要修改 mavensonarqube 配置文件,在 mvn 编译后,使用 mvn 命令,进行代码扫描,并推送给 sonarqube(需要编译源代码)

2、SonarQube web UI -项目页面

  • 显示用户所有的项目概况,各项目质量评级,并提供条件筛选
  • 通过在主页面选择单个项目,进入项目详情,该页面提供了当前项目最近一次扫描的结果评级,历史累计和新增问题数量,代码行数等信息

3、问题页面

  • 提供当前用户名下所有问题的列表,并提供条件筛选,包括问题类型,严重程度等

  • 选中单个问题,查看问题代码详情,sonarqube 给出问题描述和修改意见

    • 项目经理可以根据实际情况调整问题类型,严重程度。
    • 打开或关闭问题,分配给指定的开发人员
    • 添加备注
    • 在被分配问题的开发人员配置接收信息后,将收到分配问题邮件,可根据链接,直接打开问题详情

4、安全报告页面

  • 针对安全问题,sonarqube 提供了 OWASP top10 和 SANS top25,热点问题检查,并提供了聚合报告,提高对安全问题的重视程度

6、评估页面

  • 给出当前项目的评估概况信息,大小,可靠性,重复率,覆盖率等

7、代码页面

  • 以 .java 文件为依据,给出各个 .java 文件统计信息

8、活动页面

  • 页面展示了每次代码扫描的基本信息和代码情况的折线图,折线图可以根据需要调整显示 bugs 数量,代码行数,覆盖率等信息

以上是关于SonarQube_01:代码检测工具的具体介绍与使用的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube安装配置与使用 01

windows下代码规范检测工具sonarqube安装与使用,含与maven的结合

静态代码扫描工具 - sonarQube介绍

静态代码扫描工具 - sonarQube介绍

平台代码检查工具:sonarLint+sonarqube安装教程

平台代码检查工具:sonarLint+sonarqube安装教程