資源描述:
《軟件測試用例設(shè)計(白盒)課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、軟件測試用例設(shè)計北京萬維空間網(wǎng)絡(luò)技術(shù)有限責(zé)任公司測試用例測試用例由測試輸入數(shù)據(jù)以及與之對應(yīng)的輸出結(jié)果組成。測試用例設(shè)計的好壞直接決定了測試的效果和結(jié)果。所以說在軟件測試活動中最關(guān)鍵的步驟就是設(shè)計有效的測試用例。測試用例可以針對黑盒測試設(shè)計用例,也可以針對白盒測試設(shè)計用例,我們今天只講針對白盒測試的用例設(shè)計方法。概念語句覆蓋:語句覆蓋就是設(shè)計若干個測試用例,運行被測試程序,使得每一條可執(zhí)行語句至少執(zhí)行一次;判定覆蓋(也稱為分支覆蓋):設(shè)計若干個測試用例,運行所測程序,使程序中每個判斷的取真分支和取假分支至少執(zhí)行一次;條件覆蓋:設(shè)計足夠多的測試用例
2、,運行所測程序,使程序中每個判斷的每個條件的每個可能取值至少執(zhí)行一次;判定-條件覆蓋:設(shè)計足夠多的測試用例,運行所測程序,使程序中每個判斷的每個條件的所有可能取值至少執(zhí)行一次,并且每個可能的判斷結(jié)果也至少執(zhí)行一次,換句話說,即是要求各個判斷的所有可能的條件取值組合至少執(zhí)行一次;條件組合測試:設(shè)計足夠多的測試用例,運行所測程序,使程序中每個判斷的所有可能的條件取值組合至少執(zhí)行一次;路徑測試:設(shè)計足夠多的測試用例,運行所測程序,要覆蓋程序中所有可能的路徑。下面以例子進行分析講解:voidDoWork(intx,inty,intz){intk=0,j=
3、0;if((x>3)&&(z<10)){k=x*y-1;//語句塊1j=sqrt(k);}if((x==4)
4、
5、(y>5)){j=x*y+10;//語句塊2}j=j%3;//語句塊3}畫出上面函數(shù)的流程圖如下:語句覆蓋:為了說明簡略,分別對各個判斷的取真、取假分支編號為b、c、d、e。為了測試語句覆蓋率只要設(shè)計一個測試用例就可以把三個執(zhí)行語句塊中的語句覆蓋了。測試用例輸入為:{x=4、y=5、z=5}程序執(zhí)行的路徑是:abd該測試用例雖然覆蓋了可執(zhí)行語句,但并不能檢查判斷邏輯是否有問題,例如在第一個判斷中把&&錯誤的寫成了
6、
7、,則上面的測試用例仍
8、可以覆蓋所有的執(zhí)行語句。可以說語句覆蓋率是最弱的邏輯覆蓋準則。分支覆蓋對于上面的程序,如果設(shè)計兩個測試用例則可以滿足條件覆蓋的要求。測試用例的輸入為:{x=4、y=5、z=5}{x=2、y=5、z=5}上面的兩個測試用例雖然能夠滿足條件覆蓋的要求,但是也不能對判斷條件進行檢查,例如把第二個條件y>5錯誤的寫成y<5,、上面的測試用例同樣滿足了分支覆蓋。條件覆蓋條件覆蓋就是設(shè)計若干個測試用例,運行被測試對象,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。對例子中的所有條件取值加以標記。例如:對于第一個判斷:條件x>3取真值為T1,取假值為-T
9、1條件z<10取真值為T2,取假值為-T2對于第二個判斷:條件x=4取真值為T3,取假值為-T3條件y>5取真值為T4,取假值為-T4則可以設(shè)計測試用例如下測試用例通過路徑條件取值覆蓋分支x=4、y=6、z=5abdT1、T2、T3、T4bdx=2、y=5、z=5ace-T1、T2、-T3、-T4cex=4、y=5、z=15acdT1、-T2、T3、-T4cd上面的測試用例不但覆蓋了所有分支的真假兩個分支,而且覆蓋了判斷中的所有條件的可能值。但是如果設(shè)計了下面的測試用例,則雖然滿足了條件覆蓋,但只覆蓋了第一個條件的取假分支和第二個條件的取真分支,
10、不滿足分支覆蓋的要求。測試用例通過路徑條件取值覆蓋分支x=2、y=6、z=5acd-T1、T2、-T3、T4cdx=4、y=5、z=5acdT1、-T2、T3、-T4cd分支條件覆蓋:分支條件覆蓋就是設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷的所有可能判斷結(jié)果至少執(zhí)行,即要求各個判斷的所有可能的條件取值組合至少執(zhí)行一次。根據(jù)定義只需設(shè)計以下兩個測試用例便可以覆蓋8個條件值以及4個判斷分支。測試用例通過路徑條件取值覆蓋分支x=4、y=6、z=5abdT1、T2、T3、T4bdx=2、y=5、z=11ace-T1、
11、-T2、-T3、-T4ce分支條件覆蓋從表面來看,它測試了所有條件的取值,但是實際上某些條件掩蓋了另一些條件。例如對于條件表達式(x>3)&&(z<10)來說,必須兩個條件都滿足才能確定表達式為真。如果(x>3)為假則一般的編譯器不在判斷是否z<10了。對于第二個表達式(x==4)
12、
13、(y>5)來說,若x==4測試結(jié)果為真,就認為表達式的結(jié)果為真,這時不再檢查(y>5)條件了。因此,采用分支條件覆蓋,邏輯表達式中的錯誤不一定能夠查出來了。條件組合覆蓋:條件組合覆蓋就是設(shè)計足夠的測試用例,運行被測試對象,使得每一個判斷的所有可能的條件取值組合至少執(zhí)
14、行一次?,F(xiàn)在對例子中的各個判斷的條件取值組合加以標記如下:x>3,z<10記做T1T2,第一個判斷的取真分支x>3,z>=10記做T1-