Ch軟件可靠性度量課件_第1頁(yè)
Ch軟件可靠性度量課件_第2頁(yè)
Ch軟件可靠性度量課件_第3頁(yè)
Ch軟件可靠性度量課件_第4頁(yè)
Ch軟件可靠性度量課件_第5頁(yè)
已閱讀5頁(yè),還剩103頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2022/11/111§5.1引言5.1.1軟件可靠性工程及軟件可靠性軟件可靠性工程 應(yīng)用統(tǒng)計(jì)技術(shù),處理在軟件開(kāi)發(fā)過(guò)程中或(和)運(yùn)行期間所采集的失效數(shù)據(jù),以便詳細(xì)說(shuō)明并預(yù)計(jì)、估計(jì)和評(píng)價(jià)軟件的可靠性 研究?jī)?nèi)容包括軟件可靠性的基本概念和定義、軟件可靠性指標(biāo)體系、可靠性建模、可靠性設(shè)計(jì)技術(shù)、測(cè)試技術(shù)和管理技術(shù)等2022/11/9www.china-onlineclass2022/11/112軟件可靠性工程處理以下問(wèn)題:確定某過(guò)程能否提供滿足可靠性要求的代碼為過(guò)程改進(jìn)提供度量預(yù)測(cè)軟件維護(hù)階段的失效率,確定軟件維護(hù)工作量幫助進(jìn)行安全性認(rèn)證確定交付軟件產(chǎn)品的時(shí)間或停止測(cè)試的時(shí)機(jī)估計(jì)下次故障的可能時(shí)間為軟件更新或升級(jí),標(biāo)識(shí)需要重新設(shè)計(jì)的主要部件測(cè)定軟件的可靠性2022/11/9www.china-onlineclass2022/11/113軟件可靠性可靠性是軟件的13個(gè)質(zhì)量因素中最關(guān)鍵、最重要的軟件可靠性是指在規(guī)定時(shí)間和條件下軟件無(wú)故障運(yùn)行的概率,是系統(tǒng)功能或軟件產(chǎn)品中存在的缺陷的函數(shù)軟件故障產(chǎn)生的原因是軟件缺陷,但缺陷并不一定導(dǎo)致故障的產(chǎn)生,高缺陷率的軟件的可靠性不一定就差軟件失效意味著軟件運(yùn)行中斷或者無(wú)法完成所規(guī)定的任務(wù)2022/11/9www.china-onlineclass2022/11/114幾個(gè)值得關(guān)注的問(wèn)題:軟件的運(yùn)行環(huán)境:軟件可靠性與運(yùn)行環(huán)境密切相關(guān)軟件運(yùn)行的時(shí)間間隔:商業(yè)軟件需要較高的運(yùn)行時(shí)間間隔(較長(zhǎng)的運(yùn)行壽命),而任務(wù)關(guān)鍵軟件則需要在短時(shí)間內(nèi)高效運(yùn)行軟件失效的時(shí)機(jī)是隨機(jī)的,與硬件失效類似不同于軟件的正確性,對(duì)于持續(xù)運(yùn)行的軟件其可靠性最終將歸于零(以失效結(jié)束);但正確性是軟件的特定的某次運(yùn)行結(jié)果,要么為1,要么為02022/11/9www.china-onlineclass2022/11/1155.1.2軟件的缺陷、故障和失效缺陷(Error,錯(cuò)誤):設(shè)計(jì)和構(gòu)造進(jìn)產(chǎn)品

總數(shù)是不可預(yù)知的,只能估計(jì)

缺陷分為已知和未知(新發(fā)現(xiàn))的

缺陷分為已發(fā)現(xiàn)的和未發(fā)現(xiàn)的

已發(fā)現(xiàn)的缺陷包括已糾正的和未糾正的故障(Fault):運(yùn)行結(jié)果錯(cuò)誤

故障是缺陷的表現(xiàn)形式,是由存在的缺陷產(chǎn)生的

但缺陷并不一定導(dǎo)致故障,或者條件不具備,或者不會(huì)產(chǎn)生故障失效(Failure):系統(tǒng)不能完成所需要的功能而失敗

失效是故障在軟件運(yùn)行時(shí)所產(chǎn)生的后果失效缺陷故障已糾正的缺陷2022/11/9www.china-onlineclass2022/11/116軟件質(zhì)量度量與軟件過(guò)程有什么關(guān)系?2022/11/9www.china-onlineclass2022/11/117失效故障面向用戶面向開(kāi)發(fā)者軟件運(yùn)行偏離用戶需求程序執(zhí)行輸出錯(cuò)誤結(jié)果可根據(jù)對(duì)用戶應(yīng)用的嚴(yán)重性等級(jí)分類可根據(jù)定位和排除故障的難度分類如,3次失效/1000CPU小時(shí)如,6個(gè)故障/1KLOC失效與故障的區(qū)別2022/11/9www.china-onlineclass2022/11/1185.1.3軟件失效軟件失效是隨機(jī)發(fā)生的描述失效的方法有三個(gè):累計(jì)失效函數(shù):即與某時(shí)間點(diǎn)相關(guān)的平均累計(jì)失效數(shù)失效率函數(shù):用累計(jì)失效函數(shù)的變化率表示平均失效時(shí)間MTTF函數(shù):對(duì)于一個(gè)時(shí)間段,表示若干相鄰失效時(shí)間間隔的平均值;對(duì)某個(gè)時(shí)間點(diǎn),表示到下次失效的期望時(shí)間2022/11/9www.china-onlineclass2022/11/119軟件失效率如果沒(méi)有缺陷,軟件失效率為0如果發(fā)現(xiàn)的缺陷能被及時(shí)、完全修復(fù),失效率會(huì)趨向0實(shí)際上,發(fā)現(xiàn)的缺陷數(shù)會(huì)遞增,而糾正一個(gè)缺陷會(huì)引入更多的缺陷,因而失效率會(huì)增加時(shí)間失效率硬件軟件(實(shí)際)軟件(理想)2022/11/9www.china-onlineclass2022/11/1110§5.2軟件可靠性度量和建模5.2.1基本概念 軟件可靠性建模過(guò)程是根據(jù)軟件過(guò)去的故障行為建立軟件可靠性數(shù)學(xué)模型的過(guò)程

建模的目的是為了預(yù)計(jì)軟件將來(lái)的故障行為

建模過(guò)程包括以下步驟:通過(guò)度量獲得歷史數(shù)據(jù)對(duì)故障數(shù)據(jù)進(jìn)行分析,擬合成概率分布函數(shù)對(duì)擬合函數(shù)進(jìn)行參數(shù)分析確定所期望的可靠性度量值并預(yù)測(cè)可能的故障行為2022/11/9www.china-onlineclass2022/11/11115.2.2軟件可靠性度量參數(shù)軟件可靠性R(t)可定義為:在給定條件下,在時(shí)間[0,t]內(nèi),軟件無(wú)故障運(yùn)行的概率若用T表示軟件無(wú)故障運(yùn)行的時(shí)間間隔,F(xiàn)(t)為T的累積分布函數(shù),則軟件可靠性可表示為:R(t)=1-F(t) t≥0故障率函數(shù)λ(t)為:其中,f(t)為F(t)的函數(shù)密度,即:2022/11/9www.china-onlineclass2022/11/1112λ(t)Δt是在時(shí)間[0,t]內(nèi)軟件正常運(yùn)行,在[t,t+Δt]內(nèi)發(fā)生故障的條件概率,可得:密度函數(shù)f(t)、累積分布函數(shù)F(t)、可靠性函數(shù)R(t)和故障率函數(shù)λ(t)緊密相關(guān),一般可由任一個(gè)惟一地確定另外三個(gè),例如若λ(t)給定,則:根據(jù)f(t)或R(t)可計(jì)算平均失效時(shí)間函數(shù)MTTF,從而預(yù)測(cè)故障時(shí)間2022/11/9www.china-onlineclass2022/11/11135.2.3軟件可靠性度量模型指數(shù)分布密度函數(shù)為分布函數(shù)為故障率函數(shù)為 (常數(shù))具有指數(shù)壽命分布的軟件產(chǎn)品(故障率為常數(shù))沒(méi)有老化現(xiàn)象,符合不需要維護(hù)的軟件的運(yùn)行情況2022/11/9www.china-onlineclass2022/11/1114Weibull分布Weibull是更常用的分布,在許多工程領(lǐng)域的可靠性分析中都廣泛應(yīng)用,如軸承磨損、河流泛濫等Weibull分布有兩個(gè)參數(shù)α、β(β為1時(shí)變?yōu)橹笖?shù)函數(shù))函數(shù)密度為:分布函數(shù)為:故障率函數(shù)為:2022/11/9www.china-onlineclass2022/11/1115β>1β<1β=1tWeibull分布β=1時(shí)變?yōu)橹笖?shù)分布β=2時(shí)為Rayleigh分布研究表明,軟件項(xiàng)目的生命周期模式、項(xiàng)目的缺陷移除模式等都很好地符合Rayleigh模型2022/11/9www.china-onlineclass2022/11/1116數(shù)據(jù)收集和分析是度量軟件可靠性的最重要的先決條件,任何可靠性度量的有效性都與數(shù)據(jù)收集的有效性直接相關(guān),數(shù)據(jù)收集過(guò)程必須有計(jì)劃、有組織地進(jìn)行與軟件可靠性相關(guān)的數(shù)據(jù)包括:缺陷數(shù)據(jù)過(guò)程數(shù)據(jù)產(chǎn)品數(shù)據(jù):如規(guī)模、功能、性能等§5.3軟件可靠性數(shù)據(jù)收集過(guò)程2022/11/9www.china-onlineclass2022/11/11175.3.1缺陷數(shù)據(jù)的收集缺陷數(shù)據(jù)的收集常采用問(wèn)答、報(bào)告形式,即發(fā)放問(wèn)題報(bào)告表格要求有關(guān)人員填寫,收集并分析問(wèn)題報(bào)告表格形成統(tǒng)計(jì)數(shù)據(jù)檢測(cè)到的缺陷已記錄的缺陷已評(píng)審的缺陷確認(rèn)?結(jié)束缺陷報(bào)告采取措施?通過(guò)驗(yàn)證?記錄不采取措施的原因記錄糾正驗(yàn)證問(wèn)題報(bào)告NoNoNoYesYesYes2022/11/9www.china-onlineclass2022/11/11185.3.2過(guò)程數(shù)據(jù)的收集缺陷數(shù)據(jù)必須與過(guò)程融合才有價(jià)值,因而過(guò)程數(shù)據(jù)也需要收集。通常會(huì)將項(xiàng)目的持續(xù)時(shí)間作為主要關(guān)心的過(guò)程數(shù)據(jù),但實(shí)際需要更細(xì)分與軟件可靠性測(cè)試過(guò)程相關(guān)的數(shù)據(jù)包括:CPU時(shí)間:具有與人無(wú)關(guān)性,但易忽略人的工作(如評(píng)審等)日歷時(shí)間:優(yōu)點(diǎn)是易于收集,但沒(méi)有考慮階段特征,如某些技術(shù)在某階段更有效運(yùn)行時(shí)間:是為測(cè)試而運(yùn)行軟件的總時(shí)間,也未考慮階段特征其他數(shù)據(jù):包括平均修復(fù)時(shí)間、完成每個(gè)過(guò)程活動(dòng)的人數(shù)、軟件生命期各階段所用時(shí)間百分比、各階段所消耗的資源數(shù)量、各階段的開(kāi)始、截止日期、各階段修復(fù)一個(gè)缺陷所需的工作量、各功能模塊的缺陷數(shù),等等2022/11/9www.china-onlineclass2022/11/1119§5.4軟件的運(yùn)行剖面軟件可靠性建模需要具備三個(gè)條件:軟件運(yùn)行時(shí)間基準(zhǔn)(日歷時(shí)間、運(yùn)行時(shí)間、CPU時(shí)間)軟件運(yùn)行過(guò)程收集的數(shù)據(jù),是建?;A(chǔ)軟件功能和運(yùn)行環(huán)境 軟件運(yùn)行剖面用于定量描述軟件的用戶運(yùn)行環(huán)境,即軟件的功能和各功能的使用概率2022/11/9www.china-onlineclass2022/11/11205.4.1軟件新系統(tǒng)的運(yùn)行剖面不同的運(yùn)行模式下各功能的使用概率不同不同運(yùn)行模式的出現(xiàn)模式也不同運(yùn)行模式1運(yùn)行模式2功能功能使用概率2022/11/9www.china-onlineclass2022/11/1121運(yùn)行剖面對(duì)軟件可靠性工程極具價(jià)值:可為開(kāi)發(fā)過(guò)程的資源分配提供參考,有利于提高生產(chǎn)率、可靠性和加快開(kāi)發(fā)速度有利于測(cè)試,可確保常用功能獲得更多測(cè)試有利于設(shè)計(jì)測(cè)試用例,以發(fā)現(xiàn)影響可靠性最大的故障根據(jù)功能的使用頻度可確定開(kāi)發(fā)的優(yōu)先級(jí)使功能描述更清晰,便于交流有助于用戶培訓(xùn)2022/11/9www.china-onlineclass2022/11/11225.4.2軟件運(yùn)行剖面與可靠性的關(guān)系 軟件可靠性度量、評(píng)估和預(yù)測(cè)與軟件的某個(gè)特定的運(yùn)行剖面密切相關(guān) 軟件測(cè)試期間,為節(jié)省時(shí)間和成本,通常每個(gè)運(yùn)行剖面只測(cè)試一次,因而不能反映每個(gè)剖面的出現(xiàn)概率,由此獲得的可靠性數(shù)據(jù)也不能反映實(shí)際情況

要將測(cè)試期間獲得的可靠性值變換為實(shí)際值,可用以下公式:

其中,λu是實(shí)際的用戶環(huán)境下的故障密度,λT是測(cè)試值,C為測(cè)試壓縮系數(shù)2022/11/9www.china-onlineclass2022/11/1123C的含義是:在覆蓋全部輸入空間條件下,使用期間所要求的執(zhí)行時(shí)間與測(cè)試階段所要求的執(zhí)行時(shí)間之比C的計(jì)算公式為:其中, τk為輸入狀態(tài)k運(yùn)行時(shí)的執(zhí)行時(shí)間

Pk為輸入狀態(tài)k在運(yùn)行期間的發(fā)生概率

QI為輸入狀態(tài)總數(shù)

Pmin為最少發(fā)生的輸入狀態(tài)的概率2022/11/9www.china-onlineclass2022/11/1124

5.4.3軟件運(yùn)行剖面的建立運(yùn)行剖面是關(guān)于系統(tǒng)如何運(yùn)行的定量描述,建立步驟為:建立客戶剖面:分類描述要獲取該系統(tǒng)的客戶的使用模式建立用戶剖面:分類描述要使用該系統(tǒng)的用戶的使用模式定義系統(tǒng)模式剖面:根據(jù)執(zhí)行過(guò)程描述系統(tǒng)運(yùn)行模式確定功能剖面:劃分功能并確定各功能的發(fā)生概率確定運(yùn)行剖面:確定系統(tǒng)各運(yùn)行模式的發(fā)生概率2022/11/9www.china-onlineclass2022/11/1125§5.5軟件可靠性模型及應(yīng)用

軟件可靠性建模是軟件可靠性工程的研究重點(diǎn)5.5.1與軟件可靠性模型有關(guān)的問(wèn)題歷史背景 20世紀(jì)70年代,Telinski、Moranda、Shooman等人提出了軟件可靠性建模的問(wèn)題,并使用建立的模型估計(jì)軟件現(xiàn)在和未來(lái)的可靠性

經(jīng)近40年的發(fā)展,軟件可靠性模型已有很多種2022/11/9www.china-onlineclass2022/11/1126軟件可靠性模型的分類 Musa、Okumoto根據(jù)模型的5個(gè)特征進(jìn)行分類:時(shí)間域(timedomain):日歷時(shí)間、執(zhí)行時(shí)間或CPU時(shí)間類別(Category):軟件在無(wú)限的時(shí)間內(nèi)可能經(jīng)歷的故障數(shù)是有限的還是無(wú)限的型(Type):軟件在運(yùn)行時(shí)間t時(shí)的失效數(shù)分布分類種類(Class):故障密度對(duì)時(shí)間的函數(shù)分布(僅對(duì)有限故障類)族(Family):故障密度對(duì)它的期望故障數(shù)的函數(shù)分布(僅對(duì)無(wú)限故障類)2022/11/9www.china-onlineclass有限故障數(shù)模型種類型泊松分布二項(xiàng)式分布其他指數(shù)分布Mussa(1975)MorandaSchneidewindGoel-OkumotoJelinski-MorandaShoomanGoel-OkumotoMussaKeiller-LittlewoodWeibull分布Schick-wolvertonWagonerC1分布Schick-wolverton帕雷多分布LittlewoodGamma分布Y-O-O無(wú)限故障數(shù)模型族型T1T2T3泊松分布幾何分布MorandaMussa-Okumoto線性倒數(shù)Littlewood-Verrall二次多項(xiàng)式倒數(shù)Littlewood-Verrall冪Crow有限故障數(shù)模型種類型泊松分布二項(xiàng)式分布其他指數(shù)分布Mussa2022/11/11285.5.2軟件可靠性模型參數(shù)與軟件可靠性模型相關(guān)的參數(shù)有:ETF:軟件中固有缺陷數(shù),是固定的ETV:同上,是變化的,在開(kāi)發(fā)、維護(hù)過(guò)程中隨時(shí)添加EC(t):某時(shí)刻已糾正的缺陷數(shù)ED(t):某時(shí)刻已發(fā)現(xiàn)的缺陷數(shù)P:在修正缺陷過(guò)程中測(cè)試的循環(huán)次數(shù),常假定

P=ED(t)=EC(t)EC(p):直到第p次測(cè)試才修正的缺陷數(shù)λ0:起始故障率λp:當(dāng)前故障率θ:故障率的變化τ:累計(jì)執(zhí)行時(shí)間α:增長(zhǎng)率N:測(cè)試用例運(yùn)行總數(shù)S:成功的測(cè)試用例運(yùn)行總數(shù)2022/11/9www.china-onlineclass2022/11/11296.5.3軟件可靠性模型Musa模型基本模型假設(shè):①每個(gè)缺陷對(duì)故障率的貢獻(xiàn)是相同的;②每修正一個(gè)缺陷故障率均勻地減少,即故障率對(duì)時(shí)間的導(dǎo)數(shù)是常數(shù);③軟件固有的故障總數(shù)是有限的,但不固定,即修正缺陷時(shí)可能產(chǎn)生新缺陷Musa模型:2022/11/9www.china-onlineclass2022/11/1130

利用基本模型可估計(jì)要達(dá)到某可靠性目標(biāo)還必須要發(fā)現(xiàn)(檢測(cè)出)的缺陷數(shù)和需要的時(shí)間,有助于計(jì)劃人力和時(shí)間

設(shè)要達(dá)到的可靠性目標(biāo)為λf,則需發(fā)現(xiàn)的故障數(shù)Nf為: 為達(dá)到這一目標(biāo)所需時(shí)間Tf為:當(dāng)前已檢測(cè)出的累積缺陷數(shù)為達(dá)到故障率目標(biāo)或MTTF目標(biāo)必須要檢出的累計(jì)缺陷數(shù)為達(dá)到目標(biāo)還需檢測(cè)出的缺陷數(shù)為達(dá)到目標(biāo)需要的時(shí)間測(cè)試時(shí)間已檢出的累計(jì)缺陷數(shù)2022/11/9www.china-onlineclass2022/11/1131對(duì)數(shù)模型假設(shè):①每個(gè)缺陷對(duì)故障率的貢獻(xiàn)不同;②常用的功能的缺陷可及早被檢出,故障率的變化隨時(shí)間減少;③軟件固有的故障總數(shù)是無(wú)限的Musa模型:Nf和Tf為:2022/11/9www.china-onlineclass2022/11/1132Goel-Okumoto模型假設(shè):缺陷對(duì)時(shí)間的分布是非時(shí)對(duì)齊的,即發(fā)現(xiàn)的缺陷不一定會(huì)立即消除(適用于開(kāi)發(fā)早期)基本模型:其中,ab為常數(shù),與單位時(shí)間內(nèi)發(fā)生的缺陷有關(guān)可得:修正模型:故障密度函數(shù)為Weibull分布2022/11/9www.china-onlineclass2022/11/11335.5.4軟件可靠性模型的適用條件模型假設(shè)適用階段難易度Mussa基本模型①優(yōu)先固有缺陷數(shù)②常數(shù)故障率③指數(shù)分布集成測(cè)試后EMussa對(duì)數(shù)模型①無(wú)限固有缺陷數(shù)②對(duì)數(shù)分布③故障率隨時(shí)間變化單元測(cè)試到系統(tǒng)測(cè)試EGoel-Ukumoto①非時(shí)齊缺陷分布②缺陷可能因修復(fù)而產(chǎn)生③指數(shù)、Weibull分布集成測(cè)試后M2022/11/9www.china-onlineclass2022/11/1134§5.6軟件可靠性測(cè)試5.6.1軟件測(cè)試的類型與軟件可靠性相關(guān)的測(cè)試主要是動(dòng)態(tài)測(cè)試單元測(cè)試:對(duì)匯編單元進(jìn)行測(cè)試集成測(cè)試:對(duì)匯編單元接口的測(cè)試驗(yàn)收測(cè)試:驗(yàn)收并確認(rèn)實(shí)現(xiàn)了所有需求回歸測(cè)試:對(duì)與修正的缺陷的軟件部件的再測(cè)試2022/11/9www.china-onlineclass2022/11/11355.6.2軟件可靠性測(cè)試方法利用在其他測(cè)試中的數(shù)據(jù)收集來(lái)檢驗(yàn)軟件可靠性的測(cè)試基本步驟是:仔細(xì)研究開(kāi)發(fā)過(guò)程和軟件問(wèn)題報(bào)告確定使用那些或那個(gè)模型來(lái)度量軟件可靠性執(zhí)行一種有效的方法來(lái)收集問(wèn)題報(bào)告缺陷數(shù)據(jù)、過(guò)程數(shù)據(jù)和產(chǎn)品數(shù)據(jù),收集集成測(cè)試期間及以后的數(shù)據(jù)按照模型規(guī)定的原理和方法,將數(shù)據(jù)輸入選定的模型,直接估計(jì)軟件可靠性或間接地估計(jì)與其有關(guān)的參數(shù)根據(jù)估計(jì)結(jié)果進(jìn)行決策:軟件能否被釋放(發(fā)布)?是否需要增加測(cè)試時(shí)間以達(dá)到可靠性目標(biāo)?如果需要,還需要多少時(shí)間?2022/11/9www.china-onlineclass2022/11/1136Beta測(cè)試 可以直接反映可靠性水平系統(tǒng)軟件證明測(cè)試 在要求時(shí)間內(nèi)、在實(shí)際的使用環(huán)境中運(yùn)行系統(tǒng),不對(duì)系統(tǒng)進(jìn)行維護(hù),收集發(fā)現(xiàn)的故障數(shù),以決定整個(gè)系統(tǒng)能否通過(guò)可靠性測(cè)試基于測(cè)試時(shí)間的軟件證明測(cè)試 在相對(duì)較長(zhǎng)時(shí)間內(nèi)對(duì)軟件的運(yùn)行進(jìn)行軟件證明測(cè)試基于測(cè)試輸入的軟件證明測(cè)試 只針對(duì)特定的測(cè)試用力進(jìn)行軟件證明測(cè)試2022/11/9www.china-onlineclass2022/11/1137軟件證明測(cè)試方法測(cè)試前,先由測(cè)試者和用戶共同確定以下三個(gè)參數(shù):用戶風(fēng)險(xiǎn)因子α:是由用戶承擔(dān)的軟件可靠性未達(dá)目標(biāo)而通過(guò)測(cè)試的風(fēng)險(xiǎn)生產(chǎn)者風(fēng)險(xiǎn)因子β:是由開(kāi)發(fā)者承擔(dān)的可靠性已達(dá)目標(biāo)而未被接受的風(fēng)險(xiǎn)鑒別因子γ:是最大可接受的失效密度和失效密度目標(biāo)的比值2022/11/9www.china-onlineclass2022/11/1138確定可靠性測(cè)試判定標(biāo)準(zhǔn)根據(jù)已確定的三個(gè)參數(shù)繪制軟件可靠性證明測(cè)試判定圖確定拒絕線和接受線規(guī)格化是指將測(cè)試時(shí)間或測(cè)試用例數(shù)乘以故障率目標(biāo)值規(guī)格化的測(cè)試時(shí)間或測(cè)試輸入在測(cè)試期間發(fā)現(xiàn)的累計(jì)缺陷數(shù)測(cè)試通過(guò)測(cè)試未完測(cè)試失敗接受線拒絕線2022/11/9www.china-onlineclass2022/11/1139測(cè)試開(kāi)始后,失效發(fā)生時(shí),將對(duì)應(yīng)的累計(jì)故障數(shù)和測(cè)試時(shí)間或測(cè)試用例數(shù)在圖中標(biāo)出判定測(cè)試結(jié)果:通過(guò)或失敗都表示測(cè)試結(jié)束,若測(cè)試未完成,則繼續(xù)測(cè)試注:基于測(cè)試用例的證明測(cè)試具有隨機(jī)性,不同測(cè)試可能得到不同結(jié)果,為此可采用模塊化方法選擇測(cè)試用例,以保證測(cè)試的客觀性2022/11/9www.china-onlineclass2022/11/11405.6.3軟件可靠性測(cè)試的實(shí)施過(guò)程1、概述軟件可靠性測(cè)試有兩類:開(kāi)發(fā)測(cè)試:包括性能測(cè)試、加載測(cè)試、回歸測(cè)試,目的是發(fā)現(xiàn)和修正單元及其集成的缺陷確認(rèn)測(cè)試:一般只進(jìn)行加載測(cè)試,目的是為了確定軟件部件或系統(tǒng)是否被接受 對(duì)于軟件可靠性建模,開(kāi)發(fā)測(cè)試收集的是分組數(shù)據(jù),是不完整的,而確認(rèn)測(cè)試獲得的是完全數(shù)據(jù)2022/11/9www.china-onlineclass2022/11/1141軟件可靠性測(cè)試過(guò)程模型 開(kāi)發(fā)業(yè)務(wù)剖面是軟件可靠性測(cè)試的重要環(huán)節(jié),因?yàn)榭煽啃阅繕?biāo)與業(yè)務(wù)剖面關(guān)系密切軟件可靠性目標(biāo)開(kāi)發(fā)系統(tǒng)業(yè)務(wù)剖面準(zhǔn)備測(cè)試軟件可靠性定量評(píng)估軟件可靠性模型執(zhí)行測(cè)試收集、整理故障數(shù)據(jù)對(duì)比需求與構(gòu)造設(shè)計(jì)和實(shí)現(xiàn)集成測(cè)試和確認(rèn)測(cè)試接受或拒絕2022/11/9www.china-onlineclass2022/11/11423、測(cè)試的目的

通過(guò)在規(guī)定的業(yè)務(wù)剖面下運(yùn)行軟件系統(tǒng),確認(rèn)是否能夠完成于業(yè)務(wù)剖面相關(guān)的任務(wù):正確地完成規(guī)定的功能滿足性能要求不完成沒(méi)有規(guī)定的功能提供運(yùn)行中的故障數(shù)據(jù)4、用戶責(zé)任用戶要參與軟件測(cè)試:規(guī)定測(cè)試要求,如測(cè)試條件和環(huán)境評(píng)審和批準(zhǔn)測(cè)試程序評(píng)審和批準(zhǔn)每一需求的認(rèn)證方法和技術(shù)提供測(cè)試環(huán)境和人員要球組織獨(dú)立的測(cè)試組織2022/11/9www.china-onlineclass2022/11/11435、測(cè)試的準(zhǔn)備和執(zhí)行

測(cè)試準(zhǔn)備:準(zhǔn)備測(cè)試用例、測(cè)試程序并決定要使用的自動(dòng)化測(cè)試工具 測(cè)試用例設(shè)計(jì)須考慮可靠性定量要求和成本及效率,測(cè)試用例的數(shù)量和類型選擇要與業(yè)務(wù)剖面及發(fā)生概率一致,且考慮到隨機(jī)性 測(cè)試程序與特定的業(yè)務(wù)剖面相關(guān),要考慮發(fā)生概率

測(cè)試執(zhí)行:從性能測(cè)試開(kāi)始進(jìn)行加載測(cè)試,要考慮業(yè)務(wù)剖面和運(yùn)行模式已分配執(zhí)行時(shí)間和測(cè)試用例

測(cè)試執(zhí)行過(guò)程需進(jìn)行故障識(shí)別,記錄故障發(fā)生時(shí)間和嚴(yán)重性

對(duì)于發(fā)現(xiàn)的故障,需要填寫故障報(bào)告:引發(fā)故障的缺陷什么時(shí)候、在那里出現(xiàn)?原因是什么?如何定位?什么時(shí)候該定位被確認(rèn)?要進(jìn)行的修改有哪些?2022/11/9www.china-onlineclass2022/11/11446、測(cè)試結(jié)果的應(yīng)用

用戶根據(jù)測(cè)試結(jié)果評(píng)估可靠性并進(jìn)行決策 開(kāi)發(fā)者由此產(chǎn)生軟件更新需求,或者改進(jìn)過(guò)程和設(shè)計(jì)7、需要注意的問(wèn)題測(cè)試人員獨(dú)立于開(kāi)發(fā)者的程度將影響測(cè)試結(jié)果測(cè)試時(shí)間計(jì)劃不周會(huì)導(dǎo)致在開(kāi)發(fā)過(guò)程后期發(fā)現(xiàn)缺陷的風(fēng)險(xiǎn)增加測(cè)試等級(jí)及相應(yīng)的測(cè)試時(shí)間分配選擇不得將不能保證在不犧牲質(zhì)量的前提下降低成本測(cè)試工具的選擇將影響測(cè)試效率和完整性2022/11/9www.china-onlineclass2022/11/1145§5.7軟件故障數(shù)據(jù)的趨向性分析5.7.1趨向性分析的含義及作用

軟件可靠性建模的基礎(chǔ)是測(cè)試數(shù)據(jù),但由于不同的可靠性模型基于的假設(shè)不同,導(dǎo)致可靠性分析方法的離散性,原因主要是:軟件的自然特征及相應(yīng)的失效數(shù)據(jù)是離散的所采用的開(kāi)發(fā)方法和確認(rèn)方法不同數(shù)據(jù)收集的組織有差別分析的目的、要求各種各樣

軟件可靠性模型的有限假設(shè)和故障數(shù)據(jù)的離散性是矛盾的,K.Kanoun于1997年提出的趨向性分析方法用于揭示軟件可靠性隨時(shí)間的演化趨勢(shì),實(shí)踐證明具有很高的實(shí)用性2022/11/9www.china-onlineclass2022/11/11465.7.2軟件故障數(shù)據(jù)工程模型軟件故障數(shù)據(jù)數(shù)據(jù)收集數(shù)據(jù)過(guò)濾數(shù)據(jù)分割壽命期分類數(shù)據(jù)按部件分類數(shù)據(jù)故障嚴(yán)重性分類數(shù)據(jù)描述性統(tǒng)計(jì)可靠性評(píng)估可靠性度量描述性分析趨向性分析模型應(yīng)用2022/11/9www.china-onlineclass2022/11/1147數(shù)據(jù)收集收集的故障數(shù)據(jù)包括:表征產(chǎn)品本身、開(kāi)發(fā)過(guò)程及使用環(huán)境的數(shù)據(jù),如軟件規(guī)模、語(yǔ)言、功能、確認(rèn)和驗(yàn)證方法、使用工具、加載等與故障及其修正相關(guān)的數(shù)據(jù),如故障發(fā)生時(shí)間、故障特征、故障影響結(jié)果、缺陷類型、缺陷位置等數(shù)據(jù)過(guò)濾對(duì)收集的數(shù)據(jù)進(jìn)行分析和過(guò)濾,需濾出的數(shù)據(jù)有:與軟件無(wú)關(guān)的外在數(shù)據(jù)錯(cuò)誤的或虛假的問(wèn)題報(bào)告重復(fù)數(shù)據(jù)2022/11/9www.china-onlineclass2022/11/1148數(shù)據(jù)分割根據(jù)需求將收集到的數(shù)據(jù)進(jìn)行分割,可使分析更具體分割方法包括:根據(jù)故障的嚴(yán)重性等級(jí)分割根據(jù)生命期階段分割根據(jù)缺陷所在的軟件部件分割數(shù)據(jù)工程分析根據(jù)工程應(yīng)用不同,對(duì)分割的數(shù)據(jù)進(jìn)行不同的分析:描述性分析:基于統(tǒng)計(jì)原理,用圖、表進(jìn)行綜合,以識(shí)別最有用的現(xiàn)象,如故障的發(fā)生條件與嚴(yán)重性的關(guān)系等,與可靠性評(píng)估沒(méi)有直接關(guān)系,有利于設(shè)計(jì)和開(kāi)發(fā)趨向性分析:分析可靠性隨時(shí)間的變化趨勢(shì),有助于評(píng)估可靠性模型的有效性模型應(yīng)用:選擇趨向性模型,涉及可靠性度量問(wèn)題2022/11/9www.china-onlineclass2022/11/11495.7.3趨向性分析經(jīng)驗(yàn)表明,根據(jù)故障時(shí)間間隔或某時(shí)間間隔內(nèi)的累積故障數(shù),或故障密度,可以了解軟件系統(tǒng)是否會(huì)變得越來(lái)越可靠,或反之。但有時(shí),這種預(yù)測(cè)是錯(cuò)誤的,因?yàn)槎慷攘坎⒉豢偸强尚诺挠眯问交y(tǒng)計(jì)檢驗(yàn)方法提高趨向性分析的可信度似乎更有效該方法的基礎(chǔ)是計(jì)算Laplace因子2022/11/9www.china-onlineclass2022/11/1150若T為觀測(cè)時(shí)間,對(duì)于[0,T]內(nèi)的故障時(shí)間數(shù)據(jù),Laplace因子為:其中,θj實(shí)在第j-1個(gè)故障后,從系統(tǒng)重啟到發(fā)生第j個(gè)故障的時(shí)間,N(T)是在[0,T]內(nèi)的故障數(shù)對(duì)于分組數(shù)據(jù),這里n(i)是在第i個(gè)時(shí)間單位內(nèi)的故障數(shù),即第i個(gè)分組;k為觀測(cè)的時(shí)間單位數(shù),即分組數(shù)據(jù)的組數(shù)2022/11/9www.china-onlineclass2022/11/1151Laplace因子的值有以下含義:負(fù)值表示故障密度減少,可靠性增加正值表示故障密度增加,可靠性降低若作-2~2間震蕩,表示可靠性處于穩(wěn)定狀態(tài)全局趨向性局部趨向性可靠性降低可靠性降低可靠性增加可靠性降低可靠性增加2022/11/9www.china-onlineclass2022/11/11525.7.4趨向性分析結(jié)果的應(yīng)用軟件開(kāi)發(fā)階段的趨向性分析可預(yù)測(cè)軟件可靠性的可能趨向及持續(xù)時(shí)間,以便開(kāi)發(fā)者、測(cè)試人員采取有針對(duì)性的措施加以控制對(duì)于軟件可靠性的定量評(píng)估,趨向性分析有助于選擇適用的可靠性模型,采取以下策略:在可靠性增長(zhǎng)時(shí),多數(shù)模型都可用可靠性趨向穩(wěn)定時(shí),可選擇常數(shù)故障率模型若可靠性降低,接著又增長(zhǎng),建議選擇S模型(Yamada、Ohba模型)若可靠性持續(xù)降低,應(yīng)等待,因?yàn)榇嬖谛枰幚淼膯?wèn)題2022/11/9www.china-onlineclass2022/11/1153小結(jié)軟件質(zhì)量度量,特別是可靠性度量,是一個(gè)軟件企業(yè)走向成熟、規(guī)模化、正規(guī)化的必由之路,盡管實(shí)施起來(lái)有難度,甚至很困難,但必須去做。軟件質(zhì)量度量是改善開(kāi)發(fā)過(guò)程,提高企業(yè)的CMM等級(jí),改善產(chǎn)品質(zhì)量的關(guān)鍵2022/11/9www.china-onlineclass2022/11/1154本章結(jié)束……2022/11/9www.china-onlineclass2022/11/1155§5.1引言5.1.1軟件可靠性工程及軟件可靠性軟件可靠性工程 應(yīng)用統(tǒng)計(jì)技術(shù),處理在軟件開(kāi)發(fā)過(guò)程中或(和)運(yùn)行期間所采集的失效數(shù)據(jù),以便詳細(xì)說(shuō)明并預(yù)計(jì)、估計(jì)和評(píng)價(jià)軟件的可靠性 研究?jī)?nèi)容包括軟件可靠性的基本概念和定義、軟件可靠性指標(biāo)體系、可靠性建模、可靠性設(shè)計(jì)技術(shù)、測(cè)試技術(shù)和管理技術(shù)等2022/11/9www.china-onlineclass2022/11/1156軟件可靠性工程處理以下問(wèn)題:確定某過(guò)程能否提供滿足可靠性要求的代碼為過(guò)程改進(jìn)提供度量預(yù)測(cè)軟件維護(hù)階段的失效率,確定軟件維護(hù)工作量幫助進(jìn)行安全性認(rèn)證確定交付軟件產(chǎn)品的時(shí)間或停止測(cè)試的時(shí)機(jī)估計(jì)下次故障的可能時(shí)間為軟件更新或升級(jí),標(biāo)識(shí)需要重新設(shè)計(jì)的主要部件測(cè)定軟件的可靠性2022/11/9www.china-onlineclass2022/11/1157軟件可靠性可靠性是軟件的13個(gè)質(zhì)量因素中最關(guān)鍵、最重要的軟件可靠性是指在規(guī)定時(shí)間和條件下軟件無(wú)故障運(yùn)行的概率,是系統(tǒng)功能或軟件產(chǎn)品中存在的缺陷的函數(shù)軟件故障產(chǎn)生的原因是軟件缺陷,但缺陷并不一定導(dǎo)致故障的產(chǎn)生,高缺陷率的軟件的可靠性不一定就差軟件失效意味著軟件運(yùn)行中斷或者無(wú)法完成所規(guī)定的任務(wù)2022/11/9www.china-onlineclass2022/11/1158幾個(gè)值得關(guān)注的問(wèn)題:軟件的運(yùn)行環(huán)境:軟件可靠性與運(yùn)行環(huán)境密切相關(guān)軟件運(yùn)行的時(shí)間間隔:商業(yè)軟件需要較高的運(yùn)行時(shí)間間隔(較長(zhǎng)的運(yùn)行壽命),而任務(wù)關(guān)鍵軟件則需要在短時(shí)間內(nèi)高效運(yùn)行軟件失效的時(shí)機(jī)是隨機(jī)的,與硬件失效類似不同于軟件的正確性,對(duì)于持續(xù)運(yùn)行的軟件其可靠性最終將歸于零(以失效結(jié)束);但正確性是軟件的特定的某次運(yùn)行結(jié)果,要么為1,要么為02022/11/9www.china-onlineclass2022/11/11595.1.2軟件的缺陷、故障和失效缺陷(Error,錯(cuò)誤):設(shè)計(jì)和構(gòu)造進(jìn)產(chǎn)品

總數(shù)是不可預(yù)知的,只能估計(jì)

缺陷分為已知和未知(新發(fā)現(xiàn))的

缺陷分為已發(fā)現(xiàn)的和未發(fā)現(xiàn)的

已發(fā)現(xiàn)的缺陷包括已糾正的和未糾正的故障(Fault):運(yùn)行結(jié)果錯(cuò)誤

故障是缺陷的表現(xiàn)形式,是由存在的缺陷產(chǎn)生的

但缺陷并不一定導(dǎo)致故障,或者條件不具備,或者不會(huì)產(chǎn)生故障失效(Failure):系統(tǒng)不能完成所需要的功能而失敗

失效是故障在軟件運(yùn)行時(shí)所產(chǎn)生的后果失效缺陷故障已糾正的缺陷2022/11/9www.china-onlineclass2022/11/1160軟件質(zhì)量度量與軟件過(guò)程有什么關(guān)系?2022/11/9www.china-onlineclass2022/11/1161失效故障面向用戶面向開(kāi)發(fā)者軟件運(yùn)行偏離用戶需求程序執(zhí)行輸出錯(cuò)誤結(jié)果可根據(jù)對(duì)用戶應(yīng)用的嚴(yán)重性等級(jí)分類可根據(jù)定位和排除故障的難度分類如,3次失效/1000CPU小時(shí)如,6個(gè)故障/1KLOC失效與故障的區(qū)別2022/11/9www.china-onlineclass2022/11/11625.1.3軟件失效軟件失效是隨機(jī)發(fā)生的描述失效的方法有三個(gè):累計(jì)失效函數(shù):即與某時(shí)間點(diǎn)相關(guān)的平均累計(jì)失效數(shù)失效率函數(shù):用累計(jì)失效函數(shù)的變化率表示平均失效時(shí)間MTTF函數(shù):對(duì)于一個(gè)時(shí)間段,表示若干相鄰失效時(shí)間間隔的平均值;對(duì)某個(gè)時(shí)間點(diǎn),表示到下次失效的期望時(shí)間2022/11/9www.china-onlineclass2022/11/1163軟件失效率如果沒(méi)有缺陷,軟件失效率為0如果發(fā)現(xiàn)的缺陷能被及時(shí)、完全修復(fù),失效率會(huì)趨向0實(shí)際上,發(fā)現(xiàn)的缺陷數(shù)會(huì)遞增,而糾正一個(gè)缺陷會(huì)引入更多的缺陷,因而失效率會(huì)增加時(shí)間失效率硬件軟件(實(shí)際)軟件(理想)2022/11/9www.china-onlineclass2022/11/1164§5.2軟件可靠性度量和建模5.2.1基本概念 軟件可靠性建模過(guò)程是根據(jù)軟件過(guò)去的故障行為建立軟件可靠性數(shù)學(xué)模型的過(guò)程

建模的目的是為了預(yù)計(jì)軟件將來(lái)的故障行為

建模過(guò)程包括以下步驟:通過(guò)度量獲得歷史數(shù)據(jù)對(duì)故障數(shù)據(jù)進(jìn)行分析,擬合成概率分布函數(shù)對(duì)擬合函數(shù)進(jìn)行參數(shù)分析確定所期望的可靠性度量值并預(yù)測(cè)可能的故障行為2022/11/9www.china-onlineclass2022/11/11655.2.2軟件可靠性度量參數(shù)軟件可靠性R(t)可定義為:在給定條件下,在時(shí)間[0,t]內(nèi),軟件無(wú)故障運(yùn)行的概率若用T表示軟件無(wú)故障運(yùn)行的時(shí)間間隔,F(xiàn)(t)為T的累積分布函數(shù),則軟件可靠性可表示為:R(t)=1-F(t) t≥0故障率函數(shù)λ(t)為:其中,f(t)為F(t)的函數(shù)密度,即:2022/11/9www.china-onlineclass2022/11/1166λ(t)Δt是在時(shí)間[0,t]內(nèi)軟件正常運(yùn)行,在[t,t+Δt]內(nèi)發(fā)生故障的條件概率,可得:密度函數(shù)f(t)、累積分布函數(shù)F(t)、可靠性函數(shù)R(t)和故障率函數(shù)λ(t)緊密相關(guān),一般可由任一個(gè)惟一地確定另外三個(gè),例如若λ(t)給定,則:根據(jù)f(t)或R(t)可計(jì)算平均失效時(shí)間函數(shù)MTTF,從而預(yù)測(cè)故障時(shí)間2022/11/9www.china-onlineclass2022/11/11675.2.3軟件可靠性度量模型指數(shù)分布密度函數(shù)為分布函數(shù)為故障率函數(shù)為 (常數(shù))具有指數(shù)壽命分布的軟件產(chǎn)品(故障率為常數(shù))沒(méi)有老化現(xiàn)象,符合不需要維護(hù)的軟件的運(yùn)行情況2022/11/9www.china-onlineclass2022/11/1168Weibull分布Weibull是更常用的分布,在許多工程領(lǐng)域的可靠性分析中都廣泛應(yīng)用,如軸承磨損、河流泛濫等Weibull分布有兩個(gè)參數(shù)α、β(β為1時(shí)變?yōu)橹笖?shù)函數(shù))函數(shù)密度為:分布函數(shù)為:故障率函數(shù)為:2022/11/9www.china-onlineclass2022/11/1169β>1β<1β=1tWeibull分布β=1時(shí)變?yōu)橹笖?shù)分布β=2時(shí)為Rayleigh分布研究表明,軟件項(xiàng)目的生命周期模式、項(xiàng)目的缺陷移除模式等都很好地符合Rayleigh模型2022/11/9www.china-onlineclass2022/11/1170數(shù)據(jù)收集和分析是度量軟件可靠性的最重要的先決條件,任何可靠性度量的有效性都與數(shù)據(jù)收集的有效性直接相關(guān),數(shù)據(jù)收集過(guò)程必須有計(jì)劃、有組織地進(jìn)行與軟件可靠性相關(guān)的數(shù)據(jù)包括:缺陷數(shù)據(jù)過(guò)程數(shù)據(jù)產(chǎn)品數(shù)據(jù):如規(guī)模、功能、性能等§5.3軟件可靠性數(shù)據(jù)收集過(guò)程2022/11/9www.china-onlineclass2022/11/11715.3.1缺陷數(shù)據(jù)的收集缺陷數(shù)據(jù)的收集常采用問(wèn)答、報(bào)告形式,即發(fā)放問(wèn)題報(bào)告表格要求有關(guān)人員填寫,收集并分析問(wèn)題報(bào)告表格形成統(tǒng)計(jì)數(shù)據(jù)檢測(cè)到的缺陷已記錄的缺陷已評(píng)審的缺陷確認(rèn)?結(jié)束缺陷報(bào)告采取措施?通過(guò)驗(yàn)證?記錄不采取措施的原因記錄糾正驗(yàn)證問(wèn)題報(bào)告NoNoNoYesYesYes2022/11/9www.china-onlineclass2022/11/11725.3.2過(guò)程數(shù)據(jù)的收集缺陷數(shù)據(jù)必須與過(guò)程融合才有價(jià)值,因而過(guò)程數(shù)據(jù)也需要收集。通常會(huì)將項(xiàng)目的持續(xù)時(shí)間作為主要關(guān)心的過(guò)程數(shù)據(jù),但實(shí)際需要更細(xì)分與軟件可靠性測(cè)試過(guò)程相關(guān)的數(shù)據(jù)包括:CPU時(shí)間:具有與人無(wú)關(guān)性,但易忽略人的工作(如評(píng)審等)日歷時(shí)間:優(yōu)點(diǎn)是易于收集,但沒(méi)有考慮階段特征,如某些技術(shù)在某階段更有效運(yùn)行時(shí)間:是為測(cè)試而運(yùn)行軟件的總時(shí)間,也未考慮階段特征其他數(shù)據(jù):包括平均修復(fù)時(shí)間、完成每個(gè)過(guò)程活動(dòng)的人數(shù)、軟件生命期各階段所用時(shí)間百分比、各階段所消耗的資源數(shù)量、各階段的開(kāi)始、截止日期、各階段修復(fù)一個(gè)缺陷所需的工作量、各功能模塊的缺陷數(shù),等等2022/11/9www.china-onlineclass2022/11/1173§5.4軟件的運(yùn)行剖面軟件可靠性建模需要具備三個(gè)條件:軟件運(yùn)行時(shí)間基準(zhǔn)(日歷時(shí)間、運(yùn)行時(shí)間、CPU時(shí)間)軟件運(yùn)行過(guò)程收集的數(shù)據(jù),是建模基礎(chǔ)軟件功能和運(yùn)行環(huán)境 軟件運(yùn)行剖面用于定量描述軟件的用戶運(yùn)行環(huán)境,即軟件的功能和各功能的使用概率2022/11/9www.china-onlineclass2022/11/11745.4.1軟件新系統(tǒng)的運(yùn)行剖面不同的運(yùn)行模式下各功能的使用概率不同不同運(yùn)行模式的出現(xiàn)模式也不同運(yùn)行模式1運(yùn)行模式2功能功能使用概率2022/11/9www.china-onlineclass2022/11/1175運(yùn)行剖面對(duì)軟件可靠性工程極具價(jià)值:可為開(kāi)發(fā)過(guò)程的資源分配提供參考,有利于提高生產(chǎn)率、可靠性和加快開(kāi)發(fā)速度有利于測(cè)試,可確保常用功能獲得更多測(cè)試有利于設(shè)計(jì)測(cè)試用例,以發(fā)現(xiàn)影響可靠性最大的故障根據(jù)功能的使用頻度可確定開(kāi)發(fā)的優(yōu)先級(jí)使功能描述更清晰,便于交流有助于用戶培訓(xùn)2022/11/9www.china-onlineclass2022/11/11765.4.2軟件運(yùn)行剖面與可靠性的關(guān)系 軟件可靠性度量、評(píng)估和預(yù)測(cè)與軟件的某個(gè)特定的運(yùn)行剖面密切相關(guān) 軟件測(cè)試期間,為節(jié)省時(shí)間和成本,通常每個(gè)運(yùn)行剖面只測(cè)試一次,因而不能反映每個(gè)剖面的出現(xiàn)概率,由此獲得的可靠性數(shù)據(jù)也不能反映實(shí)際情況

要將測(cè)試期間獲得的可靠性值變換為實(shí)際值,可用以下公式:

其中,λu是實(shí)際的用戶環(huán)境下的故障密度,λT是測(cè)試值,C為測(cè)試壓縮系數(shù)2022/11/9www.china-onlineclass2022/11/1177C的含義是:在覆蓋全部輸入空間條件下,使用期間所要求的執(zhí)行時(shí)間與測(cè)試階段所要求的執(zhí)行時(shí)間之比C的計(jì)算公式為:其中, τk為輸入狀態(tài)k運(yùn)行時(shí)的執(zhí)行時(shí)間

Pk為輸入狀態(tài)k在運(yùn)行期間的發(fā)生概率

QI為輸入狀態(tài)總數(shù)

Pmin為最少發(fā)生的輸入狀態(tài)的概率2022/11/9www.china-onlineclass2022/11/1178

5.4.3軟件運(yùn)行剖面的建立運(yùn)行剖面是關(guān)于系統(tǒng)如何運(yùn)行的定量描述,建立步驟為:建立客戶剖面:分類描述要獲取該系統(tǒng)的客戶的使用模式建立用戶剖面:分類描述要使用該系統(tǒng)的用戶的使用模式定義系統(tǒng)模式剖面:根據(jù)執(zhí)行過(guò)程描述系統(tǒng)運(yùn)行模式確定功能剖面:劃分功能并確定各功能的發(fā)生概率確定運(yùn)行剖面:確定系統(tǒng)各運(yùn)行模式的發(fā)生概率2022/11/9www.china-onlineclass2022/11/1179§5.5軟件可靠性模型及應(yīng)用

軟件可靠性建模是軟件可靠性工程的研究重點(diǎn)5.5.1與軟件可靠性模型有關(guān)的問(wèn)題歷史背景 20世紀(jì)70年代,Telinski、Moranda、Shooman等人提出了軟件可靠性建模的問(wèn)題,并使用建立的模型估計(jì)軟件現(xiàn)在和未來(lái)的可靠性

經(jīng)近40年的發(fā)展,軟件可靠性模型已有很多種2022/11/9www.china-onlineclass2022/11/1180軟件可靠性模型的分類 Musa、Okumoto根據(jù)模型的5個(gè)特征進(jìn)行分類:時(shí)間域(timedomain):日歷時(shí)間、執(zhí)行時(shí)間或CPU時(shí)間類別(Category):軟件在無(wú)限的時(shí)間內(nèi)可能經(jīng)歷的故障數(shù)是有限的還是無(wú)限的型(Type):軟件在運(yùn)行時(shí)間t時(shí)的失效數(shù)分布分類種類(Class):故障密度對(duì)時(shí)間的函數(shù)分布(僅對(duì)有限故障類)族(Family):故障密度對(duì)它的期望故障數(shù)的函數(shù)分布(僅對(duì)無(wú)限故障類)2022/11/9www.china-onlineclass有限故障數(shù)模型種類型泊松分布二項(xiàng)式分布其他指數(shù)分布Mussa(1975)MorandaSchneidewindGoel-OkumotoJelinski-MorandaShoomanGoel-OkumotoMussaKeiller-LittlewoodWeibull分布Schick-wolvertonWagonerC1分布Schick-wolverton帕雷多分布LittlewoodGamma分布Y-O-O無(wú)限故障數(shù)模型族型T1T2T3泊松分布幾何分布MorandaMussa-Okumoto線性倒數(shù)Littlewood-Verrall二次多項(xiàng)式倒數(shù)Littlewood-Verrall冪Crow有限故障數(shù)模型種類型泊松分布二項(xiàng)式分布其他指數(shù)分布Mussa2022/11/11825.5.2軟件可靠性模型參數(shù)與軟件可靠性模型相關(guān)的參數(shù)有:ETF:軟件中固有缺陷數(shù),是固定的ETV:同上,是變化的,在開(kāi)發(fā)、維護(hù)過(guò)程中隨時(shí)添加EC(t):某時(shí)刻已糾正的缺陷數(shù)ED(t):某時(shí)刻已發(fā)現(xiàn)的缺陷數(shù)P:在修正缺陷過(guò)程中測(cè)試的循環(huán)次數(shù),常假定

P=ED(t)=EC(t)EC(p):直到第p次測(cè)試才修正的缺陷數(shù)λ0:起始故障率λp:當(dāng)前故障率θ:故障率的變化τ:累計(jì)執(zhí)行時(shí)間α:增長(zhǎng)率N:測(cè)試用例運(yùn)行總數(shù)S:成功的測(cè)試用例運(yùn)行總數(shù)2022/11/9www.china-onlineclass2022/11/11836.5.3軟件可靠性模型Musa模型基本模型假設(shè):①每個(gè)缺陷對(duì)故障率的貢獻(xiàn)是相同的;②每修正一個(gè)缺陷故障率均勻地減少,即故障率對(duì)時(shí)間的導(dǎo)數(shù)是常數(shù);③軟件固有的故障總數(shù)是有限的,但不固定,即修正缺陷時(shí)可能產(chǎn)生新缺陷Musa模型:2022/11/9www.china-onlineclass2022/11/1184

利用基本模型可估計(jì)要達(dá)到某可靠性目標(biāo)還必須要發(fā)現(xiàn)(檢測(cè)出)的缺陷數(shù)和需要的時(shí)間,有助于計(jì)劃人力和時(shí)間

設(shè)要達(dá)到的可靠性目標(biāo)為λf,則需發(fā)現(xiàn)的故障數(shù)Nf為: 為達(dá)到這一目標(biāo)所需時(shí)間Tf為:當(dāng)前已檢測(cè)出的累積缺陷數(shù)為達(dá)到故障率目標(biāo)或MTTF目標(biāo)必須要檢出的累計(jì)缺陷數(shù)為達(dá)到目標(biāo)還需檢測(cè)出的缺陷數(shù)為達(dá)到目標(biāo)需要的時(shí)間測(cè)試時(shí)間已檢出的累計(jì)缺陷數(shù)2022/11/9www.china-onlineclass2022/11/1185對(duì)數(shù)模型假設(shè):①每個(gè)缺陷對(duì)故障率的貢獻(xiàn)不同;②常用的功能的缺陷可及早被檢出,故障率的變化隨時(shí)間減少;③軟件固有的故障總數(shù)是無(wú)限的Musa模型:Nf和Tf為:2022/11/9www.china-onlineclass2022/11/1186Goel-Okumoto模型假設(shè):缺陷對(duì)時(shí)間的分布是非時(shí)對(duì)齊的,即發(fā)現(xiàn)的缺陷不一定會(huì)立即消除(適用于開(kāi)發(fā)早期)基本模型:其中,ab為常數(shù),與單位時(shí)間內(nèi)發(fā)生的缺陷有關(guān)可得:修正模型:故障密度函數(shù)為Weibull分布2022/11/9www.china-onlineclass2022/11/11875.5.4軟件可靠性模型的適用條件模型假設(shè)適用階段難易度Mussa基本模型①優(yōu)先固有缺陷數(shù)②常數(shù)故障率③指數(shù)分布集成測(cè)試后EMussa對(duì)數(shù)模型①無(wú)限固有缺陷數(shù)②對(duì)數(shù)分布③故障率隨時(shí)間變化單元測(cè)試到系統(tǒng)測(cè)試EGoel-Ukumoto①非時(shí)齊缺陷分布②缺陷可能因修復(fù)而產(chǎn)生③指數(shù)、Weibull分布集成測(cè)試后M2022/11/9www.china-onlineclass2022/11/1188§5.6軟件可靠性測(cè)試5.6.1軟件測(cè)試的類型與軟件可靠性相關(guān)的測(cè)試主要是動(dòng)態(tài)測(cè)試單元測(cè)試:對(duì)匯編單元進(jìn)行測(cè)試集成測(cè)試:對(duì)匯編單元接口的測(cè)試驗(yàn)收測(cè)試:驗(yàn)收并確認(rèn)實(shí)現(xiàn)了所有需求回歸測(cè)試:對(duì)與修正的缺陷的軟件部件的再測(cè)試2022/11/9www.china-onlineclass2022/11/11895.6.2軟件可靠性測(cè)試方法利用在其他測(cè)試中的數(shù)據(jù)收集來(lái)檢驗(yàn)軟件可靠性的測(cè)試基本步驟是:仔細(xì)研究開(kāi)發(fā)過(guò)程和軟件問(wèn)題報(bào)告確定使用那些或那個(gè)模型來(lái)度量軟件可靠性執(zhí)行一種有效的方法來(lái)收集問(wèn)題報(bào)告缺陷數(shù)據(jù)、過(guò)程數(shù)據(jù)和產(chǎn)品數(shù)據(jù),收集集成測(cè)試期間及以后的數(shù)據(jù)按照模型規(guī)定的原理和方法,將數(shù)據(jù)輸入選定的模型,直接估計(jì)軟件可靠性或間接地估計(jì)與其有關(guān)的參數(shù)根據(jù)估計(jì)結(jié)果進(jìn)行決策:軟件能否被釋放(發(fā)布)?是否需要增加測(cè)試時(shí)間以達(dá)到可靠性目標(biāo)?如果需要,還需要多少時(shí)間?2022/11/9www.china-onlineclass2022/11/1190Beta測(cè)試 可以直接反映可靠性水平系統(tǒng)軟件證明測(cè)試 在要求時(shí)間內(nèi)、在實(shí)際的使用環(huán)境中運(yùn)行系統(tǒng),不對(duì)系統(tǒng)進(jìn)行維護(hù),收集發(fā)現(xiàn)的故障數(shù),以決定整個(gè)系統(tǒng)能否通過(guò)可靠性測(cè)試基于測(cè)試時(shí)間的軟件證明測(cè)試 在相對(duì)較長(zhǎng)時(shí)間內(nèi)對(duì)軟件的運(yùn)行進(jìn)行軟件證明測(cè)試基于測(cè)試輸入的軟件證明測(cè)試 只針對(duì)特定的測(cè)試用力進(jìn)行軟件證明測(cè)試2022/11/9www.china-onlineclass2022/11/1191軟件證明測(cè)試方法測(cè)試前,先由測(cè)試者和用戶共同確定以下三個(gè)參數(shù):用戶風(fēng)險(xiǎn)因子α:是由用戶承擔(dān)的軟件可靠性未達(dá)目標(biāo)而通過(guò)測(cè)試的風(fēng)險(xiǎn)生產(chǎn)者風(fēng)險(xiǎn)因子β:是由開(kāi)發(fā)者承擔(dān)的可靠性已達(dá)目標(biāo)而未被接受的風(fēng)險(xiǎn)鑒別因子γ:是最大可接受的失效密度和失效密度目標(biāo)的比值2022/11/9www.china-onlineclass2022/11/1192確定可靠性測(cè)試判定標(biāo)準(zhǔn)根據(jù)已確定的三個(gè)參數(shù)繪制軟件可靠性證明測(cè)試判定圖確定拒絕線和接受線規(guī)格化是指將測(cè)試時(shí)間或測(cè)試用例數(shù)乘以故障率目標(biāo)值規(guī)格化的測(cè)試時(shí)間或測(cè)試輸入在測(cè)試期間發(fā)現(xiàn)的累計(jì)缺陷數(shù)測(cè)試通過(guò)測(cè)試未完測(cè)試失敗接受線拒絕線2022/11/9www.china-onlineclass2022/11/1193測(cè)試開(kāi)始后,失效發(fā)生時(shí),將對(duì)應(yīng)的累計(jì)故障數(shù)和測(cè)試時(shí)間或測(cè)試用例數(shù)在圖中標(biāo)出判定測(cè)試結(jié)果:通過(guò)或失敗都表示測(cè)試結(jié)束,若測(cè)試未完成,則繼續(xù)測(cè)試注:基于測(cè)試用例的證明測(cè)試具有隨機(jī)性,不同測(cè)試可能得到不同結(jié)果,為此可采用模塊化方法選擇測(cè)試用例,以保證測(cè)試的客觀性2022/11/9www.china-onlineclass2022/11/11945.6.3軟件可靠性測(cè)試的實(shí)施過(guò)程1、概述軟件可靠性測(cè)試有兩類:開(kāi)發(fā)測(cè)試:包括性能測(cè)試、加載測(cè)試、回歸測(cè)試,目的是發(fā)現(xiàn)和修正單元及其集成的缺陷確認(rèn)測(cè)試:一般只進(jìn)行加載測(cè)試,目的是為了確定軟件部件或系統(tǒng)是否被接受 對(duì)于軟件可靠性建模,開(kāi)發(fā)測(cè)試收集的是分組數(shù)據(jù),是不完整的,而確認(rèn)測(cè)試獲得的是完全數(shù)據(jù)2022/11/9www.china-onlineclass2022/11/1195軟件可靠性測(cè)試過(guò)程模型 開(kāi)發(fā)業(yè)務(wù)剖面是軟件可靠性測(cè)試的重要環(huán)節(jié),因?yàn)榭煽啃阅繕?biāo)與業(yè)務(wù)剖面關(guān)系密切軟件可靠性目標(biāo)開(kāi)發(fā)系統(tǒng)業(yè)務(wù)剖面準(zhǔn)備測(cè)試軟件可靠性定量評(píng)估軟件可靠性模型執(zhí)行測(cè)試收集、整理故障數(shù)據(jù)對(duì)比需求與構(gòu)造設(shè)計(jì)和實(shí)現(xiàn)集成測(cè)試和確認(rèn)測(cè)試接受或拒絕2022/11/9www.china-onlineclass2022/11/11963、測(cè)試的目的

通過(guò)在規(guī)定的業(yè)務(wù)剖面下運(yùn)行軟件系統(tǒng),確認(rèn)是否能夠完成于業(yè)務(wù)剖面相關(guān)的任務(wù):正確地完成規(guī)定的功能滿足性能要求不完成沒(méi)有規(guī)定的功能提供運(yùn)行中的故障數(shù)據(jù)4、用戶責(zé)任用戶要參與軟件測(cè)試:規(guī)定測(cè)試要求,如測(cè)試條件和環(huán)境評(píng)審和批準(zhǔn)測(cè)試程序評(píng)審和批準(zhǔn)每一需求的認(rèn)證方法和技術(shù)提供測(cè)試環(huán)境和人員要球組織獨(dú)立的測(cè)試組織2022/11/9www.china-onlineclass2022/11/11975、測(cè)試的準(zhǔn)備和執(zhí)行

測(cè)試準(zhǔn)備:準(zhǔn)備測(cè)試用例、測(cè)試程序并決定要使用的自動(dòng)化測(cè)試工具 測(cè)試用例設(shè)計(jì)須考慮可靠性定量要求和成本及效率,測(cè)試用例的數(shù)量和類型選擇要與業(yè)務(wù)剖面及發(fā)生概率一致,且考慮到隨機(jī)性 測(cè)試程序與特定的業(yè)務(wù)剖面相關(guān),要考慮發(fā)生概率

測(cè)試執(zhí)行:從性能測(cè)試開(kāi)始進(jìn)行加載測(cè)試,要考慮業(yè)務(wù)剖面和運(yùn)行模式已分配執(zhí)行時(shí)間和測(cè)試用例

測(cè)試執(zhí)行過(guò)程需進(jìn)行故障識(shí)別,記錄故障發(fā)生時(shí)間和嚴(yán)重性

對(duì)于發(fā)現(xiàn)的故障,需要填寫故障報(bào)告:引發(fā)故障的缺陷什么時(shí)候、在那里出現(xiàn)?原因是什么?如何定位?什么時(shí)候該定位被確認(rèn)?要進(jìn)行的修改有哪些?2022/11/9www.ch

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論