條件判定覆蓋和修正條件判定覆蓋_第1頁
條件判定覆蓋和修正條件判定覆蓋_第2頁
條件判定覆蓋和修正條件判定覆蓋_第3頁
條件判定覆蓋和修正條件判定覆蓋_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、文章的目的在于通過比較發現條件判定覆蓋(即Condition/Decision Coverage C/DC)和修正條件判定覆蓋(Modified Condition/Decision Coverage即MC/DC)的差異.軟件測試是一項大型的軟件工程中必不可少且非常重要的一部分,軟件測試使用兩種測試方法:靜態測試和動態測試. C/DC和MC/DC就是白盒測試方法中的邏輯覆蓋方法中的兩個成員.目前這兩種方法在軟件測試中被廣泛應用,尤其是MC/DC更是被很多大型軟件測試(如飛行控制軟件的測試)所應用2 對C/DC和MC/DC的描述2.1 C/DC的定義C/DC是Condition/Decision

2、 Coverage的縮寫,含義是條件判定覆蓋.對它的定義為:Condition/Decision Coverageit combines the requirements for decision coverage with those for condition coverage.That is,there must be suficient test cases to toggle the decision outcome between true and false and to toggle each condition value between true and false.if

3、A and (B or C) then? else?具有3個條件的真值表 中選擇它的測試集為 TTF,FFT分析如下:當 A,B和C的值依次分別取T,T,F時判定A and (B or C)的值為T;當將A,B和C的值依次分別取F,F,T時,判定A and (B or C)的值為F;在測試中,3個條件A,B,C的所有可能取值T、F,都被測試,而判定 A and (B or C)的所有可能取值T和F也都被執行了一次,由此說明此測試集滿足C/DC方法的要求,是C/DC方法的其中一個測試集合.2.2 MC/DC的定義MC/DC是Modified Condition/Decision Coverage

4、(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

5、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.由上可知:在MC/DC這種測試方法中,條件表示不含有布爾操作符號的布爾表達式;判定表示由條件和零或者很多布爾操

6、作符號所組成的一個布爾表達式;而修正條件判定覆蓋方法要求在一個程序中每一種輸入輸出至少得出現一次,在程序中的每一個條件必須產生所有可能的輸出結果至少一次,并且每一個判定中的每一個條件必須能夠獨立影響一個判定的輸出,即在其他條件不變的前提下僅改變這個條件的值,而使判定結果改變.與上文同樣的例子:if and (B or C) then? else? 這條語句,A and (B or C)是一個判定,A,B,C均為條件,使用MC/DC方法找出分別對應此3個條件的測試集中有4組元素為:TTF, F,TFT,FFT.方法如下:測試元素均從表1中選取,保持A和B的值不變測試元素TFF和TFT可以改變C條

7、件的值和整個表達式的結果(F變成了T);而保持A和C的值不變測試元素TTF和TFT可以改變B條件的值和整個表達式的執行結果(T變成了F);而當保持B和C的值不變測試元素TFT和FFT可以改變A條件的值和整個表達式的執行結果(T變成了F).這個測試集完全滿足MC/DC的要求即當鎖定其它的條件保持不變,而改變判定中一項條件的值,必然引起整個表達式執行的變化.3 C/DC和MC/DC之間的差異3.1選取兩種方法的條件不同當以下的需求在程序測試中遇到時,需要考慮用MC/DC方法:每一個程序模塊的輸入和輸出點都要考慮至少出現1次,每個程序的判定到所有可能的結果值要至少實現1次;程序的判定被分解為通過邏輯

8、操作符(AND,OR,etc.)連接為BOOL條件,每一個條件對于判定的結果值是獨立的,或者說單個條件的變化將導致判定的最后變化.而對于C/DC方法而言,在程序需要測試時,由于它只要求“判定中每個條件的所有可能取值至少執行一次,同時每個判定的所有可能判定結果至少執行一次”,要求比較簡單,所以它可以與其他覆蓋方法一樣適合于使用在絕大多數的程序的測試中.3.2 兩者的測試集不同The MC/DC criterion enhances the condition/decision coverage criterion by requiring that each condition be shown

9、 to independently affect the outcome of the decision.MC/DC方法雖是在C/DC方法上的改進,但是兩者在尋找測試集時是不同的,原因在于MC/DC方法要求對于判定中的所有條件當固定其他條件的值時每一個已選定的條件必須能夠獨立地影響一個判定的輸出.在以上的舉例中:if A and (B or C) then?else? 這條語句上文已找出用C/DC方法其一個測試集合為TTF,FFT,同時如果采用MC/DC方法其測試集合可為TTF,TFF,TFT,FFT.對比兩個測試集可發現測試集中的元素是不同的,而且元素組數也是不同(C/DC方法有2組,MC/

10、DC方法有4組).原因是:對于C/DC方法來說,不管條件個數有多少,一個測試集中的元素組數最少可以為2個.推導如下:各個條件的取值只有兩種T,F,從每個條件的取值中取出一個將它們組合起來形成一組元素,并使得這組元素分別一一對應相應條件而代人整個判定得出的最后結果值為T;然后從剩下的各個條件的取值中組合形成另一組元素并使得元素中的各個值分別對應相應條件代人整個判定后能使表達式的結果值為F(這兩種情況是一定可以從真值表中找到的),這樣就達到了C/DC取測試集的要求,即各個條件的可能取值T和F都必須取到,且判定結果的可能取值T,F也必須實現.而另外對于MC/DC方法來說如果在一個表達式中N個條件只出

11、現一次,那么一個測試集中的元素組數為N+1個.這句話說明測試集中的元素組數與表達式中的條件個數有關.3.3兩者在測試中的覆蓋面不同對于MC/DC方法,它的覆蓋面是要大于C/DC方法的,也就是指在測試一個程序或一個軟件時,MC/DC能比C/DC找到更多的錯誤之處,原因就在于MC/DC的測試集檢測出錯誤發生的概率比較高.再舉一個很簡單的例子:對于這條If A or B then? else?語句,由文章的前部可知使用C/DC方法它的測試集可為TT,FF;可是如果在這條語句中的操作符號是筆誤(由and一時大意寫成了or ),那么即使采用了TT,FF來測試仍然檢測不到錯誤(因為T and T = T

12、or T,且F and F = F or F,即無論將測試集中的哪組元素代人到兩個判定中? V ? ,? ? ,兩者所得到的判定結果相同),由此可說明雖然使用了判定條件覆蓋(C/DC)準則來測試語句,邏輯表達式中的有些錯誤仍然不能檢測出來;可是如果大家用MC/DC方法,由它的規則可得測試集合為FF,TF,FT ,只需使用其中的一組數據TF,就可知道其中發生了錯誤.原因是:T or F值為T,而 T and F值為F,T and F語句的判定結果本來應該得到F卻得到了T,由此可說明中間的操作符號發生了錯誤,這樣就檢測到了錯誤.所以這個例子說明MC/DC的測試集合的覆蓋面要大于C/DC方法,若用戶

13、對于測試程序的質量要求較高,而不考慮其他因素,那么可以使用MC/DC的方法來測試自己的大型軟件或單個程序.3.4兩者的用途不同由于MC/DC在尋找測試集時的要求比C/DC要嚴格,所以相比較下在測試時為了尋找出測試集合所花費的時間多,由此而引起的人力、物力、財力三重開銷也會直接攀升,但是MC/DC測試錯誤的準確率卻是特別地高,因此MC/DC適合那些大型的并且要求測試非常精確的軟件測試所用.為達到用戶的目的和一個較高的信價比,近年來MC/DC方法主要應用于大型的航空航天軟件程序的測試上.對比而言C/DC方法要求較低,開銷少,而覆蓋率也低,所以比較適合對于例如C+,JAVA等小型的程序的貝4試當中使

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論