資料介紹
軟件(或軟件構件)魯棒性是衡量軟件在異常輸入和應力環境條件下保持正常工作能力的一種度量。魯棒性測試主要用于測試操作系統、應用程序、COTS軟件、構件及服務協議等軟件和協議的可靠性及健壯性。在操作系統和安全關鍵軟件等一些重要軟件的測試上尤為重要。對于系統魯棒性的評價一般有基于測量的方法和基于故障注入的方法,近年來提出了魯棒性基準程序方法(Robustness Benchmarking)[1]。魯棒性基準程序(Robustness Benchmark)由一組健壯性測試用例組成。
實施軟件魯棒性測試的目的是發現所測代碼的健壯性薄弱環節,并予以消除或增強抵抗異常情況的能力。增強代碼健壯性的過程包括:(1)確定軟件的激發健壯性失效的異常值參數,并進行測試;(2)分析測試結果,找出失效原因;(3)寫保護代碼屏蔽導致失效的異常值;(4)把保護代碼與軟件模塊相連接[3]。
1 Linux內核函數測試
Linux操作系統體系結構從底層到頂部的順序依次是:內核(包含內核函數)、系統調用、內建程序(操作系統的命令)。內核函數是內核代碼的組成部分,其調用程序直接運行在內核空間。內核函數一旦出現異常,將立刻對整個操作系統產生影響。系統調用一般對內核函數進行封裝,以此作為內核與用戶空間的接口。當用戶程序使用系統調用時會轉到內核空間,調用結束后又會返回用戶空間。內核函數的測試結果一般分類為:函數錯誤碼返回、異常、內核掛起、工作負載夭折、工作負載結果不正確、工作負載完成[1]。
Linux內核函數魯棒性測試的最終目的是要提高系統的健壯性,需要根據測試結果生成相應的保護代碼。這方面的研究目前處于初期階段。
2 魯棒性維度分析
典型的魯棒性測試包括模塊化基準測試和層次化測試兩種主要方法。模塊化基準測試是對一個系統進行分離測試。它把一個獨立的系統看作是一系列組件的集合,如文件系統、內存系統、外部交互系統、鎖機制和多道程序運作等,另外還通過一個監視器程序來監視和收集測試的結果。而層次化測試是通過定義一個清晰的交互層,使測試和對各種模塊進行測試的執行細節相分離。一些測試可以適用于所有模塊,而另一些可能只適合一個模塊子集。使用層次性結構是分解系統的好方法。通過層次化來對操作系統進行測試可以收到較好的效果[2]。
無論采用模塊化基準測試還是層次化方法,最終都是對操作系統接口函數采用參數的組合測試。對魯棒性測試結果進行分析的一種方法是使用維度(Dimensionality)模型。維度有兩種定義:(1)參數維度,它指的是模塊中參數的個數,對于一個軟件模塊而言,參數維度被定義為其變量的個數;(2)魯棒性失效維度,對于引起魯棒性失效的一組特殊參數,那些確實引起失效的參數的個數被定義為魯棒性失效維數。
2.1 維度失效
維度失效分一維失效和多維失效。多維失效的參數一定都是符合條件的系統能夠識別的值。一維失效和多維失效所引發的原因不同,一維失效是參數非法,多維失效是參數組合非法(每個參數都是合法的)。當一維失效用例被保護和屏蔽后,會不會跳轉為多維失效,關鍵是看其參數是否構成組合關系。從對其參數的組合關系的判定上,可以判斷該失效用例是真維失效用例還是變維失效用例[3]。
基于低維度優先的維度模型中失效維度不可能超過參數維度。可能屬于一維失效的某個失效,同時也可能屬于高維失效。對于這種情況,一般把這個失效作為低維失效來對待。同時激發軟件魯棒性失效所需考慮的最少因素取決于魯棒性失效維數,當參數維度為失效維度時,測試結果的觀察最為直觀;當參數維度大于失效維度,測試結果的觀察就不太直觀了。失效維度也可以通過觀察魯棒性測試的響應模式得到。
2.2 失效狀態分析
維度失效狀態分為三類。(1)真維失效指狀態失效條件被屏蔽后,測試用例跳轉到正常狀態;(2)同維失效指狀態失效條件被屏蔽后,失效維度保持不變;(3)變維失效指相同條件下產生失效維度升高。由于基于低維度優先原則,所以由高維度向低維度的失效躍遷跳變不可能發生[3]。魯棒性測試用例的失效維度狀態轉變如圖1所示。
現以Linux系統函數read(fd, buf,count)為實例進行分析,說明上述不同失效維度之間的轉變問題。函數的三個參數取值如表1所示。
假設當參數fd取值errno file,buf取值 Null時,均會產生一維失效。當fd取合法的值,并且buf分配空間小于count時產生一個二維失效。此時,對參數fd取值empty file進行保護屏蔽,則一些測試用例將會通過測試,如read(empty file,8,1);而另一些用例則維持一維失效不變,如read(empty file,Null,1024);還有一些用例將轉化為多維(維度≥2)失效,如read(empty file,1,8)。
實施軟件魯棒性測試的目的是發現所測代碼的健壯性薄弱環節,并予以消除或增強抵抗異常情況的能力。增強代碼健壯性的過程包括:(1)確定軟件的激發健壯性失效的異常值參數,并進行測試;(2)分析測試結果,找出失效原因;(3)寫保護代碼屏蔽導致失效的異常值;(4)把保護代碼與軟件模塊相連接[3]。
1 Linux內核函數測試
Linux操作系統體系結構從底層到頂部的順序依次是:內核(包含內核函數)、系統調用、內建程序(操作系統的命令)。內核函數是內核代碼的組成部分,其調用程序直接運行在內核空間。內核函數一旦出現異常,將立刻對整個操作系統產生影響。系統調用一般對內核函數進行封裝,以此作為內核與用戶空間的接口。當用戶程序使用系統調用時會轉到內核空間,調用結束后又會返回用戶空間。內核函數的測試結果一般分類為:函數錯誤碼返回、異常、內核掛起、工作負載夭折、工作負載結果不正確、工作負載完成[1]。
Linux內核函數魯棒性測試的最終目的是要提高系統的健壯性,需要根據測試結果生成相應的保護代碼。這方面的研究目前處于初期階段。
2 魯棒性維度分析
典型的魯棒性測試包括模塊化基準測試和層次化測試兩種主要方法。模塊化基準測試是對一個系統進行分離測試。它把一個獨立的系統看作是一系列組件的集合,如文件系統、內存系統、外部交互系統、鎖機制和多道程序運作等,另外還通過一個監視器程序來監視和收集測試的結果。而層次化測試是通過定義一個清晰的交互層,使測試和對各種模塊進行測試的執行細節相分離。一些測試可以適用于所有模塊,而另一些可能只適合一個模塊子集。使用層次性結構是分解系統的好方法。通過層次化來對操作系統進行測試可以收到較好的效果[2]。
無論采用模塊化基準測試還是層次化方法,最終都是對操作系統接口函數采用參數的組合測試。對魯棒性測試結果進行分析的一種方法是使用維度(Dimensionality)模型。維度有兩種定義:(1)參數維度,它指的是模塊中參數的個數,對于一個軟件模塊而言,參數維度被定義為其變量的個數;(2)魯棒性失效維度,對于引起魯棒性失效的一組特殊參數,那些確實引起失效的參數的個數被定義為魯棒性失效維數。
2.1 維度失效
維度失效分一維失效和多維失效。多維失效的參數一定都是符合條件的系統能夠識別的值。一維失效和多維失效所引發的原因不同,一維失效是參數非法,多維失效是參數組合非法(每個參數都是合法的)。當一維失效用例被保護和屏蔽后,會不會跳轉為多維失效,關鍵是看其參數是否構成組合關系。從對其參數的組合關系的判定上,可以判斷該失效用例是真維失效用例還是變維失效用例[3]。
基于低維度優先的維度模型中失效維度不可能超過參數維度。可能屬于一維失效的某個失效,同時也可能屬于高維失效。對于這種情況,一般把這個失效作為低維失效來對待。同時激發軟件魯棒性失效所需考慮的最少因素取決于魯棒性失效維數,當參數維度為失效維度時,測試結果的觀察最為直觀;當參數維度大于失效維度,測試結果的觀察就不太直觀了。失效維度也可以通過觀察魯棒性測試的響應模式得到。
2.2 失效狀態分析
維度失效狀態分為三類。(1)真維失效指狀態失效條件被屏蔽后,測試用例跳轉到正常狀態;(2)同維失效指狀態失效條件被屏蔽后,失效維度保持不變;(3)變維失效指相同條件下產生失效維度升高。由于基于低維度優先原則,所以由高維度向低維度的失效躍遷跳變不可能發生[3]。魯棒性測試用例的失效維度狀態轉變如圖1所示。
現以Linux系統函數read(fd, buf,count)為實例進行分析,說明上述不同失效維度之間的轉變問題。函數的三個參數取值如表1所示。
假設當參數fd取值errno file,buf取值 Null時,均會產生一維失效。當fd取合法的值,并且buf分配空間小于count時產生一個二維失效。此時,對參數fd取值empty file進行保護屏蔽,則一些測試用例將會通過測試,如read(empty file,8,1);而另一些用例則維持一維失效不變,如read(empty file,Null,1024);還有一些用例將轉化為多維(維度≥2)失效,如read(empty file,1,8)。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 含風電并網系統的魯棒區間優化調度模型 11次下載
- 開源軟件關鍵開發者類型及協作網絡魯棒性綜述 4次下載
- 一種針對魯棒水印問題的偽造邊信息攻擊手段 2次下載
- 一種可消除噪聲數據影響的魯棒SVM算法 12次下載
- Linux內核GPIO操作函數的詳解分析 28次下載
- 使用光照魯棒實現圖像匹配的方法詳細概述 7次下載
- 魯棒PID控制器設計和仿真研究分析資料說明 14次下載
- 魯棒優化的風儲聯合配置 2次下載
- 電力系統的魯棒性評估 6次下載
- 穩定性與魯棒性的理論基礎 0次下載
- 基于系統辨識的神經網絡魯棒性研究
- 種提高數字水印魯棒性的算法研究
- 魯棒自適應控制綜述A survey of robust ad
- 提高加熱爐溫度控制魯棒性的研究
- 使用頻域LSB水印算法的魯棒性分析
- Linux內核自解壓過程分析 955次閱讀
- 基于魯棒神經架構的設計 501次閱讀
- 均勻B樣條采樣從LiDAR數據中快速且魯棒地估計地平面 668次閱讀
- Linux內核的安全性對Android的影響 1306次閱讀
- Linux內核系統調用概述及實現原理 2244次閱讀
- Linux:QEMU調試內核的步驟 3172次閱讀
- 嵌入式Linux內核的驅動程序開發是怎樣的 1521次閱讀
- 通過聯鎖柵極驅動器來提高三相逆變器的魯棒性 1461次閱讀
- Linux內核與Android的關系 4606次閱讀
- 基于Linux2.6內核的實時性增強方案設計 1021次閱讀
- Linux內核地址映射模型與Linux內核高端內存詳解 3474次閱讀
- 魯棒性和穩定性的區別 24.6w次閱讀
- 魯棒性是什么意思_Robust為什么翻譯成魯棒性 12.7w次閱讀
- 基于Android的Linux內核的電源管理:概述 974次閱讀
- 影響電路魯棒性的設計因素思考 4350次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多