sonar 中质量指标(度量)
目錄
- 復雜
- 重復
- 問題
- 可維護性?
- 質量蓋茨
- 可靠性
- 安全
- 尺寸
- 測試
這不是一個詳盡的指標列表。有關完整列表,請參閱SonarQube實例上的api / metrics?WebAPI。
復雜
| 名稱 | 鍵 | 描述 |
| 復雜 | 復雜 | 這是根據代碼路徑數計算的復雜度。每當函數的控制流程分裂時,復雜性計數器就會增加1。每個函數的最小復雜度為1.由于關鍵字和功能性的原因,這種計算方式因語言而略有差異。 更多細節 |
| 認知復雜性 | cognitive_complexity | 理解代碼的控制流程有多困難。請參閱https://www.sonarsource.com/resources/white-papers/cognitive-complexity.html以獲取有關用于計算此度量的數學模型的完整說明。 |
重復
| 名稱 | 鍵 | 描述 |
重復的塊 | duplicated_blocks | 重復行數的塊數。 對于被認為是重復的代碼塊:
在檢測重復時忽略縮進和字符串文字中的差異。 |
| 重復的文件 | duplicated_files | 涉及重復的文件數量。 |
| 重復的線條 | duplicated_lines | 涉及重復的行數。 |
| 重復行數(%) | duplicated_lines_density | 重復密度=?重復行數?/?行數?* 100 |
問題
| 名稱 | 鍵 | 描述 |
新問題 | new_violations | 新問題的數量。 |
新的xxxxx問題 | new_xxxxx_violations | 嚴重性為xxxxx,xxxxx為b?locker,critical,major,minor或info的新問題的數量。 |
問題 | 違規 | 問題的數量。 |
xxxxx問題 | xxxxx_violations | 嚴重性為XXXXX,XXXXX為阻滯劑,嚴重,主要,次要或信息的問題數量。 |
| 假陽性問題 | false_positive_issues | 誤報問題的數量 |
| 開放式問題 | 開放式問題 | 狀態為“打開”的問題數量 |
| 確認的問題 | confirmed_issues | 已確認狀態的問題數量 |
| 重新開放的問題 | reopened_issues | 狀態被重新打開的問題的數量 |
嚴重
| 攔截器 | 操作/安全??風險:此問題可能會使整個應用程序在生產中不穩定。例如:調用垃圾回收器,不關閉套接字等。 |
| 危急 | 操作/安全??風險:此問題可能會導致生產中的意外行為,而不會影響整個應用程序的完整性。例如:NullPointerException,嚴重捕獲異常,缺少單元測試等。 |
| 重大的 | 這個問題可能會對生產力產生重大影響??。例如:過于復雜的方法,封裝周期等 |
| 次要 | 這個問題可能會對生產力產生潛在的和次要的影響??。例如:命名約定,Finalizer只是調用超類終結器等。 |
| 信息 | 未知或尚未明確定義的安全風險或對生產力的影響。? |
可維護性?
| 名稱 | 鍵 | 描述 |
| 代碼嗅覺 | code_smells | 代碼氣味的數量。 |
| 新代碼嗅覺 | new_code_smells | 新的代碼氣味的數量。 |
| 可維修性評級(以前稱為SQALE評級) | sqale_rating | 您的項目評級與您的技術債務比率相關。默認的可維護性評估網格是: A = 0-0.05,B = 0.06-0.1,C = 0.11-0.20,D = 0.21-0.5,E = 0.51-1 可維護性評估量表可以交替陳述,如果未解決的補救成本是:
|
| 技術債務 | sqale_index | 努力解決所有可維護性問題。度量在數據庫中以分鐘存儲。當以天為單位顯示數值時,假定每天8小時。 |
| 新代碼的技術債務 | new_technical_debt | 新代碼的技術債務 |
| 技術債務比率 | sqale_debt_ratio | 開發軟件的成本與修復軟件的成本之間的比率。技術債務比率公式為: 修復成本/開發成本其中可以重申為: 修復成本/(開發1行代碼的代價*代碼行數)開發一行代碼的成本值為0.06天。 |
| 新代碼的技術債務比率 | new_sqale_debt_ratio | 開發代碼的成本與泄漏期間的代碼成本之間的比率。 |
質量蓋茨
| 名稱 | 鍵 | 描述 |
| 質量門狀態 | alert_status | 與您的項目相關的質量門的狀態。可能的值有:ERROR,WARN,OK |
| 質量門詳細信息 | quality_gate_details | 對于您的質量門的所有條件,您知道哪些情況是失敗的,哪些不是。 |
可靠性
| 名稱 | 鍵 | 描述 |
| 錯誤 | 蟲子 | 錯誤數量。 |
| 新的錯誤 | new_bugs | 新bug的數量。 |
| 可靠性評級 | reliability_rating | A = 0錯誤 |
| 可靠性修復努力 | reliability_remediation_effort | 努力解決所有錯誤問題。度量在數據庫中以分鐘存儲。當以天為單位顯示數值時,假定每天8小時。 |
| 新代碼的可靠性修復工作 | new_reliability_remediation_effort | 與在泄漏期間更改的代碼的可靠性修復工作相同。 |
安全
| 名稱 | 鍵 | 描述 |
| 漏洞 | 漏洞 | 數v?ulnerabilities。 |
| 新的漏洞 | new_vulnerabilities | 新漏洞的數量。 |
| 安全評級 | security_rating | A = 0漏洞 |
| 安全補救努力 | security_remediation_effort | 努力解決所有的V?ulnerability問題。度量在數據庫中以分鐘存儲。當以天為單位顯示數值時,假定每天8小時。 |
| 新代碼的安全修復工作 | new_?安全_remediation_effort | 與在泄漏期間更改的代碼相同的安全補救措施。 |
尺寸
| 類 | 類 | 類的數量(包括嵌套類,接口,枚舉和注釋)。 | |
| 評論行 | comment_lines | 包含注釋或注釋代碼的行數。 非重要的注釋行(空注釋行,僅包含特殊字符的注釋行等)不會增加注釋行的數量。 以下代碼段包含9條注釋行:
更多細節 | |
| 注釋 (%) | comment_lines_density | 注釋行的密度=?注釋行?/(代碼行?+?注釋行)* 100 有了這樣一個公式:
| |
目錄 | 目錄 | 目錄數量。 | |
| 檔 | 檔 | 文件數量。 | |
| 行 | 線 | 物理線數(回車數)。 | |
| 代碼行 | ncloc | 包含至少一個既不是空白也不是制表符,也不是注釋部分的字符的物理行數。 更多細節 | |
| 每種語言的代碼行數 | ncloc_language_distribution | 按語言分布的代碼非注釋行 | |
功能 | 功能 | 功能數量。根據語言的不同,函數可以是函數,也可以是方法或段落。 更多細節 | |
| 項目 | 項目 | 視圖中的項目數量。 | |
聲明 | 聲明 | 報表數量。 更多細節 |
測試
| 條件覆蓋 | branch_coverage | 在包含一些布爾表達式的每行代碼中,條件覆蓋率只會回答以下問題:'每個布爾表達式是否都被評估為true和false?'。這是在單元測試執行期間遵循的流量控制結構中可能條件的密度。
| |
| 新代碼的條件覆蓋 | new_branch_coverage | 與條件覆蓋范圍相同,但僅限于新的/更新的源代碼。 | |
| 條件覆蓋命中 | branch_coverage_hits_data | 涵蓋的條件列表。 | |
| 條件按線路 | conditions_by_line | 線條件數。 | |
| 按行覆蓋條件 | covered_conditions_by_line | 按行覆蓋的條件數量。 | |
| 覆蓋 | 覆蓋 | 它是線路覆蓋和條件覆蓋的組合。它的目標是為以下問題提供更準確的答案:單元測試覆蓋了多少源代碼?
| |
| 覆蓋新代碼 | new_coverage | 與Coverage相同,但僅限于新的/更新的源代碼。 | |
| 線路覆蓋 | line_coverage | 在給定的代碼行中,行覆蓋范圍只是回答以下問題:在執行單元測試期間是否已執行此代碼行?它是由單元測試覆蓋的線的密度:
| |
| 新代碼的在線覆蓋率 | new_line_coverage | 與線路覆蓋范圍相同,但僅限于新的/更新的源代碼。 | |
| 線路覆蓋命中 | coverage_line_hits_data | 被覆蓋的線列表。 | |
| 要覆蓋的行 | lines_to_cover | 單元測試可以覆蓋的代碼行數(例如,空白行或完整注釋行不被視為要覆蓋的行)。 | |
| 包含新代碼的行 | new_lines_to_cover | 與要覆蓋的行相同,但僅限于新的/更新的源代碼。 | |
| 跳過單元測試 | skipped_tests | 跳過的單元測試次數。 | |
| 未覆蓋的條件 | uncovered_conditions | 未被單元測試覆蓋的條件數量。 | |
| 揭秘條件的新代碼 | new_uncovered_conditions | 與未覆蓋的條件相同,但僅限于新的/更新的源代碼。 | |
| 未覆蓋的線 | uncovered_lines | 未被單元測試覆蓋的代碼行數。 | |
| 在新代碼中發現線條 | new_uncovered_lines | 與Uncovered行相同,但僅限于新的/更新的源代碼。 | |
| 單元測試 | 測試 | 單元測試次數。 | |
| 單元測試時間 | test_execution_time | 執行所有單元測試所需的時間。 | |
| 單元測試錯誤 | test_errors | 失敗的單元測試數量。 | |
| 單元測試失敗 | test_failures | 發生意外異常的單元測試失敗次數。 | |
| 單元測試成功密度(%) | test_success_density | 測試成功密度=(單元測試?- (單元測試錯誤?+?單元測試失敗))/?單元測試?* 100 |
集成測試覆蓋率和總體測試覆蓋率(單元測試+集成測試)存在相同的度量標準。
集成測試和總體測試不存在測試執行的度量標準。
sonar連接:https://docs.sonarqube.org/display/SONAR/Metric+definitions#Metricdefinitions-Tests
stack overflow:
https://stackoverflow.com/questions/11561622/what-is-the-difference-between-code-coverage-and-line-coverage-in-sonar
總結
以上是生活随笔為你收集整理的sonar 中质量指标(度量)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特斯拉股东大会实录:马斯克否认辞职 作出
- 下一篇: sonar api 获取质量数据