白盒測試用例練習(xí)_第1頁
白盒測試用例練習(xí)_第2頁
白盒測試用例練習(xí)_第3頁
白盒測試用例練習(xí)_第4頁
白盒測試用例練習(xí)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、白盒測試用例練習(xí)1為以下所示的程序段設(shè)計(jì)一組測試用例,要求分別滿足語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋,并畫出相應(yīng)的程序流程圖。void DoWork (int x,int y,int z) int k=0,j=0; if ( (x>3)&&(z<10) ) k=x*y-1; j=sqrt(k); /語句塊1 if ( (x=4)|(y>5) ) j=x*y+10; /語句塊2 j=j%3; /語句塊3k=0j=0k=x*y-1j=sqrt(k)x>3 and z<10aYcNbx=4ory>5eYj=x*y+10

2、Ndj=j%3由這個(gè)流程圖可以看出,該程序模塊有4條不同的路徑:P1:(a-c-e) P2:(a-c-d)P3:(a-b-e) P4:(a-b-d)將里面的判定條件和過程記錄如下:判定條件Mx>3 and z<10判定條件N=x=4 or y>51、 語句覆蓋測試用例輸入輸出判定M的取值判定N的取值覆蓋路徑x=4,z=5,y=8k=31,j=0TTP1(a-c-e)2、判定覆蓋p1和p4可以作為測試用例,其中p1作為取真的路徑,p4作為取反的路徑。測試用例輸入 輸出判定M的取值判定N的取值覆蓋路徑x=4,z=5,y=8k=31,j=0TTP1(a-c-e)x=2,z=11,y

3、=5k=0,j=0FFP4(a-b-d)也可以讓測試用例測試路徑P2和P3。相應(yīng)的兩組輸入數(shù)據(jù)如下:測試用例輸入輸出判定M的取值判定N的取值覆蓋路徑x=5,z=5,y=4k=19,j=sqrt(19)%3TFP2(a-c-d)x=4,z=11,y=6k=0,j=1FTP3(a-b-e)3、條件覆蓋對于M:x>3取真時(shí)T1,取假時(shí)F1; z<10取真時(shí)T2,取假時(shí)F2;對于N:x=4取真時(shí)T3,取假時(shí)F3; y>5取真時(shí)T4,取假時(shí)F4。條件:x>3,z<10,x=4,y>5條件:x<=3,z>=10,x!=4,y<=5根據(jù)條件覆蓋的基本思路

4、,和這8個(gè)條件取值,組合測試用例如表所示:測試用例輸入輸出取值條件具體取值條件覆蓋路徑x=4,z=5,y=8k=31, j=0T1,T2,T3,T4x>3,z<10,x=4,y>5P1(a-c-e)x=3,z=11,y=5k=0, j=0F1,F(xiàn)2,F(xiàn)3,F(xiàn)4x<=3,z>=10,x!=4,y<=5P4(a-b-d)4、判定/條件覆蓋測試用例輸入輸出取值條件具體取值條件覆蓋路徑x=4,z=5,y=8k=31, j=0T1,T2,T3,T4x>3,z<10,x=4,y>5P1(a-c-e)x=3,z=11,y=5k=0, j=0F1,F(xiàn)2,F(xiàn)

5、3,F(xiàn)4x<=3,z>=10,x!=4,y<=5P4(a-b-d)5、組合覆蓋條件組合1)x>3,z<10 2)x>3,z>=103) x<=3,z<10 4)x<=3,z>=105)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)x!=4,y<=5測試用例輸入輸出覆蓋條件取值覆蓋條件組合覆蓋路徑x=4,z=5,y=6k=23, j=1T1,T2,T3,T41,5P1(a-c-e)x=4,z=10,y=5k=0, j=0T1,F2,T3,F42,6P2(a-c-d)x=3,z=5,y=6k

6、=14 j=1F1,T2,F3,T43,7P3(a-b-e)z=3,z=10,y=5k=0, j=2F1,F2,F3,F44,8P4(a-b-d)6、路徑覆蓋 測試用例輸入輸出覆蓋條件取值覆蓋條件組合覆蓋路徑x=4,z=5,y=8k=31,j=0T1,T2,T3,T41,5P1(a-c-e)x=5,z=5,y=4k=19,j=sqrt(19)%3T1,T2,F(xiàn)3,F(xiàn)41,8P2(a-c-d)x=4,z=11,y=6k=0,j=1T1,F(xiàn)2,T3,T42,5P3(a-b-e)x=2,z=11,y=5k=0,j=0F1,F(xiàn)2,F(xiàn)3,F(xiàn)44,8P4(a-b-d)題目二:三角形問題在三角形計(jì)算中,要求

7、輸入三角型的三個(gè)邊長:A、B 和C。當(dāng)三邊不可能構(gòu)成三角形時(shí)提示錯(cuò)誤,可構(gòu)成三角形時(shí)計(jì)算三角形周長。若是等腰三角形打印“等腰三角形”,若是等邊三角形,則提示“等邊三角形”。畫出程序流程圖、控制流程圖、計(jì)算圈復(fù)雜度V(g),找出基本測試路徑。 一、核心程序代碼 /* 判斷三角形的類 */ public class TriangleTestMethod /* 判斷三角形的種類。參數(shù)a, b, c分別為三角形的三邊, * 返回的參數(shù)值為0,表示非三角形; * 為1,表示普通三角形; * 為2,表示等腰三角形; * 為3,表示等邊三角形。 */ public static int comfirm(in

8、t a, int b, int c) if(a + b > c) && (b + c > a) && (a + c > b) / 判斷為三角形 if(a = b) && (b =c) / 判斷為等邊三角形 return 3; if(a = b) | (b = c) | (a = c) / 判斷為等腰三角形 return 2; else / 判斷為普通三角形 return 1; else / 為非三角形 return 0; 二、程序流程圖三、測試用例 1.語句覆蓋測試用例輸入 期望輸出 覆蓋對象 測試結(jié)果 Case1 a=1, b

9、=2, c=3 0 , 0Case2a=3, b=4, c=5 1 , , , 1Case3a=3, b=3, c=4 2 , , , 2Case4a=3, b=4, c=5 3 , , 32.判定覆蓋測試用例輸入 期望輸出 覆蓋對象 測試結(jié)果 Case11a=1, b=2, c=3 0 , 0Case12a=3, b=4, c=5 1 , , , 1Case13a=3, b=3, c=4 2 , , , 2Case14a=3, b=4, c=5 3 , , 33.條件覆蓋測試用例輸入 期望輸出 覆蓋對象 測試結(jié)果 Case5a=1, b=6, c=7 0 F1, T2, T3 0 Case6

10、a=7, b=1, c=6 0 T1, F2, T3 0 Case7a=1, b=7, c=6 0 T1, T2, F3 0 Case8a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6, F7, F8 2 Case9a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 Case10a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 4.條件-判定覆蓋測試用例輸入 期望輸出 覆蓋對象 測試結(jié)果 Case15a=1, b=6, c=7 0 F1, T2, T3 0 Case16a=

11、7, b=1, c=6 0 T1, F2, T3 0 Case17a=1, b=7, c=6 0 T1, T2, F3 0 Case18a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6, F7, F8 2 Case19a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 Case20a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 Case21a=3, b=3, c=3 3 F1, T2, T3 (3 , , ) 3 Case22a=3, b=4, c=5 1 T1, F2,

12、 T3 (, , , ) 1 5.條件組合覆蓋測試用例輸入 期望輸出 覆蓋對象 測試結(jié)果 Case23a=1, b=6, c=7 0 F1, T2, T3 0 Case24a=7, b=1, c=6 0 T1, F2, T3 0 Case25a=1, b=7, c=6 0 T1, T2, F3 0 Case26a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6, F7, F8 2 Case27a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 Case28a=4, b=3, c=3 2 T1, T2, T3, F4, T5

13、, F6, T7, F8 2 Case29a=3, b=4, c=5 1 T1, T2, T3, F4, F5, F6, F7, F8 1 Case30a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 備注 其他條件組合,無法到達(dá)結(jié)束 四、程序控制流圖基本路徑覆蓋測試用例輸入 期望輸出 覆蓋對象 測試結(jié)果 Case31 a=1, b=6, c=7 0 A->D 0 Case32 a=7, b=6, c=1 0 A->B->D 0 Case33 a=1, b=7, c=6 0 A->B->C->D 0 Case3

14、4 a=3, b=3, c=3 3 A->B->C->E->G->H 3 Case35 a=3, b=3, c=4 2 A->B->C->E->G->I 2 Case36 a=4, b=3, c=3 2 A->B->C->E->F->H 2 Case37 a=3, b=4, c=3 2 A->B->C->E->F->J->H 2 Case38 a=3, b=4, c=5 1 A->B->C->E->F->J->K 1 題目三:計(jì)算生日

15、是星期幾已知公元1年1月1日是星期一。編寫一個(gè)程序,只要輸入年月日,就能回答那天是星期幾。應(yīng)用邏輯覆蓋方法和基路徑測試方法為上面的問題設(shè)計(jì)測試用例一程序代碼#include<stdio.h>int check(int year,int month,int day)int pass=1;int leap=0; if( (year%4=0 && year%100!=0 )| year%400=0 ) leap=1; if(year<1 |day<1) return 0; switch(month) case 1:case 3:case 5:case 7:ca

16、se 8:case 10:case 12:if(day>31)return 0;break; case 4:case 6:case 9:case 11:if(day>30) return 0; break; case 2: if(leap=1&&day>29) return 0; if(leap=0&&day>28)return 0; break; default:return 0;break; return pass; void fun()int year,month,day,sumday; sumday=0;printf("

17、input year,month,day:n"); scanf("%d%d%d",&year,&month,&day);if(check(year,month,day)=0)printf("輸入的日期無效");return;if(month=1|month=2) month+=12; year-;sumday=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;if(month=13|month=14) month-=12; year+;switch(s

18、umday) case 0:printf("%d-%d-%d is Mondayn",year,month,day);break; case 1:printf("%d-%d-%d is Tuesdayn",year,month,day);break; case 2:printf("%d-%d-%d is Wednesdayn",year,month,day);break; case 3:printf("%d-%d-%d is Thurdayn",year,month,day);break; case 4:print

19、f("%d-%d-%d is Fridayn",year,month,day);break; case 5:printf("%d-%d-%d is Saturdayn",year,month,day);break; case 6:printf("%d-%d-%d is Sundayn",year,month,day);break;default:printf("date error");break; main() for(int i=0;i<14;i+) fun();二畫出程序的控制流圖1.程序流程圖如下:m

20、onth=13|month=14nomonth=1|month=2yesmonth+=12;year-;計(jì)算星期數(shù)sumday=公式(year,month,day)noyesMonth-=12;year+;5460 1 2 3 4 5 6 其他sumday輸出語句1輸出語句2輸出語句3輸出語句4輸出語句5輸出語句6輸出語句7輸出語句0結(jié)束78910111213141515輸入年月日year,month,day23endCheck(year,month,day)01Check( )函數(shù)nononoyesyes得到y(tǒng)ear,month,dayyear<1 |day<1no(year%4

21、=0 && year%100!=0 )| year%400=01 3 5 7 8 10 12 4 6 9 11 2 其他monthreturn passpass=1; leap=0;leap=1;return 0day>31day>30return 0noyesreturn 0yesleap=1&&day>29leap=0&&day>28return 0161817192021222324252628292827313032332.程序控制流圖如下:16191721222324313334ennd

22、9101113143.用基本路徑的測試路徑編號基本路徑編號基本路徑1(21)(24)(31)(33)11(0)2(34)12(0)3(21)(34)13(0)4(21)(22)(34)14(0)5(21)(23)(34)15(0)(11)6(21)(24)(34)16(0)(12)7(21)(31)(34)17(0)(13)8(21)(22)(33)18(0)(14)9(21)(23)(33)10(21)(31)(33)條件:編號條件編號編號T1month=1T13year%100!=0T25month=2T2month=2T14year%100!=0T26month=3T3month=13T

23、15year%400=0T27month=4T4month=14T16year<1T28month=5T5sumday=0T17day<1T29month=6T6sumday=1T18month=1T30month=7T7sumday=2T19day>31T31month=8T8sumday=3T20day>30T32month=9T9sumday=4T21leap=1T33month=10T10sumday=5T22leap=0T34month=11T11sumday=6T23day>29T35month=12T12year%4=0T24day>284.測

24、試用例用例編號 輸入的數(shù)據(jù)預(yù)期的輸出實(shí)際的輸出執(zhí)行的路徑覆蓋的條件12012 2 1WednesdayWednesday(0)T12,T13,T25,T21,T2,T4,T722012 3 1ThurdayThurday(0)T12,T13,T26,T832012 4 6FridayFriday(0)T12,T13,T27,T942012 5 5SaturdaySaturday(0)(11)T12,T13,T28,T1052012 6 3SundaySunday(0)(12)T12,T13,T29,T1162012 7 30MondayMonday(0)(13)T12,T13,T30,T572

25、000 8 15TuesdayTuesday(0)(14)T12,T15,T31,T682012 9 31錯(cuò)誤提示錯(cuò)誤提示(0)T12,T13,T20,T3292013 2 8WednesdayWednesday(21)(24)(31)(33)T25,T22,T2,T4,T7102013 0 12錯(cuò)誤提示錯(cuò)誤提示(34)T17112013 1 26SaturdaySaturday(21)(34)T18,T1,T3,T10122013 10 33錯(cuò)誤提示錯(cuò)誤提示(21)(22)(34)T33,T19132013 11 31錯(cuò)誤提示錯(cuò)誤提示(21)(23)(34)T34,T20142012 2 3

26、0錯(cuò)誤提示錯(cuò)誤提示(21)(24)(34)T12,T13,T25,T21,T23152013 2 29錯(cuò)誤提示錯(cuò)誤提示(21)(31)(34)T25,T24162013 12 31SaturdaySaturday(21)(22)(33)T35,T10172013 6 30SundaySunday(21)(23)(33)T29,T11182013 2 15FridayFriday(21)(24)(31)(33)T25,T22,T2,T4,T9190 12 12錯(cuò)誤提示錯(cuò)誤提示(34)T16題目四:選擇排序下面是選擇排序的程序,其中datalist是數(shù)據(jù)表,它有兩個(gè)數(shù)據(jù)成員:一是元素類型為Element的數(shù)組V,另一個(gè)是數(shù)組大小n。算法中用到兩個(gè)操作,一是取某數(shù)組元素Vi的關(guān)鍵碼操作getKey ( ),一是交換兩數(shù)組元素內(nèi)容的操作Swap( ): void SelectSort ( datalist & list ) /對表list

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論