一、基礎概念
1、代碼靜態質量要求為A
(1)靜態檢測:對程序代碼的檢測
變量未初始化,空指針引用,數據類型不匹配,返回局部變量,數據字符串邊界溢出,內存泄漏,
(2)動態檢測:對代碼運行時的檢測
主要進行內存和資源檢查,通過在開辟和釋放操作中進行插樁或者命令替換,進行內存和資源統計分析。
2、重復率最低要求為<5%
3、注釋率最低要求為>30%
4、代碼度量
(1)代碼覆蓋率
(2)圈復雜度
二、java
1、環境:sonarqube7.4 java1.8 sonarScanner3.2.0 mysql5.6(sonarqube7.4需要的MySQL是mysql5.6到8.0(不包含8.0))(需要申請序列號,丟棄)
2、使用sonarcloud環境,創建新項目-》進入根目錄-》運行命令mvn verify sonar:sonar
三、python
1、使用sonarcloud環境,創建新項目->現在scanner包-》配置環境-》進行項目的根目錄運行命令(sonar-scanner.bat -D"sonar.organization=luowencc" -D"sonar.projectKey=NNFiveTimes"-D"sonar.sources=." -D"sonar.host.url=https://sonarcloud.io" -D"sonar.login=be6d931052eb6ddd570f11ac0e513f035c896099")
2、成功!!!!!!!!
四、sonarcloud平台各種參數含義
1、bugs
2、vulnerabilities(脆弱性):安全漏洞數:
3、code smells:是指在代碼之中潛在問題的警示信號。並非所有的壞味道所指示的確實是問題,但是對於大多數壞味道,均很有必要加以查看,並作出相應的修改。
4、coverage:行覆蓋率對應的是你的代碼行,有多少行被覆蓋,比如,你有100行代碼,執行了90行,那么覆蓋率就是90%;分支分概率是你代碼中存在分析,有多少分支被覆蓋,比如,你有5個分支,那么對應的應該有10條語句(一個分支有兩條語句,ture和false),那么你執行了其中的5條,那么覆蓋率就是50%;
5、duplications