亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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í)別算法
        国产最新进精品视频| 色和尚色视频在线看网站| 色偷偷色噜噜狠狠网站30根| 久久女人精品天堂av影院麻| 天天躁夜夜躁狠狠躁2021a2| 日日摸夜夜添无码无码av| 国产高清在线91福利| 国产免费人成视频在线观看播放播| 脱了老师内裤猛烈进入| 日韩成人极品在线内射3p蜜臀| 连续高潮喷水无码| 亚洲一区二区三区av无| 日本少妇高潮喷水视频| 无码精品人妻一区二区三区影院| 国产精品白浆一区二区免费看| 日韩字幕无线乱码免费| 免费a级毛片无码免费视频首页| 国产在线观看www污污污| 亚洲国产精品久久九色| 亚洲一区二区懂色av| 高潮抽搐潮喷毛片在线播放| 伊伊人成亚洲综合人网7777| 亚洲美女av一区二区| 男女边摸边吃奶边做视频韩国| 亚洲精品无码永久在线观看| 日韩好片一区二区在线看| 国产亚洲成年网址在线观看| 国产剧情av麻豆香蕉精品| 国产喷水1区2区3区咪咪爱av| 国产日韩欧美网站| 亚洲AV秘 片一区二区三区 | 国产在线视频一区二区三区不卡| 隔壁老王国产在线精品| 国产山东熟女48嗷嗷叫| 成年毛片18成年毛片| 国产亚洲精品国产精品| 99久久综合精品五月天| 国产精品综合久久久久久久免费| 国产亚洲专区一区二区| 久久久久av无码免费网| 免费在线视频一区|