SQALE是什么

SQALE是什么

本文將解釋在SonarQube中看到的SQALE Rating指標的意思以及計算方法,并給出一個例子。


一、SQALE簡介


SQALE全稱是Software Quality Assessment based on Lifecycle Expectations,是一套評估代碼質量的方法。主要思路計算技術債務時間占開發所有代碼所需要的時間的比例(Technical Debt Ratio),并按照比例的大小劃分A到D的等級。

二、如何計算Technical Debt Ratio


Technical Debt Ratio計算公式

Technical Debt Ratio = 技術債務時間 / 開發時間

技術債務時間

上圖中的Debt即是技術債務時間,216d表示修復所有的Issues需要216天。

每個Issue都由SonarQube默認了修復需要的時間,雖然可以通過配置修改,但SonarQube官方表示不建議修改。

評估開發時間

開發總時間 = 每一行代碼開發所需要的時間 * 代碼總行數

其中每一行代碼開發所需要的時間是可以配置的,默認是30min。

計算公式中可配置參數

技術債務相關參數配置頁面路徑是General Settings->Technical Debt,部分參數截圖如下:

  • 每一行代碼開發時間


  • 一天工作小時數


  • A-E等級對應的Technical Debt Ratio范圍,默認值是0.1,0.2,0.5,1,表示[0,0.1]為A,(0.1,0.2]為B,(0.2,0.5]為C,(0.5,1]為D。


  • 計算單位,可選項包括復雜度、一行代碼,默認是一行代碼。這里值得注意,上文中為了快速說清楚,忽略了一個細節。即評估開發時間的單位可以是復雜度,公式為:
    開發總時間 = 每一個復雜度開發所需要的時間 * 總復雜度

三、一個例子



上圖項目Technical Debt Ratio=5.0%,SQALE Rating=A,下面展示計算過程,其中技術債務的相關參數均為SonarQube默認值。

技術債務時間 = 216d * 8 * 60min = 103680min

開發總時間 = 每一行代碼開發所需要的時間 * 代碼總行數 = 30min * 68820 = 2064600min

Technical Debt Ratio = 技術債務時間 / 開發總時間 = 103680 / 2064600 = 0.05 = 5.0%

0.05 in [0,0.1],故SQALE Rating = A


created by 兩害
主要參考:
http://www.sonarsource.com/products/plugins/governance/sqale/installation-and-usage/#understandingSqaleRatings

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容