軟件可靠性評測及其應用探討
作者:網絡轉載 發布時間:[ 2010/11/22 9:52:46 ] 推薦標簽:
一、概述
在現代軍事和商用系統中,以軟件為核心的產品得到了廣泛的應用。隨著系統中軟件成分的不斷增加,使得系統對于軟件的依賴性越來越強,對軟件質量尤其是可靠性的要求也越來越高。
軟件可靠性是指在規定的條件下和規定的時間內,軟件不引起系統故障的能力。軟件可靠性不但與軟件中存在的缺陷有關,而且與系統輸入和系統使用有關。軟件可靠性是軟件質量特性中重要的固有特性和關鍵因素。軟件可靠性反映了用戶的質量觀點。
軟件可靠性評價是軟件可靠性工作的重要組成部分。軟件可靠性評測是主要的軟件可靠性評價技術,它包括測試與評價兩個方面的內容,既適用于軟件開發過程,也可針對終軟件產品。在軟件開發過程中使用軟件可靠性評測技術,除了可以更快速地找出對可靠性影響大的錯誤,還可以結合軟件可靠性增長模型,估計軟件當前的可靠性,以確認是否可以終止測試和發布軟件,同時還可以預計軟件要達到相應的可靠性水平所需要的時間和測試量,論證在給定日期提交軟件可能給可靠性帶來的影響。對于終軟件產品,軟件可靠性評測是一種可行的評價技術,可以對終產品進行可靠性驗證測試,確認軟件的執行與需求的一致性,確定終軟件產品所達到的可靠性水平。
二、軟件可靠性評測技術
本文所述的軟件可靠性評測是指運用統計技術對軟件可靠性測試和系統運行期間采集的軟件失效數據進行處理并評估軟件可靠性的過程。軟件可靠性評測的主要目的是測量和驗證軟件的可靠性,當然實施軟件可靠性評測也是對軟件測試過程的一種完善,有助于軟件產品本身的可靠性增長。
軟件測試者可以使用很多方法進行軟件測試,如按行為或結構來劃分輸入域的劃分測試,純粹隨機選擇輸入的隨機測試,基于功能、路徑、數據流或控制流的覆蓋測試,等等。對于給定的軟件,每種測試方法都局限于暴露一定數量和一些類別的錯誤。通過這些測試能夠查找、定位、改正和消除某些錯誤,實現一定意義上的軟件可靠性增長。但是,由于它們都是面向錯誤的測試,測試所得到的結果數據不宜用于軟件可靠性評估。
軟件可靠性測試是指在軟件的預期使用環境中,為進行軟件可靠性評估而對軟件實施的一種測試。軟件可靠性測試應該是面向故障的測試,以用戶將要使用的方式來測試軟件,每一次測試代表用戶將要完成的一組操作,使測試成為終產品使用的預演。這使得所獲得的測試數據與軟件的實際運行數據比較接近,可用于軟件可靠性估計。
軟件可靠性評測由可靠性目標的確定、運行剖面的開發、測試的計劃與執行和測試結果的分析與反饋等四個主要的活動組成。
可靠性目標是指客戶對軟件性能滿意程度的期望。通常用可靠度、故障強度、MTTF等指標來描述,根據不同項目的不同需要而定。建立定量的可靠性指標需要對可靠性、交付時間和成本進行平衡。為了定義系統的可靠性指標,必須確定系統的運行模式,定義故障的嚴重性等級,確定故障強度目標。
為了對軟件可靠性進行良好的預計,必須在軟件的運行域上對其進行測試,首先定義一個相應的剖面來鏡像運行域,然后使用這個剖面驅動測試,這樣可以使測試真實的反映軟件的使用情況。由于可能的輸入幾乎是無限的,測試必須從中選擇出一些樣本,即測試用例,測試用例要能反映實際的使用情況,反映系統的運行剖面。將統計方法應用到運行剖面開發和測試用例生成,在運行剖面中的每個元素都被定量地賦予一個發生概率值和關鍵因子,然后根據這些因素分配測試資源、挑選和生成測試用例。在這種測試中, 優先測試那些重要或頻繁使用的功能,釋放和緩解高級別的風險,有助于盡早發現那些對可靠性有大影響的故障,以保證軟件的按期交付。一個產品有可能需要開發多個運行剖面,這取決于它所包含的運行模式和關鍵操作,通常需要為關鍵操作單獨定義運行剖面。
在軟件的開發過程中使用軟件可靠性測試和利用軟件可靠性測試對終產品進行評價,在測試計劃的制定上有所不同。用于設計過程的可靠性測試稱為可靠性增長測試,測試與故障的排除聯系在一起,一般安排在開發過程的系統測試階段執行,將測試所確定的故障提交給開發者進行修改,建立軟件的一個新的版本,再進行下一次測試。在這種“測試?排錯?新版本”的迭代過程中,跟蹤故障強度的變化,確認測試是否可以終止及軟件是否可以發布。可靠性增長測試的測試腳本將執行多次。針對終產品的可靠性測試稱為可靠性驗證測試,通過驗證測試可確定軟件產品當前的可靠性水平。單個軟件版本而言,可靠性驗證測試的測試腳本將僅執行一次。軟件可靠性故障數據的收集是測試活動的一部分,在測試周期內,紀錄每個故障的資料,如與時間相關的故障頻度、類型、嚴重性和故障的根源等,并且應區分設計階段和終產品的故障。
可靠性增長測試和可靠性驗證測試將從不同的角度理解故障數據。在可靠性增長測試中,測試以迭代的方式進行,根據測試期間跟蹤到的故障,使用基于軟件可靠性增長模型和統計推理的可靠性評估程序進行故障強度的估計,并用于跟蹤測試的進展情況。可靠性驗證測試是軟件系統提交前進行的后測試。它是終檢驗而不是調試。在驗證測試中,其目標是確定一個軟件組件或系統在風險限度內是被接受還是被拒絕。驗證測試使用可靠性示圖,故障被繪制在圖上。根據它落入的區域,來決定被測軟件是被接受還是被拒絕,或者繼續進行測試。可以根據不同的客戶風險(接受一個不良程序的風險)和供應商風險(拒絕一個好程序的風險)級別構造圖表。
相關推薦

最新發布
性能測試之測試環境搭建的方法
2020/7/21 15:39:32軟件測試是從什么時候開始被企業所重視的呢?
2020/7/17 9:09:11Android自動化測試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項目適合做自動化?自動化測試人員應具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測試工具測評
2020/7/17 8:52:11RPA機器人能夠快速響應企業需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測試基本概念是怎么來的?軟件測試生命周期的形成歷經了什么?
2020/7/16 9:11:10