軟件測試邏輯覆蓋_第1頁
軟件測試邏輯覆蓋_第2頁
軟件測試邏輯覆蓋_第3頁
軟件測試邏輯覆蓋_第4頁
軟件測試邏輯覆蓋_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1內(nèi)容(1)邏輯覆蓋語句覆蓋判定覆蓋條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋2邏輯覆蓋voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z<10)){k=x*y-1;j=sqrt(k);}//語句塊1if((x==4)||(y>5)){j=x*y+10;}//語句塊2

j=j%3;//語句塊3}3邏輯覆蓋X>3&&z<10執(zhí)行語句塊1執(zhí)行語句塊2X==4||y>5執(zhí)行語句塊3FFTTabdce4邏輯覆蓋語句覆蓋:選擇足夠多的測試用例,使得程序中的每個(gè)可執(zhí)行語句至少執(zhí)行一次。要實(shí)現(xiàn)DoWork函數(shù)的語句覆蓋,只需設(shè)計(jì)一個(gè)測試用例就可以覆蓋程序中的所有可執(zhí)行語句。測試用例輸入為:{x=4、y=5、z=5}程序執(zhí)行的路徑是:abd分析:語句覆蓋可以保證程序中的每個(gè)語句都得到執(zhí)行,但發(fā)現(xiàn)不了判定中邏輯運(yùn)算的錯(cuò)誤,即它并不是一種充分的檢驗(yàn)方法。例如在第一個(gè)判定((x>3)&&(z<10))中把“&&”錯(cuò)誤的寫成了“||”,或者把x>3誤寫成x>2,這時(shí)仍使用該測試用例,則程序仍會(huì)按照流程圖上的路徑abd執(zhí)行。可以說語句覆蓋是最弱的邏輯覆蓋準(zhǔn)則。5邏輯覆蓋判定覆蓋:通過執(zhí)行足夠的測試用例,使得程序中的每個(gè)判定至少都獲得一次“真”值和“假”值,也就是使程序中的每個(gè)取“真”分支和取“假”分支至少均經(jīng)歷一次,也稱為“分支覆蓋”。要實(shí)現(xiàn)DoWork函數(shù)的判定覆蓋,需要設(shè)計(jì)兩個(gè)測試用例。測試用例的輸入為:{x=4、y=5、z=5};{x=2、y=5、z=5}程序執(zhí)行的路徑分別是:abd;ace分析:上述兩個(gè)測試用例不僅滿足了判定覆蓋,同時(shí)還做到語句覆蓋。從這點(diǎn)看似乎判定覆蓋比語句覆蓋更強(qiáng)一些,但仍然無法確定判定內(nèi)部條件的錯(cuò)誤。例如把第二個(gè)判定中的條件y>5錯(cuò)誤寫為y<5,使用上述測試用例,照樣能按原路徑執(zhí)行而不影響結(jié)果。因此,需要有更強(qiáng)的邏輯覆蓋準(zhǔn)則去檢驗(yàn)判定內(nèi)的條件。6邏輯覆蓋條件覆蓋:設(shè)計(jì)足夠多的測試用例,使得程序中每個(gè)判定包含的每個(gè)條件的可能取值(真/假)都至少滿足一次。在實(shí)際程序代碼中,一個(gè)判定中通常都包含若干條件。條件覆蓋的目的是設(shè)計(jì)若干測試用例,在執(zhí)行被測程序后,要使每個(gè)判定中每個(gè)條件的可能值至少滿足一次。對(duì)DoWork函數(shù)的各個(gè)判定的各種條件取值加以標(biāo)記。對(duì)于第一個(gè)判定((x>3)&&(z<10)): 條件x>3取真值記為T1,取假值記為-T1

條件z<10取真值記為T2,取假值記為-T2對(duì)于第二個(gè)判定((x==4)||(y>5)):條件x==4取真值記為T3,取假值記為-T3條件y>5取真值記為T4,取假值記為-T47邏輯覆蓋根據(jù)條件覆蓋的基本思想,要使上述4個(gè)條件可能產(chǎn)生的8種情況至少滿足一次,設(shè)計(jì)測試用例如下:測試用例執(zhí)行路徑覆蓋條件覆蓋分支x=4、y=6、z=5abdT1、T2、T3、T4bdx=2、y=5、z=15ace-T1、-T2、-T3、-T4ce分析:上面這組測試用例不但覆蓋了4個(gè)條件的全部8種情況,而且將兩個(gè)判定的4個(gè)分支b、c、d、e也同時(shí)覆蓋了,即同時(shí)達(dá)到了條件覆蓋和判定覆蓋。8邏輯覆蓋說明:雖然前面的一組測試用例同時(shí)達(dá)到了條件覆蓋和判定覆蓋,但是,并不是說滿足條件覆蓋就一定能滿足判定覆蓋。如果設(shè)計(jì)了下表中的這組測試用例,則雖然滿足了條件覆蓋,但只是覆蓋了程序中第一個(gè)判定的取假分支c和第二個(gè)判定的取真分支d,不滿足判定覆蓋的要求。測試用例執(zhí)行路徑覆蓋條件覆蓋分支x=2、y=6、z=5ace-T1、T2、-T3、T4cex=4、y=5、z=15aceT1、-T2、T3、-T4ce9邏輯覆蓋判定/條件覆蓋:設(shè)計(jì)足夠多的測試用例,使得程序中每個(gè)判定包含的每個(gè)條件的所有情況(真/假)至少出現(xiàn)一次,并且每個(gè)判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次——滿足判定/條件覆蓋的測試用例一定同時(shí)滿足判定覆蓋和條件覆蓋判定/條件覆蓋實(shí)際上是將判定覆蓋和條件覆蓋結(jié)合起來的一種方法,即:設(shè)計(jì)足夠的測試用例,使得判定中每個(gè)條件的所有可能取值至少滿足一次,同時(shí)每個(gè)判定的可能結(jié)果也至少出現(xiàn)一次。根據(jù)判定/條件覆蓋的基本思想,只需設(shè)計(jì)以下兩個(gè)測試用例便可以覆蓋4個(gè)條件的8種取值以及4個(gè)判定分支。測試用例執(zhí)行路徑覆蓋條件覆蓋分支x=4、y=6、z=5abdT1、T2、T3、T4bdx=2、y=5、z=15ace-T1、-T2、-T3、-T4ce10邏輯覆蓋分析:從表面上看,判定/條件覆蓋測試了各個(gè)判定中的所有條件的取值,但實(shí)際上,編譯器在檢查含有多個(gè)條件的邏輯表達(dá)式時(shí),某些情況下的某些條件將會(huì)被其它條件所掩蓋。因此,判定/條件覆蓋也不一定能夠完全檢查出邏輯表達(dá)式中的錯(cuò)誤。例如:對(duì)于第一個(gè)判定(x>3)&&(z<10)來說,必須x>3和z<10這兩個(gè)條件同時(shí)滿足才能確定該判定為真。如果x>3為假,則編譯器將不再檢查z<10這個(gè)條件,那么即使這個(gè)條件有錯(cuò)也無法被發(fā)現(xiàn)。對(duì)于第二個(gè)判定(x==4)||(y>5)來說,若條件x==4滿足,就認(rèn)為該判定為真,這時(shí)將不會(huì)再檢查y>5,那么同樣也無法發(fā)現(xiàn)這個(gè)條件中的錯(cuò)誤。11邏輯覆蓋組合覆蓋:通過執(zhí)行足夠的測試用例,使得程序中每個(gè)判定的所有可能的條件取值組合都至少出現(xiàn)一次。

——滿足組合覆蓋的測試用例一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋。組合覆蓋的目的是要使設(shè)計(jì)的測試用例能覆蓋每一個(gè)判定的所有可能的條件取值組合。對(duì)DoWork函數(shù)中的各個(gè)判定的條件取值組合加以標(biāo)記:1、x>3,z<10記做T1T2,第一個(gè)判定的取真分支

2、x>3,z>=10記做T1-T2,第一個(gè)判定的取假分支

3、x<=3,z<10記做-T1T2,第一個(gè)判定的取假分支

4、x<=3,z>=10記做-T1-T2,第一個(gè)判定的取假分支

5、x==4,y>5記做T3T4,第二個(gè)判定的取真分支

6、x==4,y<=5記做T3-T4,第二個(gè)判定的取真分支

7、x!=4,y>5記做-T3T4,第二個(gè)判定的取真分支

8、x!=4,y<=5記做-T3-T4,第二個(gè)判定的取假分支12邏輯覆蓋根據(jù)組合覆蓋的基本思想,設(shè)計(jì)測試用例如下:測試用例執(zhí)行路徑覆蓋條件覆蓋組合號(hào)x=4、y=6、z=5abdT1、T2、T3、T41和5x=4、y=5、z=15acdT1、-T2、T3、-T42和6x=2、y=6、z=5acd-T1、T2、-T3、T43和7x=2、y=5、z=15ace-T1、-T2、-T3、-T44和8分析:上面這組測試用例覆蓋了所有8種條件取值的組合,覆蓋了所有判定的真假分支,但是卻丟失了一條路徑abe。13邏輯覆蓋前面提到的5種邏輯覆蓋都未涉及到路徑的覆蓋。事實(shí)上,只有當(dāng)程序中的每一條路徑都受到了檢驗(yàn),才能使程序受到全面檢驗(yàn)。路徑覆蓋的目的就是要使設(shè)計(jì)的測試用例能覆蓋被測程序中所有可能的路徑。根據(jù)路徑覆蓋的基本思想,在滿足組合覆蓋的測試用例中修改其中一個(gè)測試用例,則可以實(shí)現(xiàn)路徑覆蓋:測試用例執(zhí)行路徑覆蓋條件x=4、y=6、z=5abdT1、T2、T3、T4x=4、y=5、z=15acdT1、-T2、T3、-T4x=2、y=5、z=15ace-T1、-T2、-T3、-T4x=5、y=5、z=5abeT1、T2、-T3、-T414邏輯覆蓋public

charfunction(intx,inty){

chart;

if((x>=90)&&(y>=90)){t='A';

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論