一種基于移動點和不完美排錯的軟件可靠性建模方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及軟件可靠性增長模型研宄領(lǐng)域,具體是指一種基于移動點和不完美排 錯的軟件可靠性建模方法。
【背景技術(shù)】
[0002] 隨著計算機技術(shù)的飛速發(fā)展,軟件正日益廣泛地應(yīng)用于社會的各個領(lǐng)域,且規(guī)模 越來越大,復(fù)雜性越來越高。社會對具有高可靠性的軟件的需求也在大幅度地增長,特別 是應(yīng)用于尖端領(lǐng)域的軟件,保障和預(yù)測其可靠性日益重要。軟件工程的質(zhì)量保證和評估 重點就是如何提高軟件的可靠性。軟件可靠性增長模型(Software Reliability Growth Model,簡稱SRGM)是在數(shù)理統(tǒng)計學(xué)的基礎(chǔ)上預(yù)測和評估軟件可靠性的重要手段。
[0003] 軟件可靠性增長模型的實質(zhì)是利用軟件測試階段的失效數(shù)據(jù),對軟件的運行情況 進行評估和預(yù)測,從而決定軟件的可靠性水平是否達到用戶的要求和是否可以發(fā)布使用。 故障檢測過程和故障排除過程是軟件測試階段影響可靠性建模精度的兩個重要因素。現(xiàn)有 的大多數(shù)模型對于故障檢測過程的建模非常精確,只有少數(shù)文獻對故障排除過程進行了研 宄。實際上,故障排除過程中存在不完美排錯現(xiàn)象,在軟件可靠性建模中該現(xiàn)象涉及到的影 響因素是故障排除率函數(shù)和故障引入率函數(shù)。由于軟件測試人員的技術(shù)水平不同,故障的 結(jié)構(gòu)和性質(zhì)不同,故障的難易程度不同,故障排除率并不是1〇〇%,且為隨測試時間變化的 函數(shù);同時,在檢測故障的過程中可能會有新的故障引入,即存在故障引入率,且為隨測試 時間變化的函數(shù)。
[0004] 對于不完美排錯現(xiàn)象,有的學(xué)者雖然同時考慮故障排除率和故障引入率,但為了 方便計算,簡化故障引入率的函數(shù)表達形式,對此過程的建模并不精確,進而導(dǎo)致所提出的 軟件可靠性增長模型精度降低。此外,檢測過程中的故障檢測率既不是常值也不是連續(xù)平 滑的,在某時刻會發(fā)生瞬間變化,即存在移動點現(xiàn)象。移動點現(xiàn)象廣泛存在于軟件失效過程 中,但目前在故障檢測與修正過程中同時考慮不完美排錯和移動點現(xiàn)象的研宄卻沒有。
[0005] 文獻:Pham H.,Nordmann L.,Zhang X.在 1999 年發(fā)表的《A general imperfect software debugging model with S-shaped fault-detection rate》提出了考慮故障引入 率的PNZ模型,假設(shè)故障引入率為常數(shù),但沒考慮故障排除率。
[0006] 文獻:Zhang X.,Teng S.,Pham H.在 2003年發(fā)表的《Considering fault removal efficiency in software reliability assessment》提出了一種考慮故障排除率和引入率 的軟件可靠性增長模型,假設(shè)故障排除率和故障引入率為常數(shù)。
[0007] 文獻:李春芝等在2005年發(fā)表的《考慮測試覆蓋率和故障排除效率的軟件可靠 性增長模型》提出了同時考慮測試覆蓋率和故障排除率的模型,該模型中故障排除率不為 100 %且為一個常數(shù),但沒有考慮故障引入率。
[0008] 文獻:劉宏偉等在同年發(fā)表的《一個NHPP類軟件可靠性增長模型框架》研宄了故 障排除過程,提出了一種NHPP類軟件可靠性增長模型框架,但沒有給出其具體數(shù)學(xué)表達形 式,無法對模型進行仿真驗證并直接應(yīng)用于實際工程中。
[0009] 文獻:謝景燕等在2010年發(fā)表的《考慮不完美排錯情況的NHPP類軟件可靠性增 長模型》認為軟件的故障過程存在故障排除率和故障引入率,并且故障排除率是隨時間變 化的減函數(shù),但為簡化計算過程將故障引入率設(shè)為常值。
[0010] 文獻:鄭皇等在2011年發(fā)表的《考慮非理想排錯過程的軟件可靠性模型》在謝景 燕研宄的基礎(chǔ)上,提出故障引入率函數(shù)應(yīng)正比于故障排除率函數(shù),并假設(shè)兩個函數(shù)具有相 同的變化趨勢的減函數(shù),體現(xiàn)不了故障引入率函數(shù)是故障總數(shù)函數(shù)相對于故障均值函數(shù)的 瞬時變化率,降低了所提出模型的精度。
[0011] 文獻:Huang 等在同年發(fā)表的《Estimation and analysis of some generalized multiple change-point software reliability models》首次分析了不完美排錯過程中的 移動點現(xiàn)象,并提出一種統(tǒng)一理論,構(gòu)建了基于移動點技術(shù)和考慮不完美排錯的軟件可靠 性增長模型,但在建模過程中只考慮了故障引入率,未考慮故障排除率。
【發(fā)明內(nèi)容】
[0012] 本發(fā)明的目的是:同時考慮軟件故障排除過程中的不完美排錯現(xiàn)象和故障檢測過 程中的移動點現(xiàn)象,解決現(xiàn)有的模型在故障檢測過程和故障排除過程中假設(shè)條件不充分, 推導(dǎo)出的軟件可靠性增長模型擬合和預(yù)測誤差大的問題,提出一種基于移動點和不完美排 錯的軟件可靠性建模方法。
[0013] 該方法具體步驟如下:
[0014] 步驟一、提出基于移動點和不完美排錯的軟件可靠性建?;炯僭O(shè)條件;
[0015] 〈1>、到t時刻的累積故障數(shù)目N(t)服從均值函數(shù)為m(t)的NHPP過程。
[0016] 〈2>、任意時間間隔t時刻到t+Δ t時刻內(nèi)的期望軟件故障檢測數(shù)與t時刻剩余的 軟件故障數(shù)成比例,比值為b (t)。
[0017] 〈3>、故障排除率不是100%,故障排除率函數(shù)p(t)是隨著時間變化的減函數(shù)。
[0018] 〈4>、故障排除過程會引入新的故障,故障引入率函數(shù)β (t)是隨時間變化的減函 數(shù)。
[0019] 〈5>、軟件運行剖面與可靠性測試剖面不同。
[0020] 〈6>、軟件中每個故障是相互獨立的,每個故障導(dǎo)致系統(tǒng)發(fā)生失效的可能性均相 同。
[0021] 步驟二、根據(jù)軟件測試過程中的不完美排錯現(xiàn)象,獲取故障引入率函數(shù)和故障排 除率函數(shù);
[0022] 故障引入率函數(shù)β (t)為:
[0023] β (t) = β exp (~wt) (I)
[0024] 其中w > 0,w的大小決定了故障引入率變化的快慢。w越大,β (t)隨時間t下降 的越快;β為初始故障引入率,β e [0, 1],Mt) e [0, β ]。
[0025] 故障排除率函數(shù)P (t)為:
[0026] (2)
[0027] 其中k > 0,k決定了故障排除率變化的快慢。k越大,p (t)隨時間t下降的越快; P為初始故障排除率,P e [0, 1],P (t) e [0, p]。
[0028] 步驟三、根據(jù)移動點現(xiàn)象,獲取基于移動點和不完美排錯的軟件可靠性增長模 型;
[0029] 1)、對于單移動點τ,基于不完美排錯的軟件可靠性增長模型的均值函數(shù)為:
[0030]
[0031] 2)、對于雙移動點τ JP τ 2,基于不完美排錯的軟件可靠性增長模型的均值函數(shù) 為:
[0032]
[0033] 3)、具有η個移動點時,基于移動點和不完美排錯的軟件可靠性增長模型的均值 函數(shù)為:
[0034]
[0035] 步驟四、根據(jù)移動點判斷準則,采用逐步調(diào)整法得到移動點個數(shù)和位置。
[0036] 利用步驟三的基于移動點和不完美排錯的軟件可靠性增長模型得到η個移動點, 通過移動點判斷準則,采用逐步調(diào)整法得到移動點個數(shù)和位置。
[0037] 移動點判斷準則具體為:
[0038] 首先必須滿足第一個點的初始位置,選用位于樣本總數(shù)據(jù)時間五分之一的點之 后,不包括五分之一處對應(yīng)的點;然后滿足以下三條中的任意一條準則即可。
[0039] (1)三個連續(xù)的點落在中心線的同一側(cè),并且至少兩個點距離中心線的距離大于 或等于2 σ,σ為標準差;
[0040] (2)五個連續(xù)的點落在中心線的同一側(cè),并且至少有四個點距離中心線的距離大 于或等于σ。
[0041] (3)至少八個連續(xù)的點落在中心線的同一側(cè)。
[0042] 若質(zhì)量控制圖中任意點滿足移動點判斷準則,則該點為移動點,若該點后連續(xù)A 點均滿足移動點判斷準則任意一條,A的取值范圍為2~4,則只取A點中任意一點為初始 的移動點,得到η個初始的移動點,分別記為h,i = 1,2,…,η ;
[0043] 通過逐步調(diào)整法,得到移動點的具體位置,具體包括以下幾個步驟:
[0044] 首先,由τ e 〇到t 2時刻之間的失效數(shù)據(jù),確定移動點τ 1;然后,固定移動點 T1,通過TjPt3之間的失效數(shù)據(jù)確定移動點τ 2;依次類推,逐步調(diào)整得到準確的移動點 τ 〇 i = 0, 1,...,η〇
[0045] 根據(jù)τ JP