目錄
前言
由於團隊開始使用Sonar並且要確定對應的度量指標,因此爲了方便查閱,特把Sonar官方文檔中的指標翻譯成中文。由於本人水平有限,翻譯僅供參考。
複雜度(Complexity)
指標(中文) | 指標(英文) | 描述 |
複雜度 | Complexity | 基於代碼的分支計算出來的複雜度,即圈複雜度。當一個方法的控制流多了一個分支,它的複雜度就會增加1。每個方法的最小複雜度爲1。 |
理解複雜度 | Congnitive Complexity | 理解代碼的控制流的難易程度。具體參考 https://www.sonarsource.com/resources/white-papers/cognitive-complexity.html |
覆蓋率(Coverage)
指標(中文) | 指標(英文) | 描述 |
分支覆蓋 | Condition coverage | 被單元測試覆蓋到的分支數 |
分支覆蓋率 | Condition coverage(%) | 在包含一些布爾表達式的每一行代碼中,條件覆蓋率簡單地回答了以下問題:“是否將每個布爾表達式都計算爲true和false?”這是單元測試執行期間遵循的流控制結構中可能的條件的密度。 分支覆蓋率 = (CT + CF)/(2*B) 其中,CT爲至少一次被評估爲true的分支數,CF爲至少一次被評估爲false的分支數,B爲總分支數。 |
新代碼的分支覆蓋率 | Condition coverage on new code | 同上,但只針對新代碼和更新的代碼 |
代碼覆蓋率 | Line coverage | 代碼行覆蓋率,即被單元測試覆蓋的行數/總代碼行數 公式:LC / EL 其中, LC爲被單元測試覆蓋到的行數;EL爲總代碼行數。 |
新代碼覆蓋率 | Line coverage on new code | 新代碼行覆蓋率,公式同上,但只針對新代碼或更新的代碼 |
覆蓋率 | Coverage | 總覆蓋率,即分支覆蓋率和代碼行覆蓋率的總和,它旨在提供更加準確的數據去展現源代碼被單元測試覆蓋的程度。 公式:(CT+CF+LC)/(2*B+EL) |
新覆蓋率 | Coverage on new code | 同上,但只針對新代碼和更新的代碼 |
代碼行 | Lines to cover | 被單元測試覆蓋的代碼行數 |
覆蓋的新代碼 | Lines to cover on new code | 被單元測試覆蓋的代碼行數(只針對新增代碼或更新的代碼) |
單元測試忽略數 | Skipped unit tests | 忽略的單元測試用例數 |
未覆蓋分支 | Uncovered conditions | 單元測試未覆蓋的分支數 |
未覆蓋新分支 | Uncovered conditions on new code | 單元測試未覆蓋的新增分支數 |
未覆蓋的代碼 | Uncovered lines | 單元測試未覆蓋的代碼行數 |
未覆蓋的新代碼 | Uncovered lines on new code | 單元測試未覆蓋的新增代碼行數 |
單元測試持續時間 | Unit tests duration | 單元測試所持續的時間 |
單元測試錯誤數 | Unit test errors | 單元測試執行錯誤數,即運行異常 |
單元測試失敗數 | Unit test failures | 單元測試執行失敗數,即運行正常但是得到非預期結果 |
單元測試成功(%) | Unit test success density (%) | (單元測試用例數-(單元測試錯誤數+單元測試失敗數))/單元測試用例數*100 |
單元測試數 | Unit tests | 單元測試用例數 |
重複(Duplication)
指標(中文) | 指標(英文) | 描述 |
重複塊 | Duplicated blocks | 重複行塊數。如何定義一個塊是否重複塊: JAVA類項目: - 無論標記和行數多少,只要有至少10個連續重複的語句,則定義爲重複塊; 非JAVA類項目: - 至少有100個連續重複的標記; - 這些標記要至少分佈在 1)30行代碼中(如是COBOL);2)20行代碼中(如是ABAP);3)10行代碼中(如是其他語言) |
新代碼中的重複塊 | Duplicated blocks on new code | 同上,但只針對新代碼 |
重複文件 | Duplicated files | 重複的文件數 |
重複行 | Duplicated lines | 重複的代碼行數 |
重複行(%) | Duplicated lines (%) | 重複行數/總行數*100 |
新代碼中的重複行 | Duplicated lines on new code | 同上,但只針對新代碼 |
新代碼中的重複行密度(%) | Duplicated lines(%)on new code | 同上,但只針對新代碼 |
問題(Issues)
指標(中文) | 指標(英文) | 描述 |
阻斷違規 | Blocker violations | 阻斷違規數 |
確認問題 | Confirmed issues | 確認問題數 |
嚴重違規 | Critical violations | 嚴重違規數 |
誤判問題 | false positive violations | 誤判問題數 |
提示違規 | Info violationd | 提示違規數 |
違規 | violations | 違規數 |
主要違規 | major violations | 主要違規數 |
次要違規 | minor violations | 次要違規數 |
新阻斷違規 | New blocker violations | 新阻斷違規數 |
新嚴重違規 | New critical violations | 新嚴重違規數 |
新提示違規 | New info violations | 新提示違規數 |
新違規 | New violations | 新違規數 |
新主要違規 | New major violations | 新主要違規數 |
新次要違規 | New minor violations | 新次要違規數 |
開啓問題 | Open issues | 狀態爲開啓的問題數 |
重開問題 | Reopen issues | 狀態爲重開的問題數 |
不修復的問題 | Unfixed issues | 狀態爲不修復的問題數 |
可維護性(Maintainability )
指標(中文) | 指標(英文) | 描述 |
技術債務 | Technical Debt | 修復所有可維護性問題所需的工作量,單位爲分鐘。當該值以天爲單位展示時默認爲8小時/天。 |
新代碼的技術債務 | Technical Debt on new code | 同上,但只針對新代碼。 |
壞味道 | Code Smells | 壞味道數 |
SQALE評級(可維護率) | - | 根據項目技術債務比率而給與的項目評級。默認的可維護性等級爲: A = 0 - 0.05,即在0到5%之間 B = 0.06 - 0.1,即在6%到10%之間 C = 0.11 - 0.2,即在11%到20%之間 D = 0.21 - 0.5,即在21%到50%之間 E = 0.51 - 1,即超過50% |
達到可維護性爲A級所需的工作 | - | 能達到上述評級爲A所需的工作量 |
新代碼可維護率 | Maintainability Rating on new code | 同上,但只針對新代碼。 |
新增壞味道 | New code smell | 新增壞味道數 |
技術債務比率 | Technical Debt Ratio | 開發成本與修復成本的比率。 該比率=修復成本/開發成本,也=修復成本/(代碼行數*每行代碼開發成本) 每行代碼開發成本爲0.06天 |
新技術債務比率 | Technical Debt Ratio on new code | 在泄漏期間修改代碼的開發成本與由此修改引入的問題成本之比。 |
可靠性(Reliability)
指標(中文) | 指標(英文) | 描述 |
新增漏洞 | New Vulnerabilities | 新增安全漏洞數 |
安全比率 | Security Rating | A = 0 安全漏洞 B = 至少1個Minor漏洞 C = 至少1個Major漏洞 D = 至少1個Critical漏洞 E = 至少1個Blocker漏洞 |
新代碼安全率 | Security Rating on new code | 同上,但只針對新代碼。 |
安全修復工作 | Security remediation effort | 修復所有安全漏洞所需的工作量,單位爲分鐘。當該值以天爲單位展示時默認爲8小時/天。 |
新代碼的安全修復工作 | Security remediation effort on new code | 同上,但只針對新代碼。 |
漏洞 | Vulnerabilities | 安全漏洞數 |
大小(Documentation)
指標(中文) | 指標(英文) | 描述 |
類 | Classes | 類數目 |
註釋行數 | Comment lines |
該指標包含註釋或已註釋代碼的行數。不重要的註釋行(即空註釋行、只包含特殊字符的註釋行等)不會增加註釋行數量。
/** +0 => empty comment line |
註釋(%) | Comments(%) | 註釋行數/(註釋行數+代碼行數) |
目錄 | Directories | 目錄數 |
文件 | Files | 文件數 |
方法 | Functions | 方法數 |
行數 | Lines | 物理行數,包含回車。 |
代碼行數 | Lines of code | 代碼行數,包含至少一個非空格、非tab和非註釋的字母的代碼行數 |
新增代碼行數 | Lines of new code | 新增代碼行數,包含至少一個非空格、非tab和非註釋的字母的代碼行數 |
項目 | Projects | 項目數 |
語句 | Statements | 語句數 |