軟體缺陷管理過程不僅包含軟體缺陷記錄和統計,更重要的是對缺陷數據進行細緻、深入的分析。缺陷分析是缺陷管理中的一個重要環節,有效的缺陷分析不僅可以評價軟體質量,同時可以幫助項目組很好地掌握和評估軟體的研發過程,進而改進研發過程,未對缺陷進行分析就無法對研發流程進行改進。此外,還能為軟體新版本的開發提供寶貴的經驗,進而在項目開展之前,制定準確、有效的項目控制計劃,為開發高質量的軟體產品提供保障。

常用的缺陷分析方法有:根本原因缺陷分析法、四象限缺陷分析法、ODC 缺陷分析法、Rayleigh缺陷分析法和Gompertz 缺陷分析法。

本節我們來學習下Rayleigh 缺陷分析法。

Rayleigh 模型是Weibull 分佈系列中的一種。Weibull 分佈又稱韋伯分佈、韋氏分佈或威布爾分佈,由瑞典物理學家Wallodi Weibull 於1939 年引進,是可靠性分析及壽命檢驗的理論基礎。Weibull分佈能被應用於很多形式,包括1 參數、2 參數、3 參數或混合Weibull。3 參數的Weibull 分佈由形狀、尺度(範圍)和位置三個參數決定。其中形狀參數是最重要的參數,決定分佈密度曲線的基本形狀,尺度參數起放大或縮小曲線的作用,但不影響分佈的形狀。

它的累積分佈函數(CDF)和概率密度函數(PDF)為:

參數說明:m 為形狀參數(Shape Parameter);c 為範圍參數(Scale Parameter);t 為時間。在軟體測試過程中,一般使用概率密度函數PDF 來表示缺陷密度隨時間的變化情況,積累分佈函數為累計缺陷分佈情況,在使用Rayleigh 模型分析缺陷時,形狀參數m 取值為2。

將m 值代入公式(1)和公式(2)中,累積分佈函數(CDF)和概率密度函數(PDF)為:

c 參數為常量c= √2tm,tm是 f(t)達到峯值時對應的時間。在實際應用過程中,會在公式前面乘一個係數K(K 為所有的缺陷數),將K 值代入公式(3)和公式(4)中,累積分佈函數(CDF)和概率密度函數(PDF)為:

缺陷tm 時間的比率m F(t ) / K ≈0.4,即當f(t)達到最大值時,已發現的缺陷數約為總缺陷數的40%。

統計測試中所發現的缺陷數,如表9-6 所示。

從表9-6 中可以看出,第3 周發現的缺陷數最多,截止到第3 周所發現的缺陷數應該大約佔全部缺陷總數的40%,則K(總缺陷數)=(前3周缺陷總數)/0.4=(20+38+55)/0.4=113/0.4=282。tm等於3,那麼c=√2tm=3√2 。將K值和c值代入公式(5)和公式(6)中,累積分佈函數(CDF)和概率密度函數(PDF)為:

使用Rayleigh 模型生成的模擬值見表9-7。

累積分佈函數(CDF)與真實數據圖如圖9-23 所示。

概率密度函數(PDF)與真實數據圖如圖9-24 所示。

【實例】通過Rayleigh 模型的概率密度來評估測試過程和軟體質量。計劃升級一個歷史項目,以前的歷史數據統計表明,該項目千行代碼缺陷率為9.56 個,估計升級後該項目的代碼行數為102KLOC(千行),希望本次升級發現的千行缺陷數比之前少5.3%,即總缺陷數預計為9.56×102×(1-5.3%)=923.44 個,計劃項目的測試時間為22 周。將數據代入到Rayleigh 模型中的概率密度函數中,得到PDF 為:

使用Rayleigh 模型生成的模擬值見表9-8。

使用Rayleigh 模型生成概率密度函數圖,如圖9-25 所示。

測試過程應該將該圖與測試過程真實的每週發現的缺陷數進行對比,如果兩個圖存在明顯的差異,那麼說明測試策略存在問題,需要重新修改測試策略。


推薦閱讀:
相關文章