白盒測試方法比較_第1頁
白盒測試方法比較_第2頁
白盒測試方法比較_第3頁
白盒測試方法比較_第4頁
白盒測試方法比較_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

“語句覆蓋”是一個比較弱的測試標(biāo)準(zhǔn),它的含義是:選擇足夠的測試用例,使得程序中每個語句至少都能被執(zhí)行一次。圖6.4是一個被測試的程序,它的源程序是:PROCEDUREM(VARA,B,X:REAL);ANDX-J<+1BEGINANDX-J<+1IF(A>1)AND(B=0)THENX:=X/A;IF(A=2)OR(X>1)THENX:=X+1;END.為使程序中每個語句至少執(zhí)行一次,只需設(shè)計一個能通過路徑ace的例子就可以了,例如選擇輸入數(shù)據(jù)為:A=2,B=0,X=3就可達(dá)到“語句覆蓋”標(biāo)準(zhǔn)。從本例可看出,語句覆蓋實際上是很弱的,如果第一個條件語句中的AND錯誤地編寫成OR,上面的測試用例是不能發(fā)現(xiàn)這個錯誤的;又如第三個條件語句中X>1誤寫成X>0,這個測試用例也不能暴露它,此外,沿著路徑abd執(zhí)行時,X的值應(yīng)該保持不變,如果這一方面有錯誤,上述測試數(shù)據(jù)也不能發(fā)現(xiàn)它們??傊话阏J(rèn)為“語句覆蓋”是很不充分的一種標(biāo)準(zhǔn)。二、判定覆蓋(Decisioncoverage)比“語句覆蓋"稍強的覆蓋標(biāo)準(zhǔn)是“判定覆蓋”(或稱branchcoverage分支覆蓋)標(biāo)準(zhǔn)。含義是:執(zhí)行足夠的測試用例,使得程序中的每一個分支至少都通過一次。

對圖6.4的程序,如果設(shè)計兩個例子,使它們能通過路徑ace和abd,或者通過路徑acd和abe,就可達(dá)到“判定覆蓋”標(biāo)準(zhǔn),為此,可以選擇輸入數(shù)據(jù)為:①A=3①A=3,B=0,X=1(沿路徑acd執(zhí)行);②A=2,B=l,X=3(沿路徑abe執(zhí)行)KIffi6.4KIffi6.4程序中含有判定的語句包括IF-THEN-ELSE、DO-WHILE、REPEAT-UNTIL等,除了雙值的判定語句外,還有多值的判定語句,如PASCAL中的CASE語句、FORTRAN中帶有三個分支的IF語句等。所以“判定覆蓋”更一般的含義是:使得每一個判定獲得每一種可能的結(jié)果?!芭卸ǜ采w”比“語句覆蓋”嚴(yán)格,因為如果每個分支都執(zhí)行過了,則每個語句也就執(zhí)行過了。但是,“判定覆蓋”還是很不夠的,例如上面兩個測試用例未能檢查沿著路徑abd執(zhí)行時,X的值是否保持不變。、條件覆蓋(Conditioncoverage)一個判定中往往包含了若干個條件,例如圖6.4的程序中,判定(A>1)AND(B=0)包含了兩個條件:A>1以及B=0,所以可引進一個更強的覆蓋標(biāo)準(zhǔn)一一“條件覆蓋”?!皸l件覆蓋”的含義是:執(zhí)行足夠的測試用例,使得判定中的每個條件獲得各種可能的結(jié)果。圖6.4的程序有四個條件:

A>1、B=0、A=2、X>1為了達(dá)到“條件覆蓋”標(biāo)準(zhǔn),需要執(zhí)行足夠的測試用例使得在a點有A>1、AW1、B=0、BHO等各種結(jié)果出現(xiàn),以及在b點有:A=2、AH2、X>1、XW1等各種結(jié)果出現(xiàn)?,F(xiàn)在只需設(shè)計以下兩個測試用例就可滿足這一標(biāo)準(zhǔn):①A=2,B=0,X=4(沿路徑ace執(zhí)行); ②A=l,B=1,X=1(沿路徑abd執(zhí)行)。NNffle.ix-x/aX=X+1NNffle.ix-x/aX=X+1“條件覆蓋”通常比“判定覆蓋”強,因為它使一個判定中的每一個條件都取到了兩個不同的結(jié)果,而判定覆蓋則不保證這一點。但如對語句IF(AANDB)THENS設(shè)計測試用例使其滿足〃條件覆蓋〃,即使A為真并使B為假,以及使A為假而且B為真,但是它們都未能使語句S得以執(zhí)行。

四、判定/條件覆蓋(Decision/Conditioncoverage)針對上面的問題引出了另一種覆蓋標(biāo)準(zhǔn)——“判定/條件覆蓋”,它的含義是:執(zhí)行足夠的測試用例,使得判定中每個條件取到各種可能的值,并使每個判定取到各種可能的結(jié)果。對圖6.4的程序,上一節(jié)中的兩個例子①A=2①A=2,B=0,X=4(沿ace路徑)②A=l,B=l,X=1(沿abd路徑)NNffle.4X-X/AX=X+1NNffle.4X-X/AX=X+1是滿足這一標(biāo)準(zhǔn)的?!芭卸ǎ瘲l件覆蓋”似乎是比較合理的,但事實并非如此,因為大多數(shù)計算機不能用一條指令對多個條件作出判定,而必須將源程序中對多個條件的判定分解成幾個簡單判定,所以較徹底的測試應(yīng)使每一個簡單判定都真正取到各種可能的結(jié)果。

圖6.5是由編譯系統(tǒng)產(chǎn)生的圖6.4的目標(biāo)程序。上面的兩個例子未BS-5Z—IX=X/AT能使目標(biāo)程序中的每一個簡單判定取到各種可能的結(jié)果;它們不能使判定IBS-5Z—IX=X/AT“真”,其原因在于:含有AND或OR的邏輯表達(dá)式中,某些條件將抑制其他條件,例如邏輯表達(dá)式AANDB,如果A為“假”,目標(biāo)程序就不再檢查條件B了,這樣B中的錯誤就發(fā)現(xiàn)不了。上面的討論說明了,盡管“判定/條件覆蓋”看起來能使各種條件取到所有可能的值,但實際上并不一定能檢查到這樣的程度。五、條件組合覆蓋(branchconditioncombination)針對上述問題又提出了另一種標(biāo)準(zhǔn)——“條件組合覆蓋”。它的含義是:執(zhí)行足夠的例子,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。顯然,滿足“條件組合覆蓋”的測試用例是一定滿足“判定覆蓋”、“條件覆蓋”和“判定/條件覆蓋”的。再看圖6.4的程序,我們需要選擇適當(dāng)?shù)睦?,使得下?種條件組合都能夠出現(xiàn)1)A>1,B=0 2)A>1,B0 3)AW1,B=0 4)AW1,B#08)A#2,XW15)A=2,X>1 6)A=2,XW1 7)8)A#2,XW1必須注意到,5)、6)、7)、8)四種情況是第二個IF語句的條件組合,而X的值在該語句之前是要經(jīng)過計算的,所以還必須根據(jù)程序的邏輯推算出在程序的入口點X的輸入值應(yīng)是什么。下面四個例子可以使上述8種條件組合至少出現(xiàn)一次:①A=2,B=0,X=4使1)、5)兩種情況出現(xiàn);②A=2,B=l,X=1使2)、6)兩種情況出現(xiàn);③A=1,B=0,X=2使3)、7)兩種情況出現(xiàn);④A=1,B=1,X=1使4)、8)兩種情況出現(xiàn)。上面四個例子雖然滿足條件組合覆蓋,但并不能覆蓋程序中的每一條路徑,例如路徑acd就沒有執(zhí)行,因此,條件組合覆蓋標(biāo)準(zhǔn)仍然是不徹底。判定覆蓋只關(guān)心判定表達(dá)式的值(真/假),而條件覆蓋涉及到判定表達(dá)式的每個條件的值(真/假)。舉個最簡單的例子,方便理解:判定表達(dá)式:a>1orb>1用判定覆蓋設(shè)計的測試數(shù)據(jù):a=5(判定表達(dá)式的值為“真”)a=0(判定表達(dá)式的值為“假”)這里不需要管b的取值,就已經(jīng)滿足判定覆蓋的條件了。用條件覆蓋設(shè)計的測試數(shù)據(jù):a=5(條件a>1的值為“真”)a=0(條件a>1的值為“假”)b=5(條件b>1的值為“真”)b=0(條件b>1的值為“假”)這里不考慮a>1orb>1這個表達(dá)式的取值的情況,但必須把a>1和b>1這兩個條件的取值考慮全。二、設(shè)計題:1.如圖顯示某程序的邏輯結(jié)構(gòu)。試為它設(shè)計足夠的測試用例,分別實現(xiàn)對程序的判定覆蓋、條件覆蓋和條件組合覆蓋。覆蓋種類需滿足的條件測試數(shù)據(jù)期望結(jié)果判定覆蓋A>0,B=0A=2,B=0執(zhí)行siA>0,BhO或A<0,B=0或A<0,BhOA=2,B=1或A=0,

溫馨提示

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

最新文檔

評論

0/150

提交評論