如何評估開發代碼質量

總體思路:如何評估開發代碼質量-->千行代碼Bug率-->StatSVN工具統計代碼量

情景

小A所在的項目組,每個項目版本都bug數都在400-500之間,每次項目測試期間都要給驗證Bug單獨安排2-3天的時間進行Bug驗證。Bug多的問題一直存在,終於在4.6.0版本發佈後問題爆發了,項目上線後線上版本出現了十幾個問題,後期針對問題又緊急發佈了一個新版本修復問題。

針對情景中小A遇到的問題,你所在的項目組是否也存在此問題呢?如果有同樣的問題,你就需要特別注意啦!小編與公司其他項目組的同事溝通後,發現很多項目組每個版本的Bug數在100以內。爲什麼bug數差距這麼大呢?

行業內有一句話:質量不是被測試出來的。爲了提高項目質量,我們就要從源頭抓起,開發是項目的建造者,如何讓開發提測的版本質量本身提高,我們就要建立一個標準衡量開發的代碼質量。小編使用的標準是千行代碼率,今天帶你一起探索此方法。

一、評估目的

1.從開發角度分析每個人員的技術水平;

2.建立量化標準,從源頭評估代碼質量,做到質量控制前移;

3.根據分析出現的問題制定改進計劃。

二、統計指標

  1. Bug數

    最直接反映開發人員代碼質量就是其所寫的代碼產生了多少個Bug。另外Bug的嚴重性不一樣,對用戶的影響也是不一樣的。所以我們不僅要統計開發人員名下的Bug總數,還要統計其在不同嚴重性程度的Bug數量。 統計Bug數量的時候需要注意將一些不屬於開發原因的Bug排除在外,如需求建議、需求補充、不是問題的Bug、重複的Bug。

    2.代碼行數

    小編使用的工具是StatSVN,這個工具使用很便捷。但是在統計之前一定要了解清楚自己所在項目的代碼結構。比如說開發寫的代碼文件格式都有哪些,這些不同格式的文件中具體包含是哪些方面的代碼,哪些代碼是不需要統計的。以小編項目組爲例:開發寫的以.h結尾的頭文件、單元測試代碼、第三方提供的SDK代碼,這些代碼有些不對功能產生影響,有些不是自己項目組開發寫的代碼,所以都不進行統計。

    3.計算公式

    千行代碼Bug率 =Bug數量/ (代碼行數/1000)

    度量的標準:千行代碼Bug率數值越小質量越好。

三、如何使用工具

1.環境搭建

1)機器安裝Java的運行環境(Java Runtime Environment),JDK的版本需要到1.6,在1.4的時候會報類似“Repositories:org.xml.sax.SAXParseException: 缺少文件根組件”的錯誤

2)解壓壓縮包,到一個目錄,如c:\statsvn; StatSVN的主頁:http://www.statsvn.org/

2.命令統計代碼

1)從SVN服務器中獲取統計項目版本的最新所有代碼,Windows系統使用SVN客戶端可以直接checkout

2)在存放代碼目錄下生成SVN日誌log命令:

svn log -v --xml > 日誌名XXX.log

3)統計代碼行數

cmd中在statsvn jar包所在目錄執行命令:

java -jar ../statsvn.jar ../nova/日誌名XXX.log ../nova -charset utf-8 -disable-twitter-button -title Nova -include /*.cpp:*/.h -exclude /sqlite3/.

Note說明:

java -jar ../statsvn.jar // 執行statsvn.jar,後面是它的參數

參數1:../nova/日誌名XXX.log //調用上面生成的SVN日誌

參數2:../nova //最新版本所在的目錄

參數3:-charset GB2312 //生成的HTML所用的字符集

參數4:-disable-twitter-button //關閉twitter連接,可能statsvn的開發者是一個twitter愛好者,statsvn默認在項目和開發人員的名字後加個twitter連接按鈕,方便互動。這在中國行不通,大家都懂的...所以讓twitter連接按鈕不顯示。

參數5:-title標題名 //這個設置在HTML頁面中顯示的項目標題

參數6:-include*/.cpp:*/.h //表示統計的文件類型,默認情況下statsvn統計指定目錄下的所有文件(包括一些開發環境自動生成的文件等,這個參數可以設置指定統計具體文件,例子中的表示只統計項目目錄下得CPP與H文件。

參數7:-exclude*/sqlite3/.* //表示不統計的內容,例子中的參數表示不統計項目文件夾中sqlite3的內容(因爲sqlite3的內容是調用別人寫的程序,統計進去沒有意義~)

4)查看統計結果:在生成的html結果目錄下查找index.html文件。此文件是所有結果的總目錄表。點擊Developers就可以看到每個開發人員提交的代碼數量。

四、StatSVN的優缺點

優點:

StatSVN會把當前SVN庫的狀態用圖片和圖表的方式展現出來,可以按不同分類分別展開,功能強大。

缺點:

StatSVN統計的是所有代碼行,包括註釋和空行,但一般度量要求是有效代碼行,在分析時需要注意這一點。

StatSVN不考慮修改的代碼行數,只考慮與上一版本相比新增(+)與刪除(-)的代碼行數。

五、如何更精準評價開發代碼質量

通過上面的方法我們已經得到了每個開發人員的千行代碼Bug率。但是爲了更精準的評估開發質量還需要其他指標進行輔助參考。這些數據包括Bug易發現性、Bug的反覆次數、連帶Bug數量、負責的功能複雜性等方面綜合分析。這樣得出的結論才能更符合實際情況。

疑惑:
(1)什麼是SVN

(2)怎樣從SVN服務器中獲取統計項目版本的最新所有代碼?

(3)什麼是twitter?

(4)Bug易發現性、Bug的反覆次數、連帶Bug數量、負責的功能複雜性 怎麼統計?

參考文件:http://blog.csdn.net/honghailiang888/article/details/51451584

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章