1. 程式人生 > 實用技巧 >sonar中的技術債務簡要了解

sonar中的技術債務簡要了解

>>> hot3.png

sonar中技術債務的計算基於SQALE(Software Quality Assessment based on Lifecycle Expectations,基於生命週期期望的軟體質量評估)方法學。

SQALE方法學是inspearit開發的,後來開源了。如果你在sqale.org上閱讀過相關文件,你就會了解到它是關於“組織與程式碼質量相關的非功能行需求”的。在SonarQube實現的SQALE方法中,那些非質量需求指的是質量配置中的編碼規則。

沒錯,SonarQube基於單獨的規則和問題實現了SQALE。那意味著,如果你想用SQALE管理你的技術債務,你首先需要公共的SonarQube儲存庫中那些規則的標記:

  • 重複的程式碼塊

  • 失敗的單元測試

  • 不足的分支單元測試覆蓋率

  • 不足的註釋密度

  • 不足的單元測試行覆蓋率

  • 跳過單元測試

這些規則在一個公共的儲存庫中是因為他們對所有語言是共用的。一旦你激活了它們,你可以以一個問題跟蹤每個質量缺陷,為跟蹤技術債務(SQALE方法用天度量)做準備。

25233503_RXT0.png

這些天的測量值是把每個問題中出現的技術債務相加得到的,你可以在每個問題塊中看到。

25233508_GcL2.png

技術債務為每個問題設定了規則等級。如果你已經瞭解商業的SQALE外掛,你可以調整每個規則的估量(當然,這個是沒有必要的)。

現在你知道修復應用需要花費多長時間,但是你怎麼按優先順序排序你的工作呢?這裡有一個小部件,它叫做技術債務金字塔,它看起來一點不像你以前所見過的金字塔。

25233522_3zpD.png

不要因這不像是一個古埃及的金子塔而困惑,這是一個比喻的金字塔。閱讀它的方法是自下而上的。底部的行在條形圖中總是有最小的條形,但是它有最大的入口因為它是基礎。這個小部件的每個行代表一種特徵(characteristic),每個特徵建立在它下面的基礎上。可測試性是底部,因為它最重要的是:首先,你要確保你的應用程式是可測試的,接著你要確保它的可靠性,可變性,有效性,等等。

圖中的每條顯示了每個特徵的修復時間。淺藍色的部分顯示了清理這個特徵的時間,深藍色的部分顯示了自下而上的工作累計時間。像往常一樣,每個部分的部件通過點選下鑽操作讓你知道一個特徵的技術債務的精確位置。

SonarSource SQALE外掛

擴充套件了SonarQube內建外掛的功能。擴充套件的功能有:可以調整SQALE模型,提供了可新增的小部件等等。

譯:http://docs.codehaus.org/display/SONAR/Technical+Debt


轉載於:https://my.oschina.net/donhui/blog/304143