999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux內(nèi)核函數(shù)魯棒性關(guān)聯(lián)測(cè)試

2010-05-14 11:58:00王立榮
關(guān)鍵詞:關(guān)聯(lián)

王立榮,何 煒

(中國(guó)船舶重工集團(tuán)公司江蘇自動(dòng)化研究所,江蘇 連云港 222006)

軟件(或軟件構(gòu)件)魯棒性是衡量軟件在異常輸入和應(yīng)力環(huán)境條件下保持正常工作能力的一種度量。魯棒性測(cè)試主要用于測(cè)試操作系統(tǒng)、應(yīng)用程序、COTS軟件、構(gòu)件及服務(wù)協(xié)議等軟件和協(xié)議的可靠性及健壯性。在操作系統(tǒng)和安全關(guān)鍵軟件等一些重要軟件的測(cè)試上尤為重要。對(duì)于系統(tǒng)魯棒性的評(píng)價(jià)一般有基于測(cè)量的方法和基于故障注入的方法,近年來(lái)提出了魯棒性基準(zhǔn)程序方法(Robustness Benchmarking)[1]。魯棒性基準(zhǔn)程序(Robustness Benchmark)由一組健壯性測(cè)試用例組成。

實(shí)施軟件魯棒性測(cè)試的目的是發(fā)現(xiàn)所測(cè)代碼的健壯性薄弱環(huán)節(jié),并予以消除或增強(qiáng)抵抗異常情況的能力。增強(qiáng)代碼健壯性的過(guò)程包括:(1)確定軟件的激發(fā)健壯性失效的異常值參數(shù),并進(jìn)行測(cè)試;(2)分析測(cè)試結(jié)果,找出失效原因;(3)寫(xiě)保護(hù)代碼屏蔽導(dǎo)致失效的異常值;(4)把保護(hù)代碼與軟件模塊相連接[3]。

1 Linux內(nèi)核函數(shù)測(cè)試

Linux操作系統(tǒng)體系結(jié)構(gòu)從底層到頂部的順序依次是:內(nèi)核(包含內(nèi)核函數(shù))、系統(tǒng)調(diào)用、內(nèi)建程序(操作系統(tǒng)的命令)。內(nèi)核函數(shù)是內(nèi)核代碼的組成部分,其調(diào)用程序直接運(yùn)行在內(nèi)核空間。內(nèi)核函數(shù)一旦出現(xiàn)異常,將立刻對(duì)整個(gè)操作系統(tǒng)產(chǎn)生影響。系統(tǒng)調(diào)用一般對(duì)內(nèi)核函數(shù)進(jìn)行封裝,以此作為內(nèi)核與用戶(hù)空間的接口。當(dāng)用戶(hù)程序使用系統(tǒng)調(diào)用時(shí)會(huì)轉(zhuǎn)到內(nèi)核空間,調(diào)用結(jié)束后又會(huì)返回用戶(hù)空間。內(nèi)核函數(shù)的測(cè)試結(jié)果一般分類(lèi)為:函數(shù)錯(cuò)誤碼返回、異常、內(nèi)核掛起、工作負(fù)載夭折、工作負(fù)載結(jié)果不正確、工作負(fù)載完成[1]。

Linux內(nèi)核函數(shù)魯棒性測(cè)試的最終目的是要提高系統(tǒng)的健壯性,需要根據(jù)測(cè)試結(jié)果生成相應(yīng)的保護(hù)代碼。這方面的研究目前處于初期階段。

2 魯棒性維度分析

典型的魯棒性測(cè)試包括模塊化基準(zhǔn)測(cè)試和層次化測(cè)試兩種主要方法。模塊化基準(zhǔn)測(cè)試是對(duì)一個(gè)系統(tǒng)進(jìn)行分離測(cè)試。它把一個(gè)獨(dú)立的系統(tǒng)看作是一系列組件的集合,如文件系統(tǒng)、內(nèi)存系統(tǒng)、外部交互系統(tǒng)、鎖機(jī)制和多道程序運(yùn)作等,另外還通過(guò)一個(gè)監(jiān)視器程序來(lái)監(jiān)視和收集測(cè)試的結(jié)果。而層次化測(cè)試是通過(guò)定義一個(gè)清晰的交互層,使測(cè)試和對(duì)各種模塊進(jìn)行測(cè)試的執(zhí)行細(xì)節(jié)相分離。一些測(cè)試可以適用于所有模塊,而另一些可能只適合一個(gè)模塊子集。使用層次性結(jié)構(gòu)是分解系統(tǒng)的好方法。通過(guò)層次化來(lái)對(duì)操作系統(tǒng)進(jìn)行測(cè)試可以收到較好的效果[2]。

無(wú)論采用模塊化基準(zhǔn)測(cè)試還是層次化方法,最終都是對(duì)操作系統(tǒng)接口函數(shù)采用參數(shù)的組合測(cè)試。對(duì)魯棒性測(cè)試結(jié)果進(jìn)行分析的一種方法是使用維度(Dimensionality)模型。維度有兩種定義:(1)參數(shù)維度,它指的是模塊中參數(shù)的個(gè)數(shù),對(duì)于一個(gè)軟件模塊而言,參數(shù)維度被定義為其變量的個(gè)數(shù);(2)魯棒性失效維度,對(duì)于引起魯棒性失效的一組特殊參數(shù),那些確實(shí)引起失效的參數(shù)的個(gè)數(shù)被定義為魯棒性失效維數(shù)。

2.1 維度失效

維度失效分一維失效和多維失效。多維失效的參數(shù)一定都是符合條件的系統(tǒng)能夠識(shí)別的值。一維失效和多維失效所引發(fā)的原因不同,一維失效是參數(shù)非法,多維失效是參數(shù)組合非法(每個(gè)參數(shù)都是合法的)。當(dāng)一維失效用例被保護(hù)和屏蔽后,會(huì)不會(huì)跳轉(zhuǎn)為多維失效,關(guān)鍵是看其參數(shù)是否構(gòu)成組合關(guān)系。從對(duì)其參數(shù)的組合關(guān)系的判定上,可以判斷該失效用例是真維失效用例還是變維失效用例[3]。

基于低維度優(yōu)先的維度模型中失效維度不可能超過(guò)參數(shù)維度??赡軐儆谝痪S失效的某個(gè)失效,同時(shí)也可能屬于高維失效。對(duì)于這種情況,一般把這個(gè)失效作為低維失效來(lái)對(duì)待。同時(shí)激發(fā)軟件魯棒性失效所需考慮的最少因素取決于魯棒性失效維數(shù),當(dāng)參數(shù)維度為失效維度時(shí),測(cè)試結(jié)果的觀察最為直觀;當(dāng)參數(shù)維度大于失效維度,測(cè)試結(jié)果的觀察就不太直觀了。失效維度也可以通過(guò)觀察魯棒性測(cè)試的響應(yīng)模式得到。

2.2 失效狀態(tài)分析

維度失效狀態(tài)分為三類(lèi)。(1)真維失效指狀態(tài)失效條件被屏蔽后,測(cè)試用例跳轉(zhuǎn)到正常狀態(tài);(2)同維失效指狀態(tài)失效條件被屏蔽后,失效維度保持不變;(3)變維失效指相同條件下產(chǎn)生失效維度升高。由于基于低維度優(yōu)先原則,所以由高維度向低維度的失效躍遷跳變不可能發(fā)生[3]。魯棒性測(cè)試用例的失效維度狀態(tài)轉(zhuǎn)變?nèi)鐖D1所示。

現(xiàn)以Linux系統(tǒng)函數(shù)read(fd, buf,count)為實(shí)例進(jìn)行分析,說(shuō)明上述不同失效維度之間的轉(zhuǎn)變問(wèn)題。函數(shù)的三個(gè)參數(shù)取值如表1所示。

假設(shè)當(dāng)參數(shù)fd取值errno file,buf取值 Null時(shí), 均會(huì)產(chǎn)生一維失效。當(dāng)fd取合法的值,并且buf分配空間小于count時(shí)產(chǎn)生一個(gè)二維失效。此時(shí),對(duì)參數(shù)fd取值empty file進(jìn)行保護(hù)屏蔽,則一些測(cè)試用例將會(huì)通過(guò)測(cè)試,如 read(empty file,8,1);而另一些用例則維持一維失效不變,如 read(empty file,Null,1024);還有一些用例將轉(zhuǎn)化為多維(維度≥2)失效,如read(empty file,1,8)。

圖1 失效維度狀態(tài)轉(zhuǎn)變圖

表1 read函數(shù)參數(shù)組合情況

3 魯棒性關(guān)聯(lián)測(cè)試

當(dāng)參數(shù)維度等于失效維度時(shí),很容易看出是哪些參數(shù)失效。而測(cè)試時(shí)維度的跳變,會(huì)給魯棒性測(cè)試的分析帶來(lái)困難,會(huì)影響測(cè)試覆蓋率的問(wèn)題,還牽扯到測(cè)試用例的增加[4]。在魯棒性測(cè)試中可以利用參數(shù)的關(guān)聯(lián)性進(jìn)行測(cè)試。將傳統(tǒng)的組合測(cè)試法分為兩步:關(guān)聯(lián)性測(cè)試和非關(guān)聯(lián)性測(cè)試。魯棒性關(guān)聯(lián)測(cè)試的流程如圖2所示。

圖2 魯棒性關(guān)聯(lián)測(cè)試流程圖

在進(jìn)行魯棒性關(guān)聯(lián)測(cè)試時(shí),首先進(jìn)行參數(shù)關(guān)聯(lián)性測(cè)試,先把待測(cè)函數(shù)中有互相作用的參數(shù)進(jìn)行包裝,在測(cè)試中人為構(gòu)造參數(shù)維度等于失效維度的情況。例如,函數(shù) f(A,B,C,D,E)中,參數(shù) A、B、C 有關(guān)聯(lián)。 首先將參數(shù)E和參數(shù)F取合法輸入值,然后測(cè)試參數(shù) A、B、C的所有組合。若有失效,必定是一維失效或者三維失效。由于參數(shù)維度等于失效維度,通過(guò)分析測(cè)試結(jié)果就可以寫(xiě)出保護(hù)代碼。在對(duì)函數(shù)進(jìn)行了充分的關(guān)聯(lián)測(cè)試后,再進(jìn)行參數(shù)非關(guān)聯(lián)性測(cè)試。取出上例中參數(shù)A、B、C的一個(gè)合法組合,對(duì)參數(shù)E和參數(shù)F的所有用例分別進(jìn)行測(cè)試。若有失效,必定是一維失效,這樣也很容易分析測(cè)試結(jié)果和寫(xiě)出保護(hù)代碼。

通過(guò)對(duì)函數(shù)的參數(shù)關(guān)聯(lián)性進(jìn)行測(cè)試可得出結(jié)論,只有當(dāng)函數(shù)所有參數(shù)都發(fā)生關(guān)聯(lián)作用時(shí),魯棒性關(guān)聯(lián)測(cè)試所需用例的個(gè)數(shù)才會(huì)等于傳統(tǒng)組合測(cè)試所需的用例個(gè)數(shù)[5]。所以,在覆蓋率不變的情況下,若采用魯棒性關(guān)聯(lián)測(cè)試法,可以有效減少測(cè)試用例個(gè)數(shù),并且還能夠消除維度失效跳變帶來(lái)的影響。

4 測(cè)試實(shí)例

實(shí)際測(cè)試中測(cè)試環(huán)境為DELL的DIMENSION 4700,操作系統(tǒng)為Redhat Linux 8.0,系統(tǒng)內(nèi)核為 2.2.24。實(shí)測(cè)以read()函數(shù)參數(shù)組合表為例,其表中組合測(cè)試用例的個(gè)數(shù)為5×5×5=125個(gè)。進(jìn)行關(guān)聯(lián)測(cè)試時(shí)先對(duì)其參數(shù)的關(guān)聯(lián)性進(jìn)行分析,通過(guò)分析可以得知它的三個(gè)參數(shù)中只有buf和count有關(guān)聯(lián)。

實(shí)測(cè)中首先進(jìn)行關(guān)聯(lián)性測(cè)試,對(duì)read()函數(shù)的參數(shù)fd取正常值,測(cè)試參數(shù) buf和count的所有組合,測(cè)試結(jié)果如表2所示。共使用了25個(gè)測(cè)試用例。

表2 函數(shù)read參數(shù)關(guān)聯(lián)性測(cè)試表

在對(duì)上述測(cè)試結(jié)果進(jìn)行屏蔽失效后,轉(zhuǎn)入第二步,對(duì)參數(shù)fd進(jìn)行非關(guān)聯(lián)性測(cè)試,即針對(duì) fd與(buf+count)的組合進(jìn)行測(cè)試。對(duì)buf與count的組合取合法值后,針對(duì)參數(shù)fd的所有取值分別測(cè)試,這時(shí)只會(huì)發(fā)生一維失效,測(cè)試用例個(gè)數(shù)是5個(gè),其結(jié)果如表3所示。

表3 函數(shù)read參數(shù)非關(guān)聯(lián)性測(cè)試表

由上述測(cè)試實(shí)例可見(jiàn),傳統(tǒng)組合測(cè)試法需要125個(gè)用例,而關(guān)聯(lián)測(cè)試只需要30個(gè)用例,兩者最終完成的函數(shù)測(cè)試覆蓋率相同。由此可見(jiàn),關(guān)聯(lián)測(cè)試是對(duì)傳統(tǒng)的組合測(cè)試的一種有效改進(jìn)。傳統(tǒng)的參數(shù)組合測(cè)試忽略了參數(shù)之間的關(guān)系,結(jié)果導(dǎo)致測(cè)試用例大量增加,覆蓋率卻有可能降低,同時(shí)還由于產(chǎn)生了維度跳轉(zhuǎn)而給測(cè)試增加了困難[6]。采用關(guān)聯(lián)測(cè)試可以避免上述問(wèn)題的產(chǎn)生。使用關(guān)聯(lián)測(cè)試時(shí)對(duì)參數(shù)之間關(guān)系進(jìn)行分析,還有可能發(fā)現(xiàn)傳統(tǒng)的組合測(cè)試沒(méi)有測(cè)到的失效用例,這樣關(guān)聯(lián)測(cè)試的覆蓋率相對(duì)于傳統(tǒng)組合測(cè)試來(lái)說(shuō),只會(huì)提高而不會(huì)降低,這對(duì)于Linux內(nèi)核函數(shù)的魯棒性提升十分有效。

理論分析和實(shí)例應(yīng)用的結(jié)果表明,在Linux內(nèi)核函數(shù)的魯棒性測(cè)試中采用關(guān)聯(lián)測(cè)試來(lái)代替?zhèn)鹘y(tǒng)的組合測(cè)試,可以在保證測(cè)試覆蓋率的同時(shí),使所需的測(cè)試用例大大減少,而且函數(shù)中相關(guān)聯(lián)的參數(shù)個(gè)數(shù)越少優(yōu)勢(shì)越明顯?,F(xiàn)實(shí)中Linux內(nèi)核函數(shù)的參數(shù)之間關(guān)聯(lián)性較少,因此在其魯棒性測(cè)試中關(guān)聯(lián)測(cè)試方法具有很好的實(shí)際應(yīng)用價(jià)值。

[1]劉利枚,汪文勇,唐科.嵌入式軟件測(cè)試方法與技術(shù)[J].計(jì)算機(jī)與現(xiàn)代化,2005(4)∶124-126.

[2]趙則章,江建慧.操作系統(tǒng)健壯性測(cè)試方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(7)∶93-97.

[3]劉洪濤,江建慧,趙則章.軟件健壯性的包裹測(cè)試[J].計(jì)算機(jī)工程與科學(xué),2005,27(4)∶19-21,24.

[4]周章慧,王同洋,吳俊軍,等.基于有限狀態(tài)機(jī)的健壯性測(cè)試研究[J].計(jì)算機(jī)工程與科學(xué),2009,31(5)∶93-97.

[5]江建慧.嵌入式系統(tǒng)性能評(píng)估的基準(zhǔn)程序方法[J].機(jī)械與 電 子,2002(4)∶43-48.

[6]鄭人杰.計(jì)算機(jī)軟件測(cè)試技術(shù)[M].北京∶清華大學(xué)出版社,1990.

猜你喜歡
關(guān)聯(lián)
不懼于新,不困于形——一道函數(shù)“關(guān)聯(lián)”題的剖析與拓展
“苦”的關(guān)聯(lián)
船山與宋學(xué)關(guān)聯(lián)的再探討
原道(2020年2期)2020-12-21 05:47:06
“一帶一路”遞進(jìn),關(guān)聯(lián)民生更緊
新制度關(guān)聯(lián)、組織控制與社會(huì)組織的倡導(dǎo)行為
奇趣搭配
基于廣義關(guān)聯(lián)聚類(lèi)圖的分層關(guān)聯(lián)多目標(biāo)跟蹤
智趣
讀者(2017年5期)2017-02-15 18:04:18
探討藏醫(yī)學(xué)與因明學(xué)之間的關(guān)聯(lián)
西藏科技(2016年5期)2016-09-26 12:16:39
GPS異常監(jiān)測(cè)數(shù)據(jù)的關(guān)聯(lián)負(fù)選擇分步識(shí)別算法
主站蜘蛛池模板: 九九九国产| 国产精品永久免费嫩草研究院| 久青草免费视频| 综合网天天| 国产夜色视频| 免费国产一级 片内射老| 伊在人亚洲香蕉精品播放| 午夜激情婷婷| 亚洲精品天堂在线观看| 中文字幕伦视频| 思思99思思久久最新精品| 亚洲第一视频区| 波多野结衣一二三| 亚洲精品欧美重口| 久久久久人妻一区精品色奶水| 99热这里只有精品久久免费| 日韩色图区| 综合天天色| 国产情精品嫩草影院88av| 欧美国产在线一区| 97国产精品视频自在拍| 凹凸国产熟女精品视频| 亚洲va在线∨a天堂va欧美va| 午夜一区二区三区| 免费无遮挡AV| 中国毛片网| 亚洲欧美综合精品久久成人网| 亚洲国产成人综合精品2020| 一本无码在线观看| 亚洲天堂2014| 国产日韩欧美在线播放| 亚洲无码免费黄色网址| 国产精品女熟高潮视频| 国产日韩丝袜一二三区| 国产成人欧美| 天天爽免费视频| 亚洲啪啪网| 国产91麻豆免费观看| 精品国产黑色丝袜高跟鞋 | 一本久道久综合久久鬼色| 日韩精品无码免费专网站| 国产精品视频系列专区| 看国产一级毛片| 亚洲欧美不卡中文字幕| 好紧好深好大乳无码中文字幕| 青青青视频91在线 | 亚洲欧美一区二区三区蜜芽| 久久香蕉国产线看精品| 亚洲小视频网站| 亚洲人成网站日本片| 久久鸭综合久久国产| 亚洲一区二区日韩欧美gif| 亚洲色成人www在线观看| 欧美精品成人一区二区在线观看| 日韩av无码DVD| 国外欧美一区另类中文字幕| 国产丝袜精品| 无码免费视频| 波多野结衣在线一区二区| 久久一本日韩精品中文字幕屁孩| 午夜福利在线观看成人| 欧美成在线视频| www.99在线观看| 亚洲欧洲国产成人综合不卡| 国产免费羞羞视频| 日韩人妻少妇一区二区| 国产精品久久久精品三级| 国产成人高清在线精品| aa级毛片毛片免费观看久| 免费一看一级毛片| 亚洲va欧美va国产综合下载| 青青青国产视频手机| 欧美成人精品一区二区| 直接黄91麻豆网站| 国产三级成人| 伊人福利视频| 国产一区二区人大臿蕉香蕉| 中文字幕亚洲第一| AV老司机AV天堂| 久久久久亚洲AV成人人电影软件| 国产午夜无码专区喷水| 久久99国产综合精品1|