從界面出發,編寫Server端SonarQube手冊。
首頁

說明:
菜單欄
- 項目:被掃描的項目
- 問題:被掃描的項目的問題
- 代碼規則:代碼檢測規則
- 質量配置:質量配置是在分析時使用的規則集合。可以啟用或者禁用某些規則。
- 質量閾:正常/錯誤。可以指定一些指標條件時為錯誤,比如bug數大於某個值時為錯誤。
項目概況
- 指標說明:一般將鼠標放在圖標上就會顯示這個指標的說明
- bugs:bug的數量
- 漏洞:漏洞的數量
- 異味:不規范代碼的數量
- 覆蓋率:單元測試的對代碼的覆蓋率
- 重復:重復代碼的行數占總代碼行數的比例
- 大小:代碼行數
- 編程語言:項目檢測的編程語言
- 等級說明:由ABCDE5個等級,從A的綠色到E的紅色表示嚴重等級。
項目
總覽

說明:
- 支持分支檢測
- 顯示主要指標情況
- 顯示項目的檢測配置信息
問題

說明:
- 類型:一條規則定義的類型,有4種:bug,漏洞,異味,安全熱點時單獨的
- 嚴重程度:有5種:阻斷,嚴重,重要,次要,提示
- 狀態:5種:打開,解決,重開,關閉,確認
- 負責人:分配給誰
- 修復預估時間:系統給的預計修復時間
- 評論:可以評論
安全報告

說明:
- 有2個選項:OWASP前10位,SANS前25位
- SANS前25位:CWE/SANS前25位最危險的軟件錯誤
- 理解:就是這兩個網站評了軟件錯誤排名,此項目中有哪些是這些錯誤。
指標

指標有:
Reliability可靠性
可靠性比率的計算方法)
- A = 0 Bug 最高等級A,表示代碼無bug
- B = at least 1 Minor Bug 代碼只要有一個次要bug,等級就為B
- C = at least 1 Major Bug 只要包含一個重要bug,等級將為C
- D = at least 1 Critical Bug 只要有一個嚴重bug,等級評估為D
- E = at least 1 Blocker Bug 只要有一個最高等級的阻斷級別的bug,可靠性評估為E,最低級別。
圖中氣泡大小根據bug數變化,bug數越大氣泡越大。視覺更加直觀。
Security安全性
安全度指標計算方法
- A = 0 Vulnerability 沒有漏洞時,項目評估為最高級別A
- B = at least 1 Minor Vulnerability 只要包含一個次要漏洞,項目評估為級別B
- C = at least 1 Major Vulnerability 只要包含一個重要漏洞,項目評估為級別C
- D = at least 1 Critical Vulnerability 只要包含一個嚴重漏洞,評估為D
- E = at least 1 Blocker Vulnerability 只要包含一個阻斷漏洞,項目評估為最低級別E
圖中氣泡大小根據漏洞數變化,漏洞數越大氣泡越大。視覺上直觀顯示。
Maintainability
技術債務:Technical Debt,當前不規范的代碼,會對以后產品修改的成本造成影響。
開發成本:開發一行代碼(LOC)的成本。 示例:如果開發1 LOC的成本估計為30分鍾,則此屬性的值為30。目前我們采用的是系統默認值30。注意此處成本是指從零開始重寫代碼所需的成本。
可維護性:可維護性等級范圍從A(非常好)到E(非常差)。 評級由技術債務比率的值決定,技術債務比率是將項目的技術債務與從零開始重寫代碼所需的成本進行比較。 A到D的默認值為0.05,0.1,0.2,0.5。任何超過0.5評級就為E。
舉個例子:假設開發成本是30分鍾,2,500 LOC的技術債務為24,000分鍾的項目將有技術債務比率為24000 /(30 * 2,500)= 0.32。 因此項目的可維護性評級就是D。
Coverage覆蓋率
Coverage
行覆蓋和條件覆蓋的混合。單元測試覆蓋多少源代碼。Coverage = (CT + CF + LC)/(2*B + EL),其中 :
- CT = conditions that have been evaluated to ‘true’ at least once至少有一次被判斷為true的條件數
- CF = conditions that have been evaluated to ‘false’ at least once 至少一次被判斷為false的條件數
- LC = covered lines = lines_to_cover uncovered_lines 已覆蓋的行數
- B = total number of conditions 條件總數
- EL = total number of executable lines (lines_to_cover) 所有可執行的代碼總行數
Line coverage
單元測試覆蓋行數密度
Line coverage = LC / EL
- LC = covered lines (lines_to_cover - uncovered_lines) 已覆蓋的行數
- EL = total number of executable lines (lines_to_cover) 所有可執行的代碼總行數
Condition coverage
Condition Coverage=(CT+CF)/(2*B)
- CT = 至少一次使用 ‘true’的條件數
- CF = 至少一次使用 ‘false’ 的條件數
- B = 條件總數
Unit test success density (%)
測試成功密度=(單元測試總數-(單元測試錯誤數+單元測試失敗數))/單元測試數*100
Duplications重復
Duplication
SonarQube使用自己的復制/粘貼檢測引擎,可以檢測重復:
- 在源文件中
- 跨項目中的多個文件
- 項目的各個模塊
- 跨多個項目
Duplicated Lines(%)
重復率=重復行數/總行數*100
- Duplicated blocks:重復代碼塊行數
- Duplicated files:重復文件數
- Duplicated lines:重復行數
Size大小
Complexity復雜度
以下關鍵詞增加復雜性:if, for, while, case, catch, throw, return (不是方法的最后一個語句), &&, ||, ?
else, default, finally不增加復雜度
代碼復雜度過高將難以理解、難以維護。
Issues問題
- 新違
- 違規
- 開啟問題
- 重開問題
- 確認問題
- 誤判問題
- 不修復的問題
代碼

項目的代碼
活動

項目的操作動態
配置
項目的配置選項
設置

項目的設置選項:一般不需要改
質量配置

項目的質量配置選項:一般不需要改
質量閾

項目的質量閾選項:一般不需要改
權限
權限應用權限模板,授予和收回項目級別的權限。權限可以授予群組或單獨用戶。
公開項目。所有人都可以瀏覽並查看源碼。

問題
問題列表

問題詳細

代碼規則
代碼規則列表,可以查看激活狀態

單條代碼規則 內容

質量配置
質量配置是在分析時使用的規則集合。
每個語言都有默認配置。沒有指定其他配置的項目會使用默認配置。

可以修改單個語言的默認配置,一個語言只有一個配置生效

一般操作是修改父類

質量閾
質量閾是在組織中實施質量策略的最佳方法。在那里可以回答一個問題:我可以今天將項目交付生產嗎?
為了回答這個問題,您可以根據測量項目的測量閾值定義一組布爾條件。例如:
- 沒有新的阻止程序問題
- 新代碼的代碼覆蓋率大於80%
- 等等。
理想情況下,所有項目都將通過相同的質量閾進行驗證,但這並不總是可行的。例如,您可能會發現:
技術實現因一個應用程序而異(對於Web或Java應用程序,您可能不需要在新代碼上具有相同的代碼覆蓋率)。
您想確保對某些應用程序(例如內部框架)有更嚴格的要求。
等等。

代碼質量檢測后給一個是否可以進行生產的標志:通過/不通過
一般設定一般參數指標
比如:bugs數量大於某個值就不通過
配置
管理員才有這個選項
配置
通用設置
編輯SonarQube實例的全局設置。

加密

網絡調用

權限
用戶

新建用戶

生成令牌

群組

全局權限

權限模板

項目
項目管理

后台任務

系統
可以查看一些信息

有4個模塊

參考

應用市場

說明:
- 查看現在使用的版本
- 搜索安裝/卸載插件
