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

基于修正條件判定覆蓋的軟件測試技術研究和方法應用

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

岳 海 任慧敏

北京航天自動控制研究所,北京 100854

?

基于修正條件判定覆蓋的軟件測試技術研究和方法應用

岳 海 任慧敏

北京航天自動控制研究所,北京 100854

對在航天軟件測試過程中廣泛應用的修正條件判定覆蓋測試技術進行了說明,并在此基礎上對修正條件判定覆蓋的測試用例設計方法進行舉例描述,最后給出了使用工具對修正條件判定覆蓋測試的應用情況,對相關領域的技術人員有一定的參考意義。

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

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

1 MC/DC的定義和應用范圍

1.1 MC/DC的定義

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

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)程序中每一個入口和出口至少被執行一次;

2)程序中的每一個條件和所有可能的結果至少出現一次;

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

這里條件是指由關系操作符構成,不包含任何邏輯操作符的布爾表達式;判定是指包含邏輯操作符的布爾表達式。如果同一個布爾表達式在一個判定中出現多次,則該表達式也應算作多個條件。

MC/DC的計算方法:

MC/DC用例數=被證明獨立影響判定結果的布爾操作數的數量÷布爾操作數的總數。

1.2 MC/DC應用的范圍

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

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

2) 變量被誤寫為它的否定所導致的錯誤操作;

3) 表達式被誤寫為它的否定所導致的錯誤操作等。

2 MC/DC的用例設計方法

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

2.1 唯一原因法

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

表1 唯一原因法真值表

從真值表中可以看出:

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

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

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

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

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

2.2 屏蔽法

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

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

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

表2 屏蔽法真值表

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

3 基于工具的MC/DC測試應用實踐

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

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

1)TER1=1 即100%語句覆蓋意味著:代碼包含的每條語句都被使用的測試數據執行過,每個函數調用都被執行過;

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

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

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

使用LDRA Testbed輔助進行MC/DC覆蓋測試用例設計和執行分析的基本步驟如下:

1)使用LDRA Testbed對程序進行靜態分析,從程序中抽出布爾表達式的獨立影響條件;

2)基于需求設計測試用例,并根據獨立影響條件通過真值表獲取符合MC/DC準則的測試用例;

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

4)結合覆蓋分析報告獲取MC/DC覆蓋的條件,如有條件遺漏,則根據設計方法適當補充用例并執行。

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

表3 LDRA Testbed覆蓋率信息

4 結論

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

[1] 機載系統和設備合格審定中的軟件考慮[S].美國航空無線電委員會文件RTAC/DO-178B,1992.

[2] 古樂,史九林,趙斌.軟件測試技術概論[M].北京:清華大學出版社,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-),男,陜西人,高級工程師,研究方向為軟件測試;任慧敏(1981-),女,內蒙古人,工程師,主要從事軟件設計與測試技術研究。

TP391.9

A

1006-3242(2012)03-0069-04

猜你喜歡
影響
是什么影響了滑動摩擦力的大小
哪些顧慮影響擔當?
當代陜西(2021年2期)2021-03-29 07:41:24
影響大師
沒錯,痛經有時也會影響懷孕
媽媽寶寶(2017年3期)2017-02-21 01:22:28
擴鏈劑聯用對PETG擴鏈反應與流變性能的影響
中國塑料(2016年3期)2016-06-15 20:30:00
基于Simulink的跟蹤干擾對跳頻通信的影響
如何影響他人
APRIL siRNA對SW480裸鼠移植瘤的影響
對你有重要影響的人
主站蜘蛛池模板: 在线亚洲小视频| 无码高潮喷水专区久久| 国产精品亚欧美一区二区三区| 免费人欧美成又黄又爽的视频 | 九九热精品在线视频| 亚洲中文精品久久久久久不卡| 毛片在线播放网址| 国产中文一区二区苍井空| 激情国产精品一区| 欧美一级高清片欧美国产欧美| 在线观看精品国产入口| 成人毛片在线播放| 伊人色婷婷| 99国产精品免费观看视频| 9966国产精品视频| 国产JIZzJIzz视频全部免费| 永久免费av网站可以直接看的| 波多野结衣无码中文字幕在线观看一区二区 | 91久久偷偷做嫩草影院免费看| 99久久精品国产综合婷婷| 亚洲欧美不卡中文字幕| 3344在线观看无码| 国产麻豆另类AV| 黄网站欧美内射| 欧美成人免费午夜全| 亚洲一区二区三区香蕉| 久久综合伊人 六十路| 2021国产乱人伦在线播放 | 欧美一区二区三区不卡免费| 国模视频一区二区| 国产女人在线| 另类综合视频| 亚洲色图综合在线| 日韩成人在线网站| 日韩欧美网址| 啦啦啦网站在线观看a毛片 | 国产91视频观看| 午夜日韩久久影院| 久久精品波多野结衣| 日本在线免费网站| 欧美翘臀一区二区三区| 日韩亚洲综合在线| a级毛片免费网站| 日韩美女福利视频| 啪啪永久免费av| 国产女人喷水视频| 日韩少妇激情一区二区| 欧美日韩国产系列在线观看| 国产成人a在线观看视频| 国产一区二区三区夜色| 在线日韩一区二区| 欧美69视频在线| 欧美成人精品欧美一级乱黄| 亚洲成人网在线播放| 国产成人三级在线观看视频| 国产精品福利社| 久久频这里精品99香蕉久网址| 欧美另类图片视频无弹跳第一页| 欧美一级视频免费| 欧美日韩成人| 91蜜芽尤物福利在线观看| 亚洲AⅤ波多系列中文字幕 | 亚洲中文字幕无码爆乳| 久久国产成人精品国产成人亚洲| 在线免费无码视频| 国产在线一区视频| 欧美全免费aaaaaa特黄在线| 亚洲h视频在线| 亚洲天堂成人| 91精品啪在线观看国产91| 国产在线视频导航| 欧美日韩成人在线观看 | 男女猛烈无遮挡午夜视频| 91在线中文| 久久久无码人妻精品无码| 国产亚洲视频在线观看| 女人一级毛片| 欧美亚洲日韩中文| 国内精自视频品线一二区| 国产91精品久久| 久久久久青草线综合超碰| 亚洲精品卡2卡3卡4卡5卡区|