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

基于修正條件判定覆蓋的軟件測試技術(shù)研究和方法應(yīng)用

2012-08-12 18:06:25任慧敏
航天控制 2012年3期
關(guān)鍵詞:影響

岳 海 任慧敏

北京航天自動(dòng)控制研究所,北京 100854

?

基于修正條件判定覆蓋的軟件測試技術(shù)研究和方法應(yīng)用

岳 海 任慧敏

北京航天自動(dòng)控制研究所,北京 100854

對(duì)在航天軟件測試過程中廣泛應(yīng)用的修正條件判定覆蓋測試技術(shù)進(jìn)行了說明,并在此基礎(chǔ)上對(duì)修正條件判定覆蓋的測試用例設(shè)計(jì)方法進(jìn)行舉例描述,最后給出了使用工具對(duì)修正條件判定覆蓋測試的應(yīng)用情況,對(duì)相關(guān)領(lǐng)域的技術(shù)人員有一定的參考意義。

軟件測試;修正條件判定覆蓋;最小測試用例集

軟件測試是為了發(fā)現(xiàn)軟件錯(cuò)誤而執(zhí)行程序的過程,是保證軟件質(zhì)量的重要手段。通過軟件測試可以有效的減少軟件缺陷,提高軟件的安全性和可靠性。通常根據(jù)軟件代碼在動(dòng)態(tài)測試執(zhí)行過程中的可見性,又分為黑盒測試和白盒測試。黑盒測試是在程序代碼不可見的情況下,基于規(guī)格說明進(jìn)行功能測試的方法;而白盒測試是在程序代碼可知的情況下,依據(jù)結(jié)構(gòu)設(shè)計(jì)開展的結(jié)構(gòu)或邏輯測試方法。白盒測試又包括程序結(jié)構(gòu)分析、邏輯覆蓋、路徑分析等方法技術(shù),其中修正條件判定覆蓋(Modified Condition/Decision Coverage,以下簡稱MC/DC)就是邏輯覆蓋中比較典型的測試技術(shù),目前被廣泛應(yīng)用于高安全性、高可靠性的關(guān)鍵軟件測試中。

1 MC/DC的定義和應(yīng)用范圍

1.1 MC/DC的定義

MC/DC覆蓋測試,由波音公司提出,并被RTAC/DO-178B(機(jī)載系統(tǒng)和設(shè)備合格審定中的軟件考慮)所采納。對(duì)于關(guān)鍵性的實(shí)時(shí)程序而言,超過半數(shù)的可執(zhí)行代碼可能都與布爾運(yùn)算表達(dá)式有關(guān),表達(dá)式實(shí)現(xiàn)的正確性直接關(guān)系到程序的可靠性和安全性。采用MC/DC可以有效的發(fā)現(xiàn)布爾表達(dá)式中的錯(cuò)誤,并防止測試用例呈指數(shù)上升趨勢(shì),對(duì)它的定義為:

Condition —— a Boolean expression containing no Boolean operators;

Decision —— a Boolean expression composed of conditions and zero or more Boolean operators;

Modified Condition/Decision Coverage —— every point of entry and exit in the program has been invoked at least once,every condition in the program has taken all possible outcomes at least once,and each condition in a decision has been shown to independently affect a decision S outcome by varying just that condition while holding fixed all other possible conditions.[1]

由上可知,在MC/DC的定義中要求:

1)程序中每一個(gè)入口和出口至少被執(zhí)行一次;

2)程序中的每一個(gè)條件和所有可能的結(jié)果至少出現(xiàn)一次;

3)每個(gè)判定中的每個(gè)條件必須能夠獨(dú)立影響判定的結(jié)果,即在其它條件不變的情況下,僅改變這個(gè)條件的值,可使得判定結(jié)果改變[2]。

這里條件是指由關(guān)系操作符構(gòu)成,不包含任何邏輯操作符的布爾表達(dá)式;判定是指包含邏輯操作符的布爾表達(dá)式。如果同一個(gè)布爾表達(dá)式在一個(gè)判定中出現(xiàn)多次,則該表達(dá)式也應(yīng)算作多個(gè)條件。

MC/DC的計(jì)算方法:

MC/DC用例數(shù)=被證明獨(dú)立影響判定結(jié)果的布爾操作數(shù)的數(shù)量÷布爾操作數(shù)的總數(shù)。

1.2 MC/DC應(yīng)用的范圍

MC/DC用在采用高級(jí)語言開發(fā)的具有關(guān)鍵高安全等級(jí)的軟件測試過程中,它可以有效地發(fā)現(xiàn)布爾表達(dá)式中存在的缺陷,主要發(fā)現(xiàn)的軟件問題包括:

1) 操作符使用缺陷,如“與”被誤寫為“或”;

2) 變量被誤寫為它的否定所導(dǎo)致的錯(cuò)誤操作;

3) 表達(dá)式被誤寫為它的否定所導(dǎo)致的錯(cuò)誤操作等。

2 MC/DC的用例設(shè)計(jì)方法

采用MC/DC測試時(shí),首先確定獨(dú)立影響判定結(jié)果的條件,也就是說如果一個(gè)條件能單獨(dú)確定判定的輸出值(判定中的其它條件保持不變),則稱該條件獨(dú)立地影響判定結(jié)果。表明條件獨(dú)立影響判定結(jié)果的兩組測試用例稱為獨(dú)立影響對(duì)。其次,通過真值表進(jìn)行分析,獲取獨(dú)立影響結(jié)構(gòu)的的最小子集即可得到MC/DC的最小用例集。設(shè)計(jì)獨(dú)立影響結(jié)果的最小測試用例集一般有2種方法:唯一原因法和屏蔽法。

2.1 唯一原因法

在唯一原因法中,只有關(guān)心的條件值和判定結(jié)果可以改變,而其他所有可能的條件必須保持固定。固定其他所有可能的條件是為了確保只有該條件能獨(dú)立影響判定結(jié)果。舉例說明真值表的用法,表1是判定“Z=(A∨B)∧(C∨D)”的唯一原因法示例。

表1 唯一原因法真值表

從真值表中可以看出:

1)(2 ,10),(3 ,11),(4 ,12) 表明條件A的獨(dú)立影響;

2)(2 , 6),(3 , 7),(4 , 8) 表明條件B的獨(dú)立影響;

3)(5 , 7),(9 ,11),(13,15) 表明條件C的獨(dú)立影響;

4)(5 , 6),(9 ,10),(13,14) 表明條件D的獨(dú)立影響。

通過判定中所有條件的獨(dú)立影響對(duì)的最小組合可生成該判定的最小測試用例集,因此取交集后可以得到測試用例組(2,5,6,7,10)、(3,7,9,10,11)或(4,8,12,13,15)構(gòu)成判定Z的最小測試用例集。

2.2 屏蔽法

屏蔽法是指對(duì)一個(gè)邏輯操作符的特定輸入能隱藏對(duì)該操作符的其他輸入的影響。如“OR”操作符的“T”輸入可以屏蔽其他所有輸入;對(duì)“AND”操作符的“F”輸入可以屏蔽其他所有輸入;只要對(duì)判定的內(nèi)部邏輯分析表明關(guān)心的條件是唯一影響判定輸出值的條件,那么屏蔽法允許獨(dú)立影響對(duì)中多于一個(gè)輸入值的改變。

對(duì)于例子 Z=(A∨B)∧(C∨D)中為了表明條件A的獨(dú)立影響性,組合條件(Y= (C∨D))必須為“T” ;因?yàn)槿绻鸜為“F”,則判定“Z”的值總為“F”。對(duì)于唯一原因法,在條件A的獨(dú)立影響對(duì)中,條件C和D的值必須是固定的。而在屏蔽法中允許C和D的值變化,只要組合條件Y的結(jié)果為“T”。這樣屏蔽法比唯一原因法會(huì)產(chǎn)生更多的獨(dú)立影響對(duì)。在表1中,測試用例組2和測試用例組10~組12都能配對(duì)表明條件A的獨(dú)立性影響。

通過建立中間變量來替代所有不關(guān)心的變量,也是檢查條件屏蔽的有效方法,如,在查找上述判定中的A或B的獨(dú)立影響對(duì)時(shí),可用Y替代組合條件(C∨D),這樣便可以利用唯一原因法設(shè)計(jì)條件獨(dú)立影響結(jié)果的最小測試用例集。采用真值表獲取MC/DC覆蓋的屏蔽法見表2。

表2 屏蔽法真值表

某些特殊條件下,例如((X<2)‖(Y<5))&&((X<2)‖(Y≥5))是一個(gè)判定,可以表示為Z=(A∨B)∧(C∨D),在這個(gè)布爾表達(dá)式中A和C條件是一樣的,B和D是取反的關(guān)系,如果嚴(yán)格按照MC/DC的定義,不考慮條件之間的關(guān)系和邏輯替代,由于A=C,B=!D的關(guān)系存在,實(shí)際上不存在嚴(yán)格意義上的獨(dú)立對(duì),為了處理這類情況,可以先進(jìn)行邏輯操作符的短路或布爾表達(dá)式化簡,忽略對(duì)最終結(jié)構(gòu)不產(chǎn)生作用的條件,之后采用真值表進(jìn)行分析,并獲取最小測試用例集。

3 基于工具的MC/DC測試應(yīng)用實(shí)踐

目前流行的軟件測試工具中很多都能夠提供MC/DC覆蓋率度量方法,如Cantata++,LDRA Testbed,下面以LDRA Testbed為例,介紹MC/DC方法在軟件測試工具中的應(yīng)用。

對(duì)于高級(jí)語言編制的軟件,LDRA Testbed 有3 級(jí)代碼覆蓋指標(biāo),TER1=1 代表100%的語句覆蓋,TER2=1 代表100%的分支覆蓋,TER3=1 代表100%的LCSAJ 覆蓋(最高級(jí)覆蓋指標(biāo)路徑覆蓋的一種),而MC/DC覆蓋是介于分支覆蓋和LCSAJ 覆蓋之間的一種多條件判定覆蓋指標(biāo)。

1)TER1=1 即100%語句覆蓋意味著:代碼包含的每條語句都被使用的測試數(shù)據(jù)執(zhí)行過,每個(gè)函數(shù)調(diào)用都被執(zhí)行過;

2)TER2=1 即100%分支覆蓋意味著:代碼包含的每條語句都被使用的測試數(shù)據(jù)執(zhí)行過,程序的每個(gè)判斷至少取真分支和假分支一次,即判斷的真假值均曾滿足;

3)100%的MC/DC 覆蓋除了具有上述的所有特征外,還意味著:所有對(duì)結(jié)果獨(dú)立影響的條件都被執(zhí)行過。

對(duì)于只有兩三個(gè)分支條件的多條件判定,用戶可以采用人工的方式設(shè)計(jì)測試用例達(dá)到100%的MC/DC 覆蓋,但是隨著分支條件數(shù)目的增大,人工方式設(shè)計(jì)測試用例條件下就有可能遺漏執(zhí)行某些條件組合或分支,而通過LDRA Testbed工具的輔助則可以避免這一情況。LDRA Testbed在靜態(tài)分析階段會(huì)通過語法分析偵測到程序內(nèi)所有的多條件判定,并且會(huì)產(chǎn)生MC/DC 測試用例計(jì)劃報(bào)告和動(dòng)態(tài)測試覆蓋分析報(bào)告,輔助用戶設(shè)計(jì)適當(dāng)?shù)臏y試用例滿足100%的MC/DC 覆蓋,如果用戶在執(zhí)行完已設(shè)計(jì)的用例后,LDRA Testbed會(huì)根據(jù)用例執(zhí)行的覆蓋情況,給出未被覆蓋的獨(dú)立條件或分支分析報(bào)告,用戶可以根據(jù)實(shí)際運(yùn)行情況適當(dāng)補(bǔ)充用例,達(dá)到測試覆蓋要求。

使用LDRA Testbed輔助進(jìn)行MC/DC覆蓋測試用例設(shè)計(jì)和執(zhí)行分析的基本步驟如下:

1)使用LDRA Testbed對(duì)程序進(jìn)行靜態(tài)分析,從程序中抽出布爾表達(dá)式的獨(dú)立影響條件;

2)基于需求設(shè)計(jì)測試用例,并根據(jù)獨(dú)立影響條件通過真值表獲取符合MC/DC準(zhǔn)則的測試用例;

3)結(jié)合源代碼執(zhí)行測試用例,并分析測試結(jié)果,如果結(jié)果為“FALSE”,則說明軟件存在缺陷;

4)結(jié)合覆蓋分析報(bào)告獲取MC/DC覆蓋的條件,如有條件遺漏,則根據(jù)設(shè)計(jì)方法適當(dāng)補(bǔ)充用例并執(zhí)行。

表3為某飛行控制軟件部分功能模塊的覆蓋率信息,其中最后一列為MC/DC覆蓋率情況。

表3 LDRA Testbed覆蓋率信息

4 結(jié)論

MC/DC覆蓋測試具有較強(qiáng)的邏輯覆蓋強(qiáng)度,是對(duì)分支條件組合覆蓋的一種非常實(shí)用的折衷,通過MC/DC覆蓋測試可以更充分地測試每個(gè)獨(dú)立的子條件,消除子條件中可能存在的錯(cuò)誤,達(dá)到用戶的需求和爭取較高的性價(jià)比。MC/DC覆蓋與分支條件組合覆蓋相比,能夠通過真值表等合理的用例設(shè)計(jì)方法,在滿足測試覆蓋指標(biāo)要求的前提下設(shè)計(jì)出具有較少測試用例的用例集,并有效發(fā)現(xiàn)軟件中存在的邏輯缺陷。由于MC/DC覆蓋具有更強(qiáng)的覆蓋強(qiáng)度,且可有效防止測試用例隨邏輯復(fù)雜度呈指標(biāo)上升的優(yōu)勢(shì),目前已被廣泛地應(yīng)用到我國航空航天高級(jí)語言編制的安全苛刻性軟件的測試中,成為檢出軟件錯(cuò)誤保證軟件質(zhì)量的有效而重要的測試方法。

[1] 機(jī)載系統(tǒng)和設(shè)備合格審定中的軟件考慮[S].美國航空無線電委員會(huì)文件RTAC/DO-178B,1992.

[2] 古樂,史九林,趙斌.軟件測試技術(shù)概論[M].北京:清華大學(xué)出版社,2004.

The Research on the Method of Software Testing Based on MC/DC

YUE Hai REN Huimin

Beijing Aerospace Automatic Control Institute, Beijing 100854, China

Thedesignandeditingtestcasesarethemostimportantstepintheprocessofsoftwaretesting.Asoftwaretestingmethodbasedonmodifiedcondition/decisioncoveragecriterionispresentedinthispaper.AndanexamplegivenshowstwodifferentMC/DCcasedesignideasforacomplicatedsituation.AreasonabledesignisconcludedforthissituationwhichiscombinedwiththecoverageanalysisresultbyLDRAtest-bed.

Softwaretesting;ModifiedCondition/DecisionCoverage;Minimaltestcasesset

2011-09-26

岳 海(1973-),男,陜西人,高級(jí)工程師,研究方向?yàn)檐浖y試;任慧敏(1981-),女,內(nèi)蒙古人,工程師,主要從事軟件設(shè)計(jì)與測試技術(shù)研究。

TP391.9

A

1006-3242(2012)03-0069-04

猜你喜歡
影響
是什么影響了滑動(dòng)摩擦力的大小
哪些顧慮影響擔(dān)當(dāng)?
影響大師
沒錯(cuò),痛經(jīng)有時(shí)也會(huì)影響懷孕
媽媽寶寶(2017年3期)2017-02-21 01:22:28
擴(kuò)鏈劑聯(lián)用對(duì)PETG擴(kuò)鏈反應(yīng)與流變性能的影響
中國塑料(2016年3期)2016-06-15 20:30:00
基于Simulink的跟蹤干擾對(duì)跳頻通信的影響
如何影響他人
APRIL siRNA對(duì)SW480裸鼠移植瘤的影響
對(duì)你有重要影響的人
主站蜘蛛池模板: 在线观看国产小视频| 国产毛片片精品天天看视频| 色综合中文字幕| 国产导航在线| 久久这里只精品国产99热8| 区国产精品搜索视频| 在线播放国产一区| 精品久久久久成人码免费动漫| 高清无码手机在线观看| 国产亚洲欧美另类一区二区| 日韩免费成人| 久久九九热视频| 国产在线视频福利资源站| 中文字幕日韩视频欧美一区| 日本欧美精品| 9啪在线视频| 日韩人妻少妇一区二区| 欧美精品另类| 四虎永久免费地址在线网站| 国产第一页屁屁影院| 一本大道AV人久久综合| 99精品国产电影| 91在线国内在线播放老师| 国产精品极品美女自在线| 日本在线国产| 无码网站免费观看| 欧美另类精品一区二区三区| 日本午夜影院| 国产精品入口麻豆| 色综合久久88色综合天天提莫| 亚洲一级色| 免费三A级毛片视频| 91久久夜色精品国产网站| 亚洲欧美成人影院| 国产精品国产主播在线观看| 99热国产这里只有精品9九| 亚洲精品制服丝袜二区| 亚洲精品国产综合99久久夜夜嗨| 日韩毛片在线视频| 日韩不卡高清视频| 色一情一乱一伦一区二区三区小说| 无码一区中文字幕| 精品国产自| 动漫精品中文字幕无码| 97久久免费视频| 国产福利拍拍拍| 日韩精品毛片| 久久永久视频| 国产精品人人做人人爽人人添| 在线无码av一区二区三区| 成人年鲁鲁在线观看视频| 看看一级毛片| 亚洲精品图区| 精品伊人久久久香线蕉| 亚洲二区视频| 国产激情无码一区二区APP| 婷婷丁香在线观看| 久久精品人人做人人爽电影蜜月| 亚洲国产高清精品线久久| 久草中文网| 色婷婷视频在线| 波多野结衣一区二区三区四区视频 | 国内精品免费| 色综合久久综合网| 亚洲成人播放| 国产精品无码制服丝袜| 欧美高清国产| 亚洲男女在线| 免费99精品国产自在现线| 国产一区二区福利| 19国产精品麻豆免费观看| 亚洲国产午夜精华无码福利| 永久免费无码成人网站| 久久亚洲AⅤ无码精品午夜麻豆| 国产a网站| 国产一级片网址| 国产午夜福利片在线观看| 国产欧美性爱网| 欧美专区日韩专区| 亚洲免费三区| 国产精品久久久久久搜索| 久久毛片基地|