- 軟件測(cè)試:實(shí)踐者方法
- 孫志安等編著
- 1133字
- 2024-09-19 17:31:53
2.5.2 軟件失效
軟件失效(Software Failure)是指軟件運(yùn)行過(guò)程中,規(guī)定功能的終止。該定義包含三方面的含義:一是軟件系統(tǒng)不能在規(guī)定的時(shí)間內(nèi)和條件下完成規(guī)定的功能,喪失對(duì)用戶(hù)預(yù)期服務(wù)的能力;二是功能單元執(zhí)行所要求功能的能力終結(jié);三是軟件操作偏離用戶(hù)需求。與硬件不同,軟件不會(huì)因?yàn)榄h(huán)境應(yīng)力作用而疲勞,也不會(huì)隨時(shí)間推移而磨損和耗散,軟件壽命失效可能是因?yàn)橛布勖拢S機(jī)失效通常由設(shè)計(jì)過(guò)程中所遺留的內(nèi)部缺陷所致。
2.5.2.1 軟件失效與軟件缺陷的關(guān)系
在特定的條件下,缺陷被激活,誘發(fā)軟件失效。由于軟件系統(tǒng)結(jié)構(gòu)及缺陷產(chǎn)生機(jī)理的復(fù)雜性,執(zhí)行路徑不能完全準(zhǔn)確刻畫(huà)軟件的失效行為。對(duì)于呈分立狀態(tài)的軟件系統(tǒng),狀態(tài)數(shù)往往比其駐留環(huán)境的非重復(fù)狀態(tài)數(shù)大得多,軟件失效可能是單個(gè)缺陷或缺陷組合所致。圖2-16形象地給出了軟件失效與軟件缺陷的關(guān)系。

圖2-16 軟件失效與軟件缺陷的關(guān)系
軟件缺陷是一種內(nèi)在的物理及靜態(tài)存在,而軟件失效則是一種動(dòng)態(tài)行為。如果軟件存在缺陷,對(duì)于確定的輸入或其組合,會(huì)將處于休眠狀態(tài)的內(nèi)部缺陷激活,導(dǎo)致軟件失效。來(lái)源于系統(tǒng)的物理或人為環(huán)境錯(cuò)誤等也是導(dǎo)致軟件失效的重要原因。同一缺陷在不同條件下被激活,可能產(chǎn)生不同失效及組合。軟件測(cè)試過(guò)程中,受輸入制約,直觀呈現(xiàn)出的往往是單點(diǎn)失效,從而掩蓋了軟件缺陷的本質(zhì)。
對(duì)于大型復(fù)雜軟件系統(tǒng),因其結(jié)構(gòu)的復(fù)雜性、系統(tǒng)的多功能性、運(yùn)行場(chǎng)景的多變性、使用環(huán)境的極端性,支持這種復(fù)雜情形的開(kāi)銷(xiāo)往往存在顯著的差異,尤其是對(duì)于智能軟件系統(tǒng),具有非確定性和確定性相結(jié)合的缺陷觸發(fā)與傳播機(jī)理,對(duì)軟件缺陷及失效機(jī)理的認(rèn)識(shí)將變得更加困難,似乎已無(wú)路可循,難道得另辟蹊徑?
抽象系統(tǒng)功能模式是執(zhí)行一個(gè)輸入域I到輸出域的映射。系統(tǒng)運(yùn)行過(guò)程中,從輸入域I中選擇一個(gè)輸入點(diǎn)序列,輸入空間分別是錯(cuò)誤輸入子空間
及激活缺陷的輸入子空間(Iafi) ,系統(tǒng)失效域?yàn)?/p>

(2-6)
當(dāng)輸入軌跡進(jìn)入時(shí),缺陷被激活,誘發(fā)系統(tǒng)失效。選擇輸入點(diǎn)時(shí),對(duì)應(yīng)一個(gè)非零的系統(tǒng)失效概率p,無(wú)論選擇什么輸入點(diǎn),p都暫時(shí)不變。假設(shè)離散系統(tǒng)概率為

(2-7)
若為與輸入相關(guān)的執(zhí)行時(shí)間,那么不論選擇什么樣的輸入點(diǎn),當(dāng)te→0 時(shí),失效率為

(2-8)
2.5.2.2 失效率
工程上,用失效率度量軟件失效。軟件失效率(Software Failure Rate)是指軟件在時(shí)刻尚未發(fā)生失效的條件下,在t時(shí)刻之后的單位時(shí)間
內(nèi)發(fā)生失效的概率,有時(shí)稱(chēng)之為風(fēng)險(xiǎn)函數(shù)(Hazard Function)。根據(jù)定義,可以得到

(2-9)
由于f(t) 是隨機(jī)變量的密度函數(shù),那么式(2-9)可表示為

(2-10)
在初始條件R(0)=1 時(shí),求解該常微分方程可得到

(2-11)
如果λ(s) 為常數(shù),則可以得到

(2-12)
2.5.2.3 失效強(qiáng)度
失效強(qiáng)度(Software Failure Intensity)是指在單位時(shí)間內(nèi),軟件失效的機(jī)會(huì)或可能性,即在時(shí)間區(qū)間上,當(dāng)
時(shí),軟件故障數(shù)的期望值與該時(shí)間區(qū)間的長(zhǎng)度
之比的極限值。在非齊次泊松過(guò)程模型中,用
表示故障數(shù)的期望值,f(t) 表示失效強(qiáng)度。有

(2-13)
- CAE分析大系:ANSYS?Workbench結(jié)構(gòu)分析與實(shí)例詳解
- Android 網(wǎng)絡(luò)開(kāi)發(fā)與應(yīng)用實(shí)戰(zhàn)詳解
- 實(shí)戰(zhàn)Java虛擬機(jī):JVM故障診斷與性能優(yōu)化(第2版)
- 軟件需求分析實(shí)戰(zhàn)
- 21天學(xué)通C++(第7版)
- Spring Cloud Alibaba大型微服務(wù)架構(gòu)項(xiàng)目實(shí)戰(zhàn)(上冊(cè))
- Swift從入門(mén)到精通(正式版)
- 架構(gòu)基礎(chǔ):從需求到架構(gòu)
- 大模型入門(mén):技術(shù)原理與實(shí)戰(zhàn)應(yīng)用
- 計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)集成技術(shù)基礎(chǔ)與解決方案
- Visual Basic編程寶典(十年典藏版)
- 軟件開(kāi)發(fā)大講堂·從入門(mén)到精通-第一輯(套裝共5冊(cè))
- 嵌入式軟件測(cè)試:方法、案例與模板詳解
- 精益軟件度量——實(shí)踐者的觀察與思考
- 持續(xù)交付2.0:業(yè)務(wù)引領(lǐng)的DevOps精要(增訂本)