日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sonar 中质量指标(度量)

發布時間:2023/12/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sonar 中质量指标(度量) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 復雜
  • 重復
  • 問題
  • 可維護性?
  • 質量蓋茨
  • 可靠性
  • 安全
  • 尺寸
  • 測試

這不是一個詳盡的指標列表。有關完整列表,請參閱SonarQube實例上api / metrics?WebAPI。

復雜

名稱描述
復雜復雜

這是根據代碼路徑數計算的復雜度。每當函數的控制流程分裂時,復雜性計數器就會增加1。每個函數的最小復雜度為1.由于關鍵字和功能性的原因,這種計算方式因語言而略有差異。

更多細節

認知復雜性cognitive_complexity理解代碼的控制流程有多困難。請參閱https://www.sonarsource.com/resources/white-papers/cognitive-complexity.html以獲取有關用于計算此度量數學模型的完整說明

重復

名稱描述

重復的塊

duplicated_blocks

重復行數的塊數。

對于被認為是重復的代碼塊:

  • 非Java項目:
    • 應該有至少100個連續和重復的令牌。
    • 這些令牌至少應該分布在:
      • COBOL的30行代碼
      • 用于ABAP的20行代碼
      • 其他語言的10行代碼

  • Java項目:
    • 無論有多少個令牌和行,至少應該有10個連續的重復語句。

在檢測重復時忽略縮進和字符串文字中的差異。


重復的文件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

可維護性評估量表可以交替陳述,如果未解決的補救成本是:

  • <=已進入應用程序的時間的5%,評級為A.
  • 6至10%之間的評級是B
  • 在11%至20%之間的評級是C
  • 在21到50%之間,評級是D
  • 任何超過50%是E
技術債務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錯誤
B =至少1次輕微錯誤
C =至少1次重大錯誤
D =至少1次嚴重錯誤
E =至少1次阻止程序錯誤

可靠性修復努力reliability_remediation_effort努力解決所有錯誤問題。度量在數據庫中以分鐘存儲。當以天為單位顯示數值時,假定每天8小時。
新代碼的可靠性修復工作new_reliability_remediation_effort在泄漏期間更改的代碼的可靠性修復工作相同

安全

名稱描述
漏洞漏洞v?ulnerabilities
新的漏洞new_vulnerabilities新漏洞的數量。
安全評級security_rating

A = 0漏洞
B =至少1次輕微漏洞
C =至少1次重大漏洞
D =至少1次嚴重漏洞
E =至少1次阻止漏洞

安全補救努力security_remediation_effort努力解決所有的V?ulnerability問題。度量在數據庫中以分鐘存儲。當以天為單位顯示數值時,假定每天8小時。
新代碼的安全修復工作new_?安全_remediation_effort在泄漏期間更改的代碼相同的安全補救措施

尺寸

描述
類的數量(包括嵌套類,接口,枚舉和注釋)。
評論行comment_lines

包含注釋或注釋代碼的行數。

非重要的注釋行(空注釋行,僅包含特殊字符的注釋行等)不會增加注釋行的數量。

以下代碼段包含9條注釋行:

/**??????????????????????????????????? +0 => empty comment line?*???????????????????????????????????? +0 => empty comment line?* This is my documentation??????????? +1 => significant comment?* although I don't??????????????????? +1 => significant comment?* have much?????????????????????????? +1 => significant comment?* to say????????????????????????????? +1 => significant comment?*???????????????????????????????????? +0 => empty comment line?***************************?????????? +0 => non-significant comment?*???????????????????????????????????? +0 => empty comment line?* blabla...?????????????????????????? +1 => significant comment?*/????????????????????????????????????+0?=> empty comment line??/**??????????????????????????????????? +0 => empty comment line?* public String foo() {?????????????? +1 => commented-out code?*?? System.out.println(message);????? +1 => commented-out code?*?? return message;?????????????????? +1 => commented-out code?* }?????????????????????????????????? +1 => commented-out code?*/????????????????????????????????????+0?=> empty comment line

更多細節

注釋 (%)comment_lines_density

注釋行的密度=?注釋行?/(代碼?+?注釋行)* 100

有了這樣一個公式:

  • 50%表示代碼行數等于注釋行數
  • 100%表示該文件只包含注釋行

目錄

目錄目錄數量。
文件數量。
物理線數(回車數)。
代碼行ncloc

包含至少一個既不是空白也不是制表符,也不是注釋部分的字符的物理行數。

更多細節

每種語言的代碼行數ncloc_language_distribution按語言分布的代碼非注釋行

功能

功能

功能數量。根據語言的不同,函數可以是函數,也可以是方法或段落。

更多細節

項目項目視圖中的項目數量。

聲明

聲明

報表數量。

更多細節

測試

描述描述
條件覆蓋branch_coverage

在包含一些布爾表達式的每行代碼中,條件覆蓋率只會回答以下問題:'每個布爾表達式是否都被評估為true和false?'。這是在單元測試執行期間遵循的流量控制結構中可能條件的密度。

Condition coverage = (CT + CF) / (2*B)whereCT = conditions that have been evaluated to?'true'?at least onceCF = conditions that have been evaluated to?'false'?at least onceB = total number of conditions
新代碼的條件覆蓋new_branch_coverage

條件覆蓋范圍相同,但僅限于新的/更新的源代碼。

條件覆蓋命中branch_coverage_hits_data涵蓋的條件列表。
條件按線路conditions_by_line線條件數。
按行覆蓋條件covered_conditions_by_line按行覆蓋的條件數量。
覆蓋覆蓋

它是線路覆蓋條件覆蓋的組合它的目標是為以下問題提供更準確的答案:單元測試覆蓋了多少源代碼?

Coverage = (CT + CF + LC)/(2*B + EL)whereCT = conditions that have been evaluated to?'true'?at least onceCF = conditions that have been evaluated to?'false'?at least onceLC = covered lines = lines_to_cover - uncovered_linesB = total number of conditionsEL = total number of executable lines (lines_to_cover)
覆蓋新代碼new_coverage

Coverage相同,僅限于新的/更新的源代碼。

線路覆蓋line_coverage

在給定的代碼行中,行覆蓋范圍只是回答以下問題:在執行單元測試期間是否已執行此代碼行?它是由單元測試覆蓋的線的密度:

Line coverage = LC / ELwhereLC = covered lines (lines_to_cover - uncovered_lines)EL = total number of executable lines (lines_to_cover)
新代碼的在線覆蓋率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_linesUncovered行相同,僅限于新的/更新的源代碼。
單元測試測試單元測試次數。
單元測試時間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 中质量指标(度量)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。