第二章 文獻探討
2.4 軟體可靠度成長模型
發展出可靠的軟體產品如今已成為軟體產業中非常重要的議題之一,如何讓 一套新軟體能在正常的狀況下達到使用者預期的功能而不會產生失效,是軟體開
10
發人員所面臨的重大問題之一。軟體可靠度模型也因此得到了廣泛的應用。軟體 可靠度模型從本質上看可分為兩種:一種是試圖從設計參數中預測軟體的可靠度,
又稱缺陷密度(defect density)模型,可從程式碼的特性、程式碼行數、輸入和 輸出的資料等之參考資料,計算出軟體內之錯誤數目;另一種則是從測試資料預 測軟體的可靠度,又稱軟體可靠度成長模型,此類模型試圖透過具有一定特性之 已知函數與歷史實際失效數據來預測未來的軟體失效行為(Wood, 1996)。
在現有的可靠度成長模型當中,有一大部分都是以非齊次卜瓦松過程為基礎 的。NHPP 通常用來描述失效趨勢(可靠度成長),並提供可有效描述測試過程 中軟體失效現象的分析架構,與畫出失效適配曲線,通常以指數型或 S 型曲線呈 現,來預測未來的失效數目(Yamada, 2014)。
圖 5 軟體可靠度成長曲線 資料來源:(Yamada, 2014)
透過建構軟體可靠度成長模型,測試人員即可有效預測軟體失效行為,以及 有效確保軟體系統發行之後的整體品質。此小節將介紹非齊次卜瓦松過程的基本
11
概念,以及以此過程為基礎所建構的軟體可靠度成長模型的整理表格,最後分別 針對 NHPP 除錯延遲和 NHPP 測試心力函數的軟體可靠度成長模型進行介紹。
2.4.1 非齊次卜瓦松過程軟體可靠度成長模型
非齊次卜瓦松過程(Non-Homogeneous Poisson Process, NHPP)模型把到時 間t為止所偵測的錯誤數目的呈現服從NHPP之形式{ ( ),N t t0}. NHPP模型的主 要目的是為了確定截止之時間t時所偵測到的錯誤數目之均值函數(Mean Value Function)(Pham, 2006)。
NHPP模型的基本假設為(Pham, 2006):
失效過程有一獨立增量(Increment)。(時間區間(t, t+s)中的失效數 目取決於目前時間 t 與區間 s 的長度,而不取決於過程的運作歷史。)
12
其中,失效強度(Intensity Function)函數𝜆( )(或均值函數m(t))為軟體可 靠度工程文獻中所有NHPP模型的基本要素。
NHPP模型為假設失效強度與軟體內剩餘的錯誤數目成正比,且可透過求解 一下微分方程式而獲得(Pham et al., 1999):
dm t b t a t m t
dt (2.5) 其中,m(t)為截止之時間 t 時期望偵測到之錯誤數目,即均值函數;a(t)為 故障內容函數;b(t)為為每單位事件之錯誤偵測率函數。
若要考慮不完美除錯的機率,可於式(2.5)中加入參數p以預測錯誤被發現之 後成功被移除的機率(Kapur et al., 2011a):
( ) ( ) ( ) ( ) dm t a t m t pb t
dt (2.6)
藉由代入不同的a(t)與b(t)之數值,即可獲得不同的NHPP模型。表一為過去 三十年較有名之NHPP軟體可靠度模型均值函數的整理。
13
Delayed S-Shaped Model Exponential Model
Debugging Model
Yamada Linear Imperfect Debugging Model
Zhang Model
14
2.4.2 NHPP Goel-Okumoto 模型
Goel-Okumoto (G-O) 模型的基本假設為(Xie, 1991):
(1) 在時間t時,累積偵測到之錯誤數目服從卜瓦松分配(Poisson Distribution)
之形式。
(2) 所有錯誤彼此之間互相獨立且被偵測到的機會皆相同。
(3) 失效發生時,偵測到的錯誤會立即被移除且不會產生新的錯誤。
假設a t( )a 和b t( )b ,邊際條件(Boundary Condition)m(0)0 時,可 獲得:
( ) (1 bt)
m t a e (2.7) 失效強度則為:
( )t m t'( ) abe bt
(2.8)