我的微信號是Shalayang,以下是我的二維碼名片,歡迎添加。
問題1:bug率有什么作用?
my opion:用處有很多,需要具體情況具體分析,不過主要作用一般是來評價工作產品的質量。如果bug率較高,說明系統質量較差,需要大量的返工。項目經理就需要做好缺陷分析(缺陷的類型、分布、嚴重程度等),找出原因,以便做好下一階段的缺陷預防工作。除此之外,還可以結合其它方面的信息,判斷是否一些工作不充分。譬如,如果缺陷密度過低,有兩個原因:可能工作產品質量確實高;也可能評審或測試不充分,更多的缺陷沒有發現。在某些公司,bug率也作為項目度量考核的一項指標。
問題2:bug率的計算公式是什么?
流行的公式主要以下兩個:
觀點一、bug率=bug數/代碼行數
觀點二、bug率=bug數/功能點數
my opion:
網上對於這兩個公式的爭議比較多,這個問題上,個人覺得沒必要爭哪個才是正道。說句唯心主義的話,存在即是合理,每個公式都有他生存的環境和產生的根源,對於我們需要用到它的時候,只需要根據公司需要進行擇優選擇就好了,不是嗎。
問題3:哪種方法更有效,更合理可行呢?
my opion:
使用代碼行進行計算,優點是可以通過自動統計工具計算(特別是對於大型項目,一般都會計算代碼行數),比較方便,所以該方法比較普遍,是大多數公司或項目運用的計算方法。但它的缺點是受開發人能力影響大(畢竟不同開發人員的編碼能力不一樣),且不同編程語言差別較大。
使用功能點進行計算,優點是計算方法適用性強,不同語言之間也有可比性,但缺點是參數較多,比較復雜,而且目前還沒有比較方便的工具。其次,計算功能點雖然與開發人員的代碼能力無關,但是與計算功能點的人有關,對於沒有根基的人而言,能准確的計算出功能點也不是一件容易的事。而且功能點涉及的內容也比較多。
網上看過有人說到“功能點與不同語言的代碼行數之間有一個對應,可以在統計出代碼行數后根據比例換算成功能點”, 具體對應關系是什么我沒有查到,希望有知道的童鞋告知一下。
問題4:bug率計算公式中的bug數怎么取值?
在看到上面的公式后,也許有人疑惑:
- 能很方便的統計出新版本變化的代碼行數嗎?
- 分子中的bug數是本次剩余的bug數呢,還是總共的bug數?
- 如果代碼行數為總行數,那么bug數就應該為總的bug數?即所有bug的和?而且如果是總的bug數那么對於后期的僅僅改錯的階段而言,可能代碼的增加會很少,但是這時bug數會不斷增加,這樣一來,bug率豈不是在不斷的升高?但是按常理而言是應該減少的呀,應該越到后期bug率越小才對,是不?
- 或者bug數取剩余的bug總數(上幾個版本剩余未修改的bug和本版本的新bug)呢?而代碼行數仍然是總的代碼行數。這樣是不是有問題呢?
解惑:
1、代碼統計工很多都能做到新舊兩個版本對比,很容易得到版本變化的代碼行數.
2-3、那就看你用這個度量項來說明什么問題:如果是評價新增代碼的質量,那不應該包括以前未解決的Bug,可以用“新增的bug數/新增+修改+刪除代碼行數”,如果是當前版本的整個系統的代碼質量-----總的bug數/總代碼行數。
4、這個就是相當於統計bug收斂率了。
問題5:對於迭代方式開發的缺陷統計怎么做?
現在有很多項目是采用迭代的方式來進行的,每次可能添加的代碼部分比較少,那如何來計算其bug率呢?是用新增的bug數/新增的代碼行數?還是總的bug數/ 總的代碼行數?
my opion:
采用何種統計策略,還要看該統計項目的,如果用於評價新開發工作的質量,那就不能把原有系統缺陷統計在內;如果不作為評價新的開發工作,那就都統計在一起(譬如有的只是跟蹤版本質量)。
每一個統計項都應有它的目的,不應該機械地去做統計,還要看設計該統計項的目的是什么。