測試投資回報率

常常,我們會聽到老闆或者老總等領導說,你們測試團隊的貢獻率或是價值在哪?軟件

系統的穩定性如何?下面我將根據這兩個問題,作出一些解答。

1.測試投資回報率

企業爲了獲得利潤,需花費大量的資金進行測試。在質量方面的投資會產生利潤,例如

提高產品質量會提高公司的聲譽,使產品交付之後的維護成本減少,避免用戶的抱怨。測試是一種帶有風險性的管理活動,減少企業在未來因爲產品質量低劣而花費不必要的成本。

缺陷探測率:

DDP=Bugtester/(Bugtester+Bugcustomer)


1客戶發現bug數統計

月份

客戶發現的bug

6

7

7

0

8

2

9

3

10

0

11

3

12

1

合計

16

數據是從20136月份開始統計

2測試人員發現bug數統計

由誰創建

總計

未解決

設計如此

重複Bug

外部原因

已解決

無法重現

延期處理

不予解決

轉爲需求

有效率

MM

700

7

38

14

35

419

31

2

27

127

78.29%

GG

1325

11

47

26

55

788

33

16

39

310

84.08%

合計

2025

18

85

40

90

1207

64

18

66

437

82.07%

數據統計時間:201311日到20131231日,其中有效率的計算公式=(已解決+延期處理+轉爲需求)/總計*100%


屬於質量預防方面的一致性成本只考慮軟件測試的投資,把發佈之前和之後發現及修改

的錯誤堪稱非一致性成本,根據表1和表2,發現的錯誤爲2041個,故障成本已知,測試過程的估算如下:

各階段花費在發現及修改錯誤的成本假設如下:

在開發過程單元測試階段,軟件開發人員發現及修改一個錯誤需要50元;

建立獨立的測試進行集成和系統測試,測試人員發現錯誤,開發人員修改後,測試人員再確認,一個錯誤需要300元;

在產品發佈後,由客戶發現,報告技術支持人員、相關開發人員修改,測試組再進行迴歸測試,一個錯誤需要2000元。

1種情況,開發單位未建立獨立測試隊伍,有開發人員進行測試,發現680個錯誤,而產品發佈後客戶發現錯誤1361,只存在故障成本構成的總成本爲50*680+2000*1361=2756000元,缺陷探測率爲33.32%

2種情況,開發單位建立了獨立測試隊伍,進行手工測試。投資預算人員費用爲100000元,測試環境使用費爲8000元,測試投資(一致性成本)爲108000元,除了開發過程中開發人員發現並修改680個(假設開發人員只能發現1/3的問題)錯誤外,測試過程中測試人員發現錯誤1345個,而產品發佈後客戶發現16個錯誤。總質量成本下降到50*680+300*1345+16*2000+108000=577500元(如表3所示),手工測試總質量成本節約了2756000-577500=2178500元,即爲利潤。投資回報率(ROI)2017.13%,缺陷探測率爲99.22%

ROI = (原無獨立測試質量成本i-獨立測試質量成本j)/測試投資*100%

     = 2756000-577500/108000*100%

         = 2017.13%

DDP=Bugtester/(Bugtester+Bugcustomer)*100%=(680+1345)/2041*100%=99.22%

表3 測試投資回報分析


質量成本項

測試成本項

開發測試

手工測試

一致成本

測試投資

測試人工費


100000

環境使用費


8000

測試工具費



測試總投資


108000

非一致性成本

開發測試

發現錯誤數

680

680

每個錯誤成本

50

50

內部(開發)故障成本

34000

34000

獨立測試

發現錯誤數


1345

每個錯誤成本


300

內部(測試)故障成本


403500

客戶支持

發現錯誤數

1361

16

每個錯誤成本

2000

2000

外部故障成本

2722000

32000

質量成本

一致性成本


108000

非一致性成本

2756000

469500

總質量成本

2756000

577500

ROI

投資回報率

N/A

2017.13%

DDP

缺陷探測率

34.30%

99.22%


2.系統可靠性分析

平均每千行代碼bug數

後臺代碼總共342480行(由於前臺代碼較難統計,據開發人員估計是後臺代碼的3倍),系統總代碼數是1369920,屬於一個大規模系統,平均每千行代碼約爲2個bug。

平均無故障時間MTTF

若設T是軟件總的運行時間,M是軟件在這段時間內的故障次數。

內部平均無故障時間MTTF=T/M=365*24/2041=4.29小時;

外部平均無故障時間MTTF= T/M =(365-151)*24/16=321小時=13.375天。根據考察資料得知,航天科技一些精密系統平均無故障時間720小時對應90分的可信度,參考這個,相當於我們系統的可信度大約爲40分。

下面用Shooman模型對平均無故障時間MTTF進行分析:

對一個長度爲342480行代碼的系統進行測試,根據記錄下來的數據如下:

①測試開始,發現錯誤個數爲0(假設爲0,2012年測試出bug不計入統計);

②經過了151天的測試,累計改正1137個錯誤,此時,MTTF=3.19小時;

③又經過214天的測試,累計改正2041個錯誤,此時,MTTF=4.29小時;

由Shooman公式:   MTTF=1/K(ET/LT-ET(t)/LT

其中,K是一個經驗常數,美國一些統計數字表明,K的典型值是200;ET 是測試之前程序中原有的故障總數;LT 是程序長度(機器指令條數或簡單彙編語句條數);t是測試(包括排錯)的時間;EC(t) 是在0~t期間內檢出並排除的故障總數。

公式的基本假定是:

    單位(程序)長度中的故障數ET∕LT近似爲常數,它不因測試與排錯而改變。 統計數字表明,通常ET∕LT 值的變化範圍在0.5×10-2~2×10-2之間;故障檢出率正比於程序中殘留故障數,而MTTF與程序中殘留故障數成正比;故障不可能完全檢出,但一經檢出立即得到改正。

   由已知條件②、③可解出K=31.22 ,ET  = 4598 。系統中仍可能殘留4598-2041=2557個問題。

   評估系統穩定性還有哪些方法、模型、參數呢?希望經驗人士多給意見。


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