5個衡量軟件質量的標準(可自動化)

jopen 12年前發布 | 6K 次閱讀 質量

1. Sourc Lines of Code (SLOC)
統計代碼行數可能是最簡單的方法。它能體現軟件的規模,為項目的發展和計劃提供一些數據支撐。例如,我們每個月統計一次代碼的行數,我們就能大體知道項目的發展情況。當然,這不是一個值得信賴的標準,因為有重構以及設計的因素。

SLOC 最好是統計 Source Logical Line of Code (SLLOC) 以獲得更準確的信息。Logical code lines 不包含空行,單個括號行以及注釋行。你可以通過 Metrics 這樣的工具很容易的統計 SLLOC。

代碼行數不應該被用來衡量開發效率。否則容易造成重復的,不易維護的和不專業的代碼。

2. Bugs per code_section/module/time_period
問題跟蹤是保證測試和可維護性的關鍵步驟。假如所有的問題(bug)都是有跟蹤的話,每個代碼單元,每個模塊或者某個特定時間(day, week, month...)的問題就很容易被統計(例如 Mantis 工具)。當我們有了這些數據以后,問題的根源就可以被盡早發現并處理。

問題數量可以作為衡量開發質量的一個標準,但必須用的很小心。假如過分強調 bug 數量,那么開發和測試的關鍵就會很緊張。在一個有效率的公司,所有的員工都應該融洽的相處。

為了更好的對代碼質量進行評估。Bug 可以分為 low, medium, high 三種級別,因為它們的重要性和修復的成本是不一樣的。

3. Code Coverage
Code coverage 表明了代碼被測試的程度。有很多工具可以自動統計這個數據,例如 Cobertura

Code coverage 不能說明單元測試的整體質量,但是能說明測試的覆蓋面。它可以和其他一些指標一起用來衡量軟件的質量。當然,我們也需要經常回顧單元測試代碼和集成測試的用例。

  1. Design/Development Contraints</b>
    軟件開發中有很多設計規則,例如:
     - 類/方法的長度
     - 方法/屬性的數量
     - 方法的參數數量
     - 特殊數值以及字符串的使用量
     - 注釋的比例
    這些規則都是保證代碼可讀性和可維護性的重要指標。開發團隊應該選擇一些或者全部的規則來實施(例如 maven pmd plugin )。這將幫助提高軟件產品的質量。

    5. Cyclomatic Complexity(環路復雜度)
    把環路復雜度單獨列出來講是因為它和其他的設計準側不太一樣。環路復雜度是關于代碼實現和執行。它也可以通過工具自動計算,例如 pmd

    這個數值是獨立的代碼執行路徑數量。例如:
    5個衡量軟件質量的標準(可自動化)
    Cyclomatic Complexity = E(edges) - N(nodes) + 2P (exit nodes)
    So, Cyc.Cmp. = 8 - 7 + 2*1 = 3

    你也可以看到,從起點到終點,有三條不同的路徑。這個值往往是針對方法來計算。根據不同的項目類型,我們可以設定這個值的上限,例如6,8,或者10。

    一個指標不能說明整個項目的質量。使用更多的指標,會讓你對項目的質量有更全面的了解。

     

    原文鏈接,OSChina.NET 編譯

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!