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

下載本文檔

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

文檔簡(jiǎn)介

1、白盒測(cè)試用例練習(xí)白盒測(cè)試用例練習(xí) 1為以下所示的程序段設(shè)計(jì)一組測(cè)試用例,要求分別滿足語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋,并畫出相應(yīng)的程序流程圖。void DoWork (int _,int y,int z) int k=0,j=0; if ( (_3)(z5) ) j=_y+10; /語(yǔ)句塊2 j=j3; /語(yǔ)句塊3 k=0 j=0 k=_y-1 j=sqrt(k) _3 and z5 e Y j=_y+10 N d j=j3 由這個(gè)流程圖可以看出,該程序模塊有4條不同的路徑:P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d)

2、將里面的判定條件和過程記錄如下:判定條件M_3 and z5 1、 語(yǔ)句覆蓋 測(cè)試用例輸入 輸出 判定M的取值 判定N的取值 覆蓋路徑 _=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) 2、判定覆蓋 p1和p4可以作為測(cè)試用例,其中p1作為取真的路徑,p4作為取反的路徑。測(cè)試用例輸入 輸出 判定M的取值 判定N的取值 覆蓋路徑 _=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) _=2,z=11,y=5 k=0,j=0 F F P4(a-b-d) 也可以讓測(cè)試用例測(cè)試路徑P2和P3。相應(yīng)的兩組輸入數(shù)據(jù)如下:測(cè)試用例輸入 輸出 判定M的取值 判定N的取值 覆

3、蓋路徑 _=5,z=5,y=4 k=19,j=sqrt(19)3 T F P2(a-c-d) _=4,z=11,y=6 k=0,j=1 F T P3(a-b-e) 3、條件覆蓋 對(duì)于M:_3取真時(shí)T1,取假時(shí)F1; z5取真時(shí)T4,取假時(shí)F4。條件:_3,z5 條件:_=10,_!=4,y3,z5 P1(a-c-e) _=3,z=11,y=5 k=0, j=0 F1,F(xiàn)2,F(xiàn)3,F(xiàn)4 _=10,_!=4,y3,z5 P1(a-c-e) _=3,z=11,y=5 k=0, j=0 F1,F(xiàn)2,F(xiàn)3,F(xiàn)4 _=10,_!=4,y3,z3,z=10 3) _=10 5)_=4,y5 6)_=4,y5

4、 8)_!=4,y 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; 二、程序流程圖 三、測(cè)試用例 1.語(yǔ)句覆蓋測(cè)試用例 輸入 期望輸出 覆蓋對(duì)象 測(cè)試結(jié)果 Case1 a=1, b=2, c=3 0 , 0 Case2 a=3, b=4, c=5 1 , , , 1 Case3 a=3, b=3, c=4

5、2 , , , 2 Case4 a=3, b=4, c=5 3 , , 3 2.判定覆蓋測(cè)試用例 輸入 期望輸出 覆蓋對(duì)象 測(cè)試結(jié)果 Case11 a=1, b=2, c=3 0 , 0 Case12 a=3, b=4, c=5 1 , , , 1 Case13 a=3, b=3, c=4 2 , , , 2 Case14 a=3, b=4, c=5 3 , , 3 3.條件覆蓋測(cè)試用例 輸入 期望輸出 覆蓋對(duì)象 測(cè)試結(jié)果 Case5 a=1, b=6, c=7 0 F1, T2, T3 0 Case6 a=7, b=1, c=6 0 T1, F2, T3 0 Case7 a=1, b=7,

6、c=6 0 T1, T2, F3 0 Case8 a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6, F7, F8 2 Case9 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 Case10 a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 4.條件-判定覆蓋測(cè)試用例 輸入 期望輸出 覆蓋對(duì)象 測(cè)試結(jié)果 Case15 a=1, b=6, c=7 0 F1, T2, T3 0 Case16 a=7, b=1, c=6 0 T1, F2, T3 0 Case17 a=1,

7、 b=7, c=6 0 T1, T2, F3 0 Case18 a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6, F7, F8 2 Case19 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 Case20 a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 Case21 a=3, b=3, c=3 3 F1, T2, T3 (3 , , ) 3 Case22 a=3, b=4, c=5 1 T1, F2, T3 (, , , ) 1 5.條件組合覆蓋測(cè)試用例 輸入 期

8、望輸出 覆蓋對(duì)象 測(cè)試結(jié)果 Case23 a=1, b=6, c=7 0 F1, T2, T3 0 Case24 a=7, b=1, c=6 0 T1, F2, T3 0 Case25 a=1, b=7, c=6 0 T1, T2, F3 0 Case26 a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6, F7, F8 2 Case27 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 Case28 a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 Case29 a=3

9、, b=4, c=5 1 T1, T2, T3, F4, F5, F6, F7, F8 1 Case30 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 備注 其他條件組合,無(wú)法到達(dá)結(jié)束 四、程序控制流圖 基本路徑覆蓋測(cè)試用例 輸入 期望輸出 覆蓋對(duì)象 測(cè)試結(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 Case34 a=3, b=3, c=3 3 A-B-C-E-G-H 3 Case35 a=3, b

10、=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ì)算生日是星期幾 已知公元1年1月1日是星期一。編寫一個(gè)程序,只要輸入年月日,就能回答那天是星期幾。應(yīng)用邏輯覆蓋方法和基路徑測(cè)試方法為上面的問題設(shè)計(jì)測(cè)試用例 一程序代碼 #include int check(int year,int month,int day) int pass=1; int leap=0; i

11、f( (year4=0 year100!=0 )| year400=0 ) leap=1; if(year31)return 0;break; case 4:case 6:case 9:case 11:if(day30) return 0; break; case 2: if(leap=1day29) return 0; if(leap=0day28)return 0; break; default:return 0;break; return pass; void fun int year,month,day,sumday; sumday=0; printf(“input year,mont

12、h,day:n“); scanf(“ddd“,year,month,day); if(check(year,month,day)=0)printf(“輸入的日期無(wú)效“);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(sumday) case 0:printf(“d-d-d is Mondayn“,year,month,day

13、);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:printf(“d-d-d is Fridayn“,year,month,day);break; case 5:printf(“d-d-d is Saturdayn“,year,month,day);break; case

14、 6:printf(“d-d-d is Sundayn“,year,month,day);break; default:printf(“date error“);break; main for(int i=0;i31 day30 return 0 no yes return 0 yes leap=1day29 leap=0day28 return 0 16 18 17 19 20 21 22 23 24 25 26 28 29 28 27 31 30 32 33 2.程序控制流圖如下:16 19 17 21 22 23 24 31 33 34 end 15 2 4 3 5 8 7 6 12 e

15、nd 9 10 11 13 14 3.用基本路徑的測(cè)試路徑 編號(hào) 基本路徑 編號(hào) 基本路徑 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) 條件: 編號(hào) 條件 編號(hào) 編號(hào) T1 month=1 T13 year100!

16、=0 T25 month=2 T2 month=2 T14 year100!=0 T26 month=3 T3 month=13 T15 year400=0 T27 month=4 T4 month=14 T16 year31 T31 month=8 T8 sumday=3 T20 day30 T32 month=9 T9 sumday=4 T21 leap=1 T33 month=10 T10 sumday=5 T22 leap=0 T34 month=11 T11 sumday=6 T23 day29 T35 month=12 T12 year4=0 T24 day28 4.測(cè)試用例 用例

17、編號(hào) 輸入的數(shù)據(jù) 預(yù)期的輸出 實(shí)際的輸出 執(zhí)行的路徑 覆蓋的條件 1 20_ 2 1 Wednesday Wednesday (0) T12,T13,T25,T21,T2,T4,T7 2 20_ 3 1 Thurday Thurday (0) T12,T13,T26,T8 3 20_ 4 6 Friday Friday (0) T12,T13,T27,T9 4 20_ 5 5 Saturday Saturday (0)(11) T12,T13,T28,T10 5 20_ 6 3 Sunday Sunday (0)(12) T12,T13,T29,T11 6 20_ 7 30 Monday Mo

18、nday (0)(13) T12,T13,T30,T5 7 20_ 8 15 Tuesday Tuesday (0)(14) T12,T15,T31,T6 8 20_ 9 31 錯(cuò)誤提示 錯(cuò)誤提示 (0) T12,T13,T20,T32 9 20_ 2 8 Wednesday Wednesday (21)(24)(31)(33) T25,T22,T2,T4,T7 10 20_ 0 12 錯(cuò)誤提示 錯(cuò)誤提示 (34) T17 11 20_ 1 26 Saturday Saturday (21)(34) T18,T1,T3,T10 12 20_ 10 33 錯(cuò)誤提示 錯(cuò)誤提示 (21)(22)(3

19、4) T33,T19 13 20_ 11 31 錯(cuò)誤提示 錯(cuò)誤提示 (21)(23)(34) T34,T20 14 20_ 2 30 錯(cuò)誤提示 錯(cuò)誤提示 (21)(24)(34) T12,T13,T25,T21,T23 15 20_ 2 29 錯(cuò)誤提示 錯(cuò)誤提示 (21)(31)(34) T25,T24 16 20_ 12 31 Saturday Saturday (21)(22)(33) T35,T10 17 20_ 6 30 Sunday Sunday (21)(23)(33) T29,T11 18 20_ 2 15 Friday Friday (21)(24)(31)(33) T25,T

20、22,T2,T4,T9 19 0 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 ) /對(duì)表list.V0到list.Vn-1進(jìn)行排序, n是表當(dāng)前長(zhǎng)度。for ( int i = 0; i list.n-1; i+ ) int k = i; /在list.Vi.key到list.Vn-1.key中找具有最小關(guān)鍵碼的對(duì)象 for ( int j = i+1; j list.n; j+) if ( list.Vj.getKey ( ) list.Vk.getKey ( ) ) k = j;/當(dāng)前具最小關(guān)鍵碼的對(duì)象 if ( k != i ) Sw

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論