第二章 文獻探討
第三節 卜瓦松過程與非齊次卜瓦松過程
一、 卜瓦松過程
卜瓦松過程(Poisson Process)為所有計數過程最重要的基礎理論,須滿足以 下假設條件(朱家儀,2013):
1. P[N(t0) = 0] = 1,指起始時間點發生 0 次事件的機率為 1,其中t0 = 0。
2. {N(t);t ≧ 0}具有獨立增量。
3. P[N(t + ∆t) − N(t) = 1|H𝑡] = λ(t)Δt + ο(Δt),其中 Ht為時間 t 之前所發生之事 件。
4. P[N(t + ∆t) − N(t) ≧ 2] = ο(Δt),其中ο(Δt)滿足limΔ𝑡→0{ο(Δt)
Δt } = 0。
二、非齊次卜瓦松過程
非齊次卜瓦松過程與卜瓦松過程相似。卜瓦松過程是假設累積事件個數 N(t) 是一個計數過程(Counting Process);非齊次卜瓦松過程的基本概念為考慮軟體 失效率函數λ(t)是一個與時間相關的函數,假設 N(t)為時間 t 之前所累積偵測到的 錯誤數,且 N(t)屬於計數過程,而 N(t)的期望偵測錯誤數為均值函數 m(t)(Mean
14
Value Function, MVF),根據 NHPP 可求得在時間 t 時,會找到錯誤的數目(謝爾 廉,2000)。
NHPP 模型的基本假設為(Pham, 2006;李嘉華,2014):
1. 失效過程有一獨立增量(Increment)。(時間區間(t, t+s)中的失效數目取決 於當下時間 t 與區間 s 的長度,不取決於過去運作過程。)
2. 過程失效率可得:
P{恰好一個失效在(t, t + Δt)} = 𝑃{𝑁(𝑡 + Δt) − 𝑁(𝑡) = 1} (2.1) = λ(𝑡)Δ𝑡 + 𝜊(∆𝑡)
3. 在區間期間,超過一個失效機率是可以忽略的:
P{兩個失效以上在(t, t + Δt)} = 𝜊(∆𝑡) (2.2) 4. 初始狀況 𝑁(0) = 0
NHPP 假設累積失效個數為 N(t),其計數過程{𝑁(𝑡), t ≥ 0}可得(Huang, Lyu &
Kuo, 2003):
Pr{𝑁(𝑡) = 𝑘} =(𝑚(𝑡))
𝑘
𝑘! 𝑒−𝑚(𝑡), 𝑘 = 0,1,2, ⋯ (2.3) 和
m(𝑡) = ∫ 𝜆(𝑡)𝑑𝑥0𝑡 (2.4) 其中,失效強度函數(Failure Intensity)λ(t)(或均值函數 m(t))為軟體可靠 度工程文獻中 NHPP 模型的基本要素。
Pham(2000)將 NHPP 分為四個類型:
1. NHPP 指數型(Exponential)模型 2. NHPP S 型(S-Shaped)模型 3. NHPP 不完美除錯模型 4. NHPP 不完美除錯 S 型模型
NHPP 模型為假設失效強度與軟體內剩餘錯誤數目成正比,可透過以下微分
15
方程式獲得(Pham, Nordmann & Zhang, 1999):
𝑑𝑚(𝑡)
𝑑𝑡 = 𝑏(𝑡)[𝑎(𝑡) − 𝑚(𝑡)] (2.5) 其中 m(t) = 時間 t 期望偵測到的錯誤數,即均值函數。
a(t) = 故障內容函數(Fault Content Function),即在時間 t 時軟體中總 錯誤數,包含初始及後來產生的錯誤數。
b(t) = 在時間 t 每單位錯誤偵測率(Fault Detection Rate)函數。
透過代入不同的數值給 a(t)及 b(t),可以得到不同的 NHPP 模型,如表 4 所示。
16 Inflection S-shaped
m(t) = a(1- e−bt )/(1+ βe−bt ) a(t) = a
b(t) = b /(1+ βe−bt )
Delayed S-shaped
m(t) = a(1- (1+ bt)e−bt ) a(t) = a
b(t) = b2t /(1+ bt) Yamada Exponential
Imperfect Debugging Model
m(t) = (ab/(α + b))(eαt - e−bt ) a(t) = aeαt
b(t) = b Yamada Linear
Imperfect Debugging Model
m(t) = a(1- e−bt)(1- (α/b)) +αat a(t) = a(1+αt)
b(t) = b Pham Exponential
Imperfect Debugging Model
Pham–Zhang Model
m(t) = [(a + c)(1 - e−bt)-(bc/(b - α))(e-αt - e−bt)]/(1 + βe-bt) a(t) = c+a (1-e-αt)
b(t) = b/(1+βe-bt)
Yamada Exponential
m(t) = a (1 − 𝑒−𝑟𝛼(1−𝑒(−𝛽𝑡))) a(t) = a
b(t) = rαβe-βt 資料來源:Pham 與 Zhang(2003)
17
一、NHPP 指數型模型
(一)Goel-Okumoto 模型
Goel-Okumoto(G-O)模型為 1979 年由 Amrit Goel 與 Kazuhira Okumoto 提 出,此模型用來描述軟體失效過程中,假設一個可以描述累積失效過程的 NHPP
(Almering, Genuchten, Cloudt & Sonnemans, 2007)。
G-O 模型為根據以下描述中假設(洪翠霙,2007):
在時間 t 偵測到的累積錯誤數須遵循卜瓦松分配過程,所有錯誤彼此間互相 獨立,且被偵測到的機會皆相同,失效發生時,偵測到的錯誤會立即被移除,且 不會產生新的錯誤。任何時間偵測到的錯誤數目與目前軟體中偵測到的錯誤數目 成正比,換句話說,錯誤的實際發生機率是不變的。
假設 a(t)=a 及 b(t)=b,且邊際條件(Boundary Condition)m(0)=0,可得 m(𝑡) = 𝑎(1 − 𝑒−𝑏𝑡) (2.6) 失效強度函數(Failure Intensity Function)則為
λ(𝑡) =𝑑𝑚(𝑡)
𝑑𝑡 = 𝑎𝑏𝑒−𝑏𝑡 (2.7)
二、NHPP S 型模型
在 NHPP S 型模型中,軟體可靠度的生長曲線是 S 型的,其根據以下假設(洪 翠霙,2007):
1. 造成 S 型是因為在偵測錯誤並移除之前,部分錯誤被隱藏,造成在偵測過程 中沒被發現。
2. 軟體測試為學習過程,測試技巧熟悉度不足及不熟悉的測試項目導致偵測錯 誤效率不彰。
(一)NHPP 曲折 S 型模型
曲折 S 型(Inflection S-shaped, ISS)由 Ohba 提出,其基本概念為所觀察到的
18
軟體可靠度成長曲線為 S 型,並假設過程中的錯誤彼此依賴(Huang & Lin, 2006)。
ISS模型為根據以下描述中假設(Prasad, Rao & Mohan, 2013):
在部分錯誤被移除之前,部分故障是無法檢測的,被偵測到的錯誤失效率皆 相同且為一常數,被隔離的錯誤可以完全被移除,任何時間偵測到的錯誤數目與 目前軟體中偵測到的錯誤數目成正比。
假設 a(t)=a 及 b(t)=b/(1+βe−bt),,其中 β 為曲折因子(Inflection Factor),且 邊際條件 m(0)=0,可得
m(𝑡) = a(1−e−bt)
(1+βe−bt) (2.8)
失效強度函數則為
λ(𝑡) =𝑑𝑚(𝑡)
𝑑𝑡 =ab(1+β)e−bt
(1+βe−bt)2 (2.9)
(二)NHPP 延遲 S 型模型
NHPP 延遲 S 型(Delay S-shaped, DSS)由 Yamada、Ohba 與 Osaki 透過在第 一階段測試時考慮測試效率以提高 G-O 模型,導致軟體失效數隨時間累積的 S 型 曲線(Almering et al., 2007)。
NHPP 延遲 S 型(Delay S-shaped, DSS)模型為根據以下描述中假設:
所有錯誤彼此間互相獨立,且被偵測到的機會皆相同,被偵測到的錯誤失效 率為一常數,任何時間偵測到的錯誤數目與目前軟體中偵測到的錯誤數目成正比。
軟體在任何時間下的失效行為皆為系統中的錯誤所造成,軟體的最初故障內容函 數為一隨機變數,第(i-1)次與第 i 次失效發生的間隔時間取決於第(i-1)次失效發生 的時間。失效發生時,偵測到的錯誤會立即被移除,且不會產生新的錯誤。
假設 a(t)=a 及 b(t)=b2t /(1+ bt),且邊際條件 m(0)=0,可得
m(𝑡) = a[1 − (1 + bt)e−bt] (2.10)
19
Ahmad, 2013):
當偵測到的錯誤被移除時,有可能會產生新的錯誤,故障內容函數為指數型 函數,而錯誤偵測率為一常數,錯誤偵測率與軟體中剩餘的錯誤數目成正比。
假設 a(t)=aeαt及 b(t)=b,其中,a 為錯誤產生率(Fault Introduction Rate),且 邊際條件 m(0)=0,可得
NHPP Yamada 不完美除錯模型 2 為根據以下描述中假設(江文馨,2013):
當偵測到的錯誤被移除時,有可能會產生新的錯誤,錯誤產生率和錯誤偵測
20
四、NHPP 不完美除錯 S 型模型
(一)Pham 指數型不完美除錯模型
Pham 指數型不完美除錯模型為根據以下描述中假設(Pham, 2006):
故障內容函數為一指數型函數,錯誤偵測率為一非遞減曲折 S 型模型。
(二)Pham-Nordmann-Zhang NHPP 模型
Pham-Nordmann-Zhang(P-N-Z)NHPP 模型為根據以下描述中假設(Pham, 2006):
Pham-Zhang(P-Z)NHPP 模型為根據以下描述中假設(黃慶育,2000):
函數 a(t)反應出不完美除錯的現象,也就是說,錯誤數在一開始時會較測試
21
失效強度函數則為
λ(𝑡) =[(𝑐+𝑎)(𝑏𝑒
−𝑏𝑡)− 𝑎
𝑏−𝛼(𝑏𝑒−𝑏𝑡−𝛼𝑒−𝛼𝑡)]
1+ βe−bt +[(𝑐+𝑎)(1−𝑒
−𝑏𝑡)− 𝑎
𝑏−𝛼(𝑒−𝛼𝑡−𝑒−𝑏𝑡)]𝛽𝑏𝑒−𝑏𝑡
(1+ βe−bt)2 (2.21)