條件判定覆蓋和修正條件判定覆蓋_第1頁(yè)
條件判定覆蓋和修正條件判定覆蓋_第2頁(yè)
條件判定覆蓋和修正條件判定覆蓋_第3頁(yè)
條件判定覆蓋和修正條件判定覆蓋_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、文章的目的在于通過比較發(fā)現(xiàn)條件判定覆蓋(即Condition/Decision CoverageC/DC)和修正條件判定覆蓋(Modified Condition/Decision Coverage 即 MC/DC) 的差異.軟件迎式是一項(xiàng)大型的軟件工程中必不可少且非常重要的一部分,軟件 測(cè)試使用兩種測(cè)試方法:靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試.C/DC和MC/DCft是白盒測(cè)試方法中的邏輯覆蓋方法中的兩個(gè)成員 .目前這兩種 方法在軟件測(cè)試中被廣泛應(yīng)用,尤其是 MC/DCM是被很多大型軟件測(cè)試(如飛行 控制軟件的測(cè)試)所應(yīng)用2對(duì)C/DC和MC/DC勺描述2.1 C/DC 的定義 C/DC是 Condition

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

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

4、ecision Coverage(MC/DC)的縮寫,含義是修正條件判定覆蓋.對(duì)它的定義為:Conditiona Boolean expression containing no Boolean operators :Decisiona Boolean expression composed of conditions and zeroor more Boolean operators :Modified Condition/Decision Coverage every point of entry and exit in the program has been invoked at le

5、ast once , every condition in the program has taken all possible outcomes at least once, and eachcondition 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/D3種測(cè)試方法中,條件表示不含有布爾操作符號(hào)的布爾 表達(dá)式

6、 ; 判定表示由條件和零或者很多布爾操作符號(hào)所組成的一個(gè)布爾表達(dá)式;而修正條件判定覆蓋方法要求在一個(gè)程序中每一種輸入輸出至少得出現(xiàn)一次,在程序中的每一個(gè)條件必須產(chǎn)生所有可能的輸出結(jié)果至少一次,并且每一個(gè)判定中的每一個(gè)條件必須能夠獨(dú)立影響一個(gè)判定的輸出,即在其他條件不變的前提下僅改變這個(gè)條件的值,而使判定結(jié)果改變.與上文同樣的例子:if and (B or C) then?else?這條語(yǔ)句,A and (B or C)是一個(gè)判定,A, B, C均為條件,使用MC/DC 方法找出分別對(duì)應(yīng)此3 個(gè)條件的測(cè)試集中有4 組元素為:TTF, F , TFT, FFT.方法如下:測(cè)試元素均從表1中選取,保

7、持A和B的值不變測(cè)試元素TFF和TFT 可以改變C條件的值和整個(gè)表達(dá)式的結(jié)果(F變成了 T);而保持A和C的值不變測(cè) 試元素TTF和TFT可以改變B條件的值和整個(gè)表達(dá)式的執(zhí)行結(jié)果(T變成了 F); 而當(dāng)保持B和C的值不變測(cè)試元素TFT和FFT可以改變A條件的值和整個(gè)表達(dá)式 的執(zhí)行結(jié)果(T變成了 F).這個(gè)測(cè)試集完全滿足MC/DC勺要求即當(dāng)鎖定其它的條件 保持不變,而改變判定中一項(xiàng)條件的值,必然引起整個(gè)表達(dá)式執(zhí)行的變化.3 C/DC和MC/Dd間的差異3.1 選取兩種方法的條件不同當(dāng)以下的需求在程序測(cè)試中遇到時(shí),需要考慮用MC/DCT法:每一個(gè)程序模塊的輸入和輸出點(diǎn)都要考慮至少出現(xiàn)1 次, 每個(gè)

8、程序的判定到所有可能的結(jié)果值要至少實(shí)現(xiàn)1 次 ; 程序的判定被分解為通過邏輯操作符(AND, OR, etc.) 連接為BOO靡件,每一個(gè)條件對(duì)于判定的結(jié)果值是獨(dú)立的,或者說(shuō)單個(gè)條件的變化將 導(dǎo)致判定的最后變化.而對(duì)于C/DC方法而言,在程序需要測(cè)試時(shí),由于它只要求“判定中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判定的所有可能判定結(jié)果至少執(zhí)行一次”, 要求比較簡(jiǎn)單,所以它可以與其他覆蓋方法一樣適合于使用在絕大多數(shù)的程序的測(cè)試中.3.2 兩者的測(cè)試集不同The MC/DC criterion enhances the condition/decision coverage criterion

9、 by requiring that each condition be shown to independently affect the outcome of the decision.MC/DC 方法雖是在 C/DC方法上的改進(jìn), 但是兩者在尋找測(cè)試集時(shí)是不同的,原因在于MC/DCf法要求對(duì)于判定中的所有 條件當(dāng)固定其他條件的值時(shí)每一個(gè)已選定的條件必須能夠獨(dú)立地影響一個(gè)判定 的輸出 .在以上的舉例中:if A and (B or C) then?else? 這條語(yǔ)句上文已找出用C/DC方法其一個(gè)測(cè)試集合為TTF, FFT,同時(shí)如果采用MC/DCT法具測(cè)試集合可為TTF, TFF, TFT

10、, FFT. 對(duì)比兩個(gè)測(cè)試集可發(fā)現(xiàn)測(cè)試集中的元素是不同的,而且元素組數(shù)也是不同(C/DC方法有2組,MC/DCJ法有4組).原因是:對(duì)于C/DC 方法來(lái)說(shuō),不管條件個(gè)數(shù)有多少,一個(gè)測(cè)試集中的元素組數(shù)最少可以為2 個(gè) . 推導(dǎo)如下:各個(gè)條件的取值只有兩種 T, F,從每個(gè)條件的取值中取出一個(gè)將它們 組合起來(lái)形成一組元素,并使得這組元素分別一一對(duì)應(yīng)相應(yīng)條件而代人整個(gè)判定得出的最后結(jié)果值為T; 然后從剩下的各個(gè)條件的取值中組合形成另一組元素并使得元素中的各個(gè)值分別對(duì)應(yīng)相應(yīng)條件代人整個(gè)判定后能使表達(dá)式的結(jié)果值為F(這兩種情況是一定可以從真值表中找到的),這樣就達(dá)到了 C/DC取測(cè)試集的要求,即各個(gè)條件

11、的可能取值T 和 F 都必須取到,且判定結(jié)果的可能取值T, F 也必須實(shí)現(xiàn).而另外對(duì)于MC/DCf法來(lái)說(shuō)如果在一個(gè)表達(dá)式中 N個(gè)條件只出現(xiàn)一次, 那么一個(gè)測(cè)試集中的元素組數(shù)為 N+1個(gè).這句話說(shuō)明測(cè)試集中的元素組數(shù)與表達(dá) 式中的條件個(gè)數(shù)有關(guān).3.3 兩者在測(cè)試中的覆蓋面不同對(duì)于MC/DCCT法,它的覆蓋面是要大于 C/DC方法的,也就是指在測(cè)試一個(gè) 程序或一個(gè)軟件時(shí),MC/DCtg比C/DC找到更多的錯(cuò)誤之處,原因就在于 MC/DC 的測(cè)試集檢測(cè)出錯(cuò)誤發(fā)生的概率比較高. 再舉一個(gè)很簡(jiǎn)單的例子:對(duì)于這條If Aor B then? else? 語(yǔ)句,由文章的前部可知使用 C/DC方法它的測(cè)試集可

12、為TT, FF;可是如果在這條語(yǔ)句中的操作符號(hào)是筆誤(由and 一時(shí)大意寫成了 or ),那 么即使采用了 TT, FF來(lái)測(cè)試仍然檢測(cè)不到錯(cuò)誤(因?yàn)門 and T = T or T,且F and F = F or F ,即無(wú)論將測(cè)試集中的哪組元素代人到兩個(gè)判定中? V ? , ? A ?,兩者所得到的判定結(jié)果相同),由此可說(shuō)明雖然使用了判定條件覆蓋(C/DC)準(zhǔn)則 來(lái)測(cè)試語(yǔ)句,邏輯表達(dá)式中的有些錯(cuò)誤仍然不能檢測(cè)出來(lái); 可是如果大家用MC/DCT法,由它的規(guī)則可得測(cè)試集合為FF, TF, FT,只需使用其中的一組 數(shù)據(jù)TF,就可知道其中發(fā)生了錯(cuò)誤.原因是:T or F值為T,而T and F值為

13、F, T and F語(yǔ)句的判定結(jié)果本來(lái)應(yīng)該得到 F卻得到了 T,由此可說(shuō)明中間的操作符 號(hào)發(fā)生了錯(cuò)誤,這樣就檢測(cè)到了錯(cuò)誤.所以這個(gè)傷J子說(shuō)明MC/DC勺測(cè)試集合的覆 蓋面要大于C/DC方法,若用戶對(duì)于測(cè)試程序的質(zhì)量要求較高,而不考慮其他因 素,那么可以使用MC/DC勺方法來(lái)測(cè)試自己的大型軟件或單個(gè)程序.3.4 兩者的用途不同由于MC/DCE尋找測(cè)試集時(shí)的要求比C/DC要嚴(yán)格,所以相比較下在測(cè)試時(shí)為了尋找出測(cè)試集合所花費(fèi)的時(shí)間多,由此而引起的人力、物力、 財(cái)力三重開銷也會(huì)直接攀升,但是MC/DCW試錯(cuò)誤的準(zhǔn)確率卻是特別地高,因此MC/DC®合那 些大型的并且要求測(cè)試非常精確的軟件測(cè)試所用 .為達(dá)到用戶的目的和一個(gè)較高 的信價(jià)比,近年來(lái)MC/DCf法主要應(yīng)用于大型的航空航天軟件程序的測(cè)試上 .對(duì)比而言C/DC方法要求較低,開銷少,而覆蓋率也低,所以比較適合對(duì)于 例如C+, JAVA等小型的程序的貝4試當(dāng)中

溫馨提示

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

評(píng)論

0/150

提交評(píng)論