5 個常用的軟件質量指標


在軟件開發中,軟件質量是衡量軟件是否符合需求、標准的重要體現。除了代碼質量外,影響軟件整體質量的因素還有很多。因此,要確保軟件的整體質量,就需要在各個環節嚴格控制。 

本文列出了衡量軟件質量的5個最常用的指標。 

1.  SLOC(Source Lines of Code,源代碼行) 

計算代碼行數可能是最簡單的衡量指標,主要體現了軟件的規模,並為項目增長和規划提供了相關數據。例如,如果每月統計一次代碼的行數,就可以繪制一個項目發展概覽圖。當然,由於存在項目重構或是設計階段等因素,這種方式並不太可靠,但是可以為項目的發展提供一個視角。 

可以只統計邏輯代碼行(Source Logical Line of Code,SLLOC),這樣可以獲得稍准確的信息。邏輯代碼行不包含空行、單個括號行和注釋行。可以使用Metrics工具來統計。 

代碼行數不應該用來評估開發者的效率,否則,可能會產生重復、不可維護的或不專業的代碼。 

2.  每個代碼段/模塊/時間段中的bug數 

要想實現更好的測試以及更高的可維護性,bug跟蹤是必不可少的。每個代碼段、模塊或時間段(天、周、月等)內的bug可以很容易通過工具統計出來(如Mantis)。這樣,可以及早發現並及時修復。 

Bug數可以作為評估開發者效率的指標之一,但必須注意,如果過分強調這種評估方法,軟件開發者和測試者可能會成為敵人。在生產企業中,要保證員工彼此之間的凝聚力。 

為了更好的實現評估,可以根據重要性和解決成本將bug划分為低、中、高三個級別。 

3.  代碼覆蓋率 

在單元測試階段,代碼覆蓋率常常被拿來作為衡量測試好壞的指標,也用來考核測試任務完成情況。可以使用的工具也有很多,如Cobertura等。 

代碼覆蓋率並不能代表單元測試的整體質量,但可以提供一些測試覆蓋率相關的信息,可以和其他一些測試指標一起來使用。 

此外,在查看代碼覆蓋率時,還需注意單元測試代碼、集成測試場景和結果等。 

4.  設計/開發約束 

軟件開發中有很多設計約束和原則,其中包括: 

  • 類/方法的長度
  • 一個類中方法/屬性的個數
  • 方法/構造函數參數的個數
  • 代碼文件中魔術數字、字符串的使用(魔術數字指直接寫在代碼中的具體數值,其他人難以理解數字的意義)
  • 注釋行比例等

代碼的可維護性和可讀性是很重要的,開發團隊可以選擇以上這些原則中的一個或全部,並通過一些自動化工具(如maven pmd插件)來遵循這些原則,這將大大提高軟件產品的質量。 

5.  圈復雜度(Cyclomatic Complexity) 

圈復雜度是用來衡量一個模塊判定結構的復雜程度,已經成為評估軟件質量的一個重要標准,能幫助開發者識別難於測試和維護的模塊,在成本、進度和性能之間尋求平衡。圈復雜度可以使用pmd工具來自動化計算。 

圈復雜度數量上表現為獨立路徑的條數,即合理的預防錯誤所需測試的最少路徑條數,圈復雜度大說明程序代碼可能質量低且難於測試和維護。 

計算公式為:V(G) = E - N + 2P 

E:邊,代表節點間的程序流; 
N:節點,程序中代碼的最小單元 
P:出口節點 


上圖中共8條邊,7個節點,因此圈復雜度為8 - 7 + 2*1=3。這意味着,理論上需要編寫3個測試用例來覆蓋所有的判定條件。 

其實,圈復雜度的計算還有更直觀的方法,因為圈復雜度所反映的是“判定條件”的數量,所以圈復雜度實際上就是等於判定節點的數量再加上1,也即控制流圖的區域數,對應的計算公式為:V(G)=區域數=判定節點數+1。 

在項目開發中,可以根據項目類型,來定義上限數(6、8或10等)。 

以上是最常用的5種軟件質量度量指標,當然,還可以結合其他的指標,對項目有一個更清晰的認識。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM