美文网首页
Sonar学习笔记

Sonar学习笔记

作者: 做测试的DanteYu | 来源:发表于2020-09-08 15:36 被阅读0次

    代码质量

    代码级测试方法
    静态方法 - 不执行代码的基础上发现缺陷
    1. 人工静态方法
      1. pair programming
      2. code view
      3. 同行评审。基于Pull Request
    2. 自动静态方法
      1. sonarqube
      2. coverity
    动态方法 - 执行代码的基础上发现缺陷
    1. 人工动态方法
      1. UT
    2. 自动动态方法
      1. 基于代码自动生成边界测试用例并执行。重点是如何实现边界测试用例的自动生成

    自动静态方法
    1. 不检查业务逻辑。更多发现基于规则的代码错误
    2. 高度自动化、发现问题成本低、发现问题广
    3. 用于质量控制和度量
    4. 易于和CI整合

    Sonar架构

    架构地址


    安装注意事项
    1. 需要jdk>=11
    2. 数据库不支持mysql 可以用postgresql
    启动

    bash sonar.sh console 访问 http://localhost:9000/ 即可打开主页。使用admin\admin进行登录

    在gradle工程里面的build.gradle加上

    plugins {
        id "org.sonarqube" version "2.7"
    }
    
    执行

    使用下面的这样的gradle命令即可把结果同步给sonar

    ./gradlew sonarqube \
      -Dsonar.projectKey=SpringTest \
      -Dsonar.host.url=http://localhost:9000 \
      -Dsonar.login=f6a04f23e771c07794535745325246b7e566a215
    

    Sonar基本概念

    Quality Profiles - rules的集合,可自由组合并应用于不同项目。

    Quality Gate - 设置基于扫描结果的门禁


    IDE插件 - SonarLint

    SonarLint 会在编写代码时实时提示,并给出建议。也可以连接到SonarQube或SonarCloud,获取对相应项目的配置


    推荐实践
    1. 本地开发调试中,IDE可以对代码实现静态检查(SonarLint)

    2. 当代码提交后,CI流水线也有代码静态检查stage。如果有错误,能有效地通知到人和查看结果

    3. 一般针对项目都要求所有开发人员使用统一的静态代码规则库,所以SonarLint最好集成SonarQube

    4. 前端项目和后端项目都应该有。自动化测试项目也推荐用上

    5. 可以定制Quality Profile

    6. 设置合适的Quality Gate


    其他工具
    1. PMD
    2. JAVA
      1. findbugs
      2. checkstyles
    3. JS
      1. eslint
      2. jshint
      3. [jslint](

    相关文章

      网友评论

          本文标题:Sonar学习笔记

          本文链接:https://www.haomeiwen.com/subject/gexjektx.html