第4章(1) 白盒測(cè)試方法1-邏輯覆蓋法_第1頁(yè)
第4章(1) 白盒測(cè)試方法1-邏輯覆蓋法_第2頁(yè)
第4章(1) 白盒測(cè)試方法1-邏輯覆蓋法_第3頁(yè)
第4章(1) 白盒測(cè)試方法1-邏輯覆蓋法_第4頁(yè)
第4章(1) 白盒測(cè)試方法1-邏輯覆蓋法_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件測(cè)試軟件測(cè)試第第4 4章章 白盒測(cè)試方法白盒測(cè)試方法 邏輯覆蓋法邏輯覆蓋法Logo目目 錄錄白盒測(cè)試方法的引入白盒測(cè)試方法的引入1語(yǔ)句覆蓋語(yǔ)句覆蓋2判定覆蓋判定覆蓋3條件覆蓋條件覆蓋4判定條件覆蓋判定條件覆蓋5條件組合覆蓋條件組合覆蓋6路徑覆蓋路徑覆蓋7Logo知識(shí)回顧知識(shí)回顧 軟件測(cè)試技術(shù)分類:按面向測(cè)試對(duì)象粒度(按開發(fā)階段)分:按測(cè)試方法分:按運(yùn)行狀態(tài)分: 什么是測(cè)試用例?由哪些部分組成? 這個(gè)程序可以用來(lái)求什么? k = i;for(j = i+1; j = n; j+) if(Aj 1)A1) & (B=0(B=0)(A=2)A=2) | (X1(X1)X=X/AX=X/A

2、X=X+1X=X+1開始Logo例例 子子Logo例例 子子Logo例例 子子Logo例例 子子Logo語(yǔ)句覆蓋語(yǔ)句覆蓋Logo語(yǔ)句覆蓋語(yǔ)句覆蓋Logo(A1)(A1) & (B=0)(B=0)(A=2)(A=2) | (X1)(X1)X=X/AX=X/AX=X+1X=X+1開始Logo語(yǔ)句覆蓋語(yǔ)句覆蓋語(yǔ)句覆蓋率l已執(zhí)行的可執(zhí)行語(yǔ)句占程序中可執(zhí)行語(yǔ)句總數(shù)的百分比復(fù)雜的程序不可能達(dá)到語(yǔ)句的完全覆蓋語(yǔ)句覆蓋率越高越好Logo語(yǔ)句覆蓋的優(yōu)點(diǎn)語(yǔ)句覆蓋的優(yōu)點(diǎn)檢查所有語(yǔ)句結(jié)構(gòu)簡(jiǎn)單的代碼的測(cè)試效果較好容易實(shí)現(xiàn)自動(dòng)測(cè)試代碼覆蓋率高 如果是程序塊覆蓋,則不涉及程序塊中的源代碼 Logo語(yǔ)句覆蓋不能檢查出

3、的錯(cuò)誤語(yǔ)句覆蓋不能檢查出的錯(cuò)誤邏輯運(yùn)算(&、|)錯(cuò)誤 判定的第一個(gè)運(yùn)算符“&”錯(cuò)寫成“|”,或第二個(gè)運(yùn)算符“|”錯(cuò)寫成“&”,這時(shí)使用上述的測(cè)試用例仍然可以達(dá)到100%的語(yǔ)句覆蓋.循環(huán)語(yǔ)句錯(cuò)誤l循環(huán)次數(shù)錯(cuò)誤l跳出循環(huán)條件錯(cuò)誤Logo語(yǔ)句覆蓋不能檢查出的錯(cuò)誤語(yǔ)句覆蓋不能檢查出的錯(cuò)誤 循環(huán)語(yǔ)句例子for(i=0;i3) statement;Logo語(yǔ)句覆蓋率的問(wèn)題語(yǔ)句覆蓋率的問(wèn)題 能達(dá)到很高的語(yǔ)句覆蓋率 語(yǔ)句覆蓋率看似很高,卻有嚴(yán)重缺陷: if(x!=1) statements; ; else statement; 99句1句測(cè)試用例:x = 2語(yǔ)句覆蓋率99%50%的分支

4、沒(méi)有達(dá)到Logo 【優(yōu)點(diǎn)】【優(yōu)點(diǎn)】 :可以很直觀地從源代碼得到測(cè)試用例,無(wú)須細(xì)分每條判定表達(dá)式。 【缺點(diǎn)】【缺點(diǎn)】 :由于這種測(cè)試方法僅僅針對(duì)程序邏輯中顯式存在的語(yǔ)句,但對(duì)于隱藏的條件是無(wú)法測(cè)試的。如在多分支的邏輯運(yùn)算中無(wú)法全面的考慮。語(yǔ)句覆蓋是最弱的邏輯覆蓋。語(yǔ)句覆蓋總結(jié)語(yǔ)句覆蓋總結(jié)Logo判定覆蓋判定覆蓋 Decision CoverageDecision CoverageLogo(A1)(A1) & (B=0)(B=0)(A=2)(A=2) | (X1)(X1)X=X/AX=X/AX=X+1X=X+1開始Logo判定覆蓋判定覆蓋Logo判定覆蓋判定覆蓋Logo判定覆蓋判定覆蓋Lo

5、go判定覆蓋判定覆蓋16352789410 說(shuō)明:以上僅考慮了兩出口的判斷,我們還應(yīng)把判定覆蓋以上僅考慮了兩出口的判斷,我們還應(yīng)把判定覆蓋準(zhǔn)則擴(kuò)充到準(zhǔn)則擴(kuò)充到多出口判斷多出口判斷(如(如CaseCase語(yǔ)句)的情況。因此,判語(yǔ)句)的情況。因此,判定覆蓋更為廣泛的含義應(yīng)該是使得每一個(gè)判定獲得每一種定覆蓋更為廣泛的含義應(yīng)該是使得每一個(gè)判定獲得每一種可能的結(jié)果至少一次。可能的結(jié)果至少一次。Logo判定覆蓋判定覆蓋 【優(yōu)點(diǎn)】【優(yōu)點(diǎn)】:判定覆蓋具有比語(yǔ)句覆蓋更強(qiáng)的測(cè)試能力。同樣判定覆蓋也具有和語(yǔ)句覆蓋一樣的簡(jiǎn)單性,無(wú)須細(xì)分每個(gè)判定就可以得到測(cè)試用例。 【缺點(diǎn)】【缺點(diǎn)】:往往大部分的判定語(yǔ)句是由多個(gè)邏輯條

6、件組合而成,若僅僅判斷其整個(gè)最終結(jié)果,而忽略每個(gè)條件的取值情況,必然會(huì)遺漏部分測(cè)試路徑。判定覆蓋仍是弱的邏輯覆蓋。Logo條件覆蓋條件覆蓋Condition CoverageCondition Coverage 在設(shè)計(jì)程序中,一個(gè)判定語(yǔ)句是由多個(gè)在設(shè)計(jì)程序中,一個(gè)判定語(yǔ)句是由多個(gè)條件組合而成的復(fù)合判定,判定條件組合而成的復(fù)合判定,判定(a)&(b|c)(a)&(b|c)包含了三個(gè)條件:包含了三個(gè)條件:a,ba,b和和c c。為了更徹底的實(shí)現(xiàn)邏輯覆蓋,可以采用為了更徹底的實(shí)現(xiàn)邏輯覆蓋,可以采用條件覆蓋。條件覆蓋。Logo條件覆蓋條件覆蓋Condition CoverageCond

7、ition CoverageLogo條件覆蓋條件覆蓋Condition CoverageCondition CoverageT1T1T2T2T3T3T44TLogo(A1) & (B=0)(A=2) | (X1)X=X/AX=X+1開始Logo條件覆蓋條件覆蓋Condition CoverageCondition CoverageT T T T12344321TTTT4321TTTTLogo條件覆蓋條件覆蓋T T T T1234T T T T1234Logo條件覆蓋條件覆蓋 【優(yōu)點(diǎn)】【優(yōu)點(diǎn)】:增加了對(duì)條件判定情況的測(cè)試,增加了測(cè)試路徑。 【缺點(diǎn)】【缺點(diǎn)】:條件覆蓋不一定包含判定覆蓋。條

8、件覆蓋只能保證每個(gè)條件至少有一次為真,而不考慮所有的判定結(jié)果。LogoCDCCDCLogo(A1) & (B=0)(A=2) | (X1)X=X/AX=X+1開始LogoCDCCDCT T T T1234T T T T1234Logo:從表面上看,判定/條件覆蓋測(cè)試了各個(gè)判定中的所有條件的取值,但實(shí)際上,編譯器在檢查含有多個(gè)條件的邏輯表達(dá)式時(shí),某些情況下的某些條件將會(huì)被其它條件所掩蓋。因此,判定/條件覆蓋也不一定能夠完全檢查出邏輯表達(dá)式中的錯(cuò)誤。CDCLogoCDCCDC:對(duì)于第一個(gè)判定(A1)&(B=0)來(lái)說(shuō),必須A1和B=0這兩個(gè)條件同時(shí)滿足才能確定該判定為真。如果A1為假

9、,則編譯器將不再檢查B=0這個(gè)條件,那么即使這個(gè)條件有錯(cuò)也無(wú)法被發(fā)現(xiàn)。對(duì)于第二個(gè)判定(A=2)(A=2)|(X1)(X1)來(lái)說(shuō),若條件A=2滿足,就認(rèn)為該判定為真,這時(shí)將不會(huì)再檢查X1,那么同樣也無(wú)法發(fā)現(xiàn)這個(gè)條件中的錯(cuò)誤。Logo判定條件覆蓋判定條件覆蓋 【優(yōu)點(diǎn)】【優(yōu)點(diǎn)】 :能同時(shí)滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)。 【缺點(diǎn)】【缺點(diǎn)】 :判定/條件覆蓋準(zhǔn)則的缺點(diǎn)是未考慮條件的組合情況。LogoLogoT T12T T12T T12T T12T T34T T3443TTT T34Logo(A1) & (B=0)(A=2) | (X1)X=X/AX=X+1開始LogoT T T T1234T T

10、T T1234T T T T1234T T T T1234 分析:上面這組測(cè)試用例覆蓋了所有8種條件取值的組合,覆蓋了所有判定的真假分支,但是卻丟失了一條路徑L4。Logo條件組合覆蓋條件組合覆蓋 【優(yōu)點(diǎn)】【優(yōu)點(diǎn)】 :條件組合覆蓋準(zhǔn)則滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準(zhǔn)則。 【缺點(diǎn)】【缺點(diǎn)】 :線性地增加了測(cè)試用例的數(shù)量。Logo各種方法的邏輯覆蓋程度各種方法的邏輯覆蓋程度組組合覆蓋合覆蓋判斷判斷/ /條件覆蓋條件覆蓋判斷覆蓋判斷覆蓋條件覆蓋條件覆蓋語(yǔ)句覆蓋語(yǔ)句覆蓋LogoT T T T1234T T T T1234T T T T1234T T T T3412Logo 分析:Logo 說(shuō)明:LogoLogo總結(jié)總結(jié)從前面的例子我們可以看到,采用任何一種覆蓋方法都不能滿足我們的要求,所以,在實(shí)際的測(cè)試用例設(shè)計(jì)過(guò)程中,可以根據(jù)需要將不同的覆蓋方法組合起來(lái)使用,以實(shí)現(xiàn)最佳的測(cè)試用例設(shè)計(jì) 。Logo練習(xí)題練習(xí)題void DoWork(int x,int y,int z) int k=0,j=0; if(x3)&(z5) j=x*y+10; /語(yǔ)句塊2 j=j%3;

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論