軟件測試實驗報告_第1頁
軟件測試實驗報告_第2頁
軟件測試實驗報告_第3頁
軟件測試實驗報告_第4頁
軟件測試實驗報告_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、桂林航天工業(yè)學院課程設(shè)計報告 課程名稱: 軟 件 測 試專 業(yè): 軟 件 技 術(shù)學 號: 201102520xxx 姓 名: 指導教師: 實驗一 黑盒測試一實驗?zāi)康模?)能熟練應(yīng)用黑盒測試技術(shù)進行測試用例設(shè)計; (2)對測試用例進行優(yōu)化設(shè)計;二實驗內(nèi)容1三角形問題的邊界值分析測試用例 在三角形問題描述中,除了要求邊長是整數(shù)外,沒有給出其它的限制條件。在此,我們將三角形每邊邊長的取范圍值設(shè)值為1, 100 。在三角形問題中,有四種可能的輸出:等邊三角形、等腰三角形、一般三角形和非三角形。利用這些信息能夠確定下列輸出(值域)等價類。 R1 = <a,b,c>: 邊為a,b,c的等邊三角

2、形 R2 = <a,b,c>: 邊為a,b,c的等腰三角形 R3 = <a,b,c>: 邊為a,b,c的一般三角形 R4 = <a,b,c>: 邊為a,b,c不能組成三角形 2. 找零錢最佳組合 假設(shè)商店貨品價格(R) 都不大于100元(且為整數(shù)),若顧客付款(P)在100元內(nèi),現(xiàn)有一個程序能在每位顧客付款后給出找零錢的最佳組合(找給顧客貨幣張數(shù)最少)。 假定此商店的貨幣面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四種。請結(jié)合等價類劃分法和邊界值分析法為上述程序設(shè)計 出相應(yīng)的測試用例。3、 程序代碼1.三角形問題程序。#in

3、clude<stdio.h>int main(void)int a,b,c;/定義三個整數(shù)a,b,cprintf("請輸入1到100的三個整數(shù):");scanf("%d%d%d",&a,&b,&c);if(a>=1&&a<=100)&&(b>=1&&b<=100)&&(b>=1&&b<=100)/判斷取值范圍if(a+b>c)&&(a+c>b)&&(b+c>

4、;a)/判斷是否構(gòu)成三角形if(a=b&&b=c)printf("等邊三角形n");else if(a=b|a=c|b=c)printf("等腰三角形n");elseprintf("一般三角形n");elseprintf("不能組成三角形n");elseprintf("輸入1到100的三個整數(shù)!n");return 0;2.找零錢最佳組合問題程序。#include"stdio.h"void calc(int);/計算找錢int main(void)int R,

5、P;while(1)printf("請輸入商品的價格:");scanf("%d",&R);if(0<R&&R<=100)printf("請輸入支付的金額:");scanf("%d",&P);if(0<P&&P<=100)R=P-R;if(R<0)printf("不夠錢支付!n");else if(R=0)printf("不用找零錢!n");elseprintf("n");calc

6、(R);printf("n");elseprintf("支付金額大于0不大于100!n");elseprintf("價格應(yīng)大于0不大于100!n");return 0;void calc(int R)int N50,N10,N5,N1;N50=N10=N5=N1=0;printf("找零錢:¥%dn",R);while(R-50>=0)N50+=1;R-=50;while(R-10>=0)N10+=1;R-=10;while(R-5>=0)N5+=1;R-=5;while(R-1>=0)N1

7、+=1;R-=1;printf(".n");printf("¥50x %dn",N50); printf("¥10x %dn",N10);printf("¥ 5x %dn",N5);printf("¥ 1x %dn",N1);printf(".n");printf("Total:%dn",N50+N10+N5+N1);四、寫出劃分的等價類1. 三角形問題劃分等價類有效等價類1 a,b,c為整數(shù)。2 a,b,c的取值范圍在1,100。3 任意兩邊的和大于第三

8、邊。 4 三條邊相等。5 任意兩邊相等。6 一般三角形。無效等價類7 a,b,c的取值范圍不在1,100。8 任意兩邊的和小于第三邊。9 不是整數(shù)(字母、字符、小數(shù))2. 找零錢最佳組合問題劃分等價類有效等價類1 0<R1002 0<P1003 0N144 0N515 0N1046 0N501無效等價類7 R08 R>1009 P010 P>100五、根據(jù)等價類設(shè)計的測試用例三角形問題等價類測試用例:用例編號輸入的數(shù)據(jù)預期輸出實際輸出覆蓋的等價類abc1505050等邊三角形等邊三角形 250502等腰三角形等腰三角形3345一般三角形一般三角形410121輸入1到10

9、0的三個整數(shù)輸入1到100的三個整數(shù)5321不能組成三角形不能組成三角形6zxy輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)7!*輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)80.10.80.3輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)找零錢最佳組合問題等價類測試用例:用例編號輸入的數(shù)據(jù)預期輸出實際輸出覆蓋的等價類RP112N1=1N1=12510N5=1N5=131050N10=4N10=4450100N50=1N50=15410N5=1,N1=1N5=1,N1=163250N10=1,N5=1,N1=3N10=1,N5=1,N1=3734100N50=1,N10=1,N5=1

10、,N1=1N50=1,N10=1,N5=1,N1=180100價格應(yīng)大于0不大于100價格應(yīng)大于0不大于100932不夠錢支付不夠錢支付1055不用找零錢不用找零錢111000支付金額大于0不大于100支付金額大于0不大于10012101100價格應(yīng)大于0不大于100價格應(yīng)大于0不大于10013100101支付金額大于0不大于100支付金額大于0不大于1006、 根據(jù)邊界值分析法設(shè)計測試用例1. 三角形問題邊界值分析法測試用例:根據(jù)輸入值分析邊界值:1 邊界值為02 邊界值為13 邊界值為24 邊界值為995 邊界值為1006 邊界值為101用例編號輸入的數(shù)據(jù)預期輸出實際輸出覆蓋的邊界值abc

11、105050輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)215050等腰三角形等腰三角形325050等腰三角形等腰三角形4995050等腰三角形等腰三角形51005050等腰三角形等腰三角形61015050輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)750050輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)850150等腰三角形等腰三角形950250等腰三角形等腰三角形10509950等腰三角形等腰三角形111005050等腰三角形等腰三角形125010150輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)1350500輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)1450501等

12、腰三角形等腰三角形1550502等腰三角形等腰三角形16505099等腰三角形等腰三角形175050100等腰三角形等腰三角形185050101輸入1到100的三個整數(shù)輸入1到100的三個整數(shù)2. 找零錢最佳組合問題邊界值分析法測試用例: 根據(jù)輸入值分析邊界值:a) R的邊界值為0b) R的邊界值為1c) R的邊界值為-1d) R的邊界值為99e) R的邊界值為100f) R的邊界值為101g) P的邊界值為0h) P的邊界值為1i) P的邊界值為-1j) P的邊界值為99k) P的邊界值為100l) P的邊界值為101根據(jù)輸出值分析邊界值:1 找50元1張2 找10元4張3 找10元3張4

13、找10元2張5 找10元1張6 找5元1張7 找1元4張8 找1元3張9 找1元2張10 找1元1張用例編號輸入的數(shù)據(jù)預期輸出實際輸出覆蓋的邊界值RP110150價格應(yīng)大于0不大于100價格應(yīng)大于0不大于100f2050價格應(yīng)大于0不大于100價格應(yīng)大于0不大于100a3-150價格應(yīng)大于0不大于100價格應(yīng)大于0不大于100c450101支付金額大于0不大于100支付金額大于0不大于100l5500支付金額大于0不大于100支付金額大于0不大于100g650-1支付金額大于0不大于100支付金額大于0不大于100i710050不夠錢支付不夠錢支付e896100N1=4N1=4k995100N

14、5=1N5=1k1091100N5=1,N1=4N5=1,N1=4k1190100N10=1N10=1k1251100N10=4,N5=1,N1=4N10=4,N5=1,N1=1k1350100N50=1N50=1k1412N1=1N1=1b1513N1=2N1=2b1697100N1=3N1=3k1780100N10=2N10=2k1870100N10=3N10=3k1960100N10=4N10=4k2021不夠錢支付不夠錢支付h219950不夠錢支付不夠錢支付d黑盒測試 實驗二一實驗?zāi)康模?)能熟練應(yīng)用黑盒測試技術(shù)進行測試用例設(shè)計; (2)對測試用例進行優(yōu)化設(shè)計;二實驗內(nèi)容1 NextD

15、ate函數(shù)的邊界值分析測試用例程序有三個輸入變量month、day、year(month、day和year均為整數(shù)值,并且滿足:1month12、1day31、1900 year 2050。),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上第二天的日期。例如,輸入為2005年11月30日,則該程序的輸出為2005年12月1日。請用等價類測試和邊界測試法設(shè)計測試用例。3、 程序代碼#include"stdio.h"int main(void) int year; int month; int day; printf("請輸入年份:")

16、; scanf("%d",&year); while(!(year>=1900&& year<=2050)/判斷年是否有效 printf("輸入的年份不正確!n"); return; printf("請輸入月份:"); scanf("%d",&month);while (month>12|month<1)/判斷月是否有效 printf("月份輸入有誤,請重新輸入!n"); return; printf("請輸入日期號:"

17、); scanf("%d",&day); if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)/判斷31天 while (day>31|day<1)/判斷日否有效 printf("日期輸入有誤,請重新輸入!n"); return; if(month=4|month=6|month=9|month=11)/判斷30天 while (day>30|day<1)/判斷日否有效 printf("日期輸入有誤,請重新輸入!n"); return

18、; if(year%4=0 && year%100!=0) | (year%400=0) /檢查閏年; if(month=2) if(day>29) printf("本月是閏月,請在1-29之間重新輸入日期!n"); return; else if(day=29) day=1; else day+; else if(month=2) if(day>28) printf("本月是閏月,請在1-28之間從新輸入日期!n");return; else if(day=28) day=1; else day+; switch(month

19、)/計算當前日期的下一天case 1:case 3:case 5:case 7:case 8:case 10: if (day=31) month+; day=1; printf("明天是:%d/%d/%dn",year,month,day); break; elseday+; printf("明天是:%d/%d/%dn",year,month,day); break;case 2: if(day=1) month+; printf("明天是:%d/%d/%dn",year,month,day); break; else printf

20、("明天是:%d/%d/%dn",year,month,day); break; case 4: case 6: case 9: case 11: if(day=30)month+;day=1; printf("明天是:%d/%d/%dn",year,month,day);break; elseday+; printf("明天是:%d/%d/%dn",year,month,day);break; case 12:if(day=31) year+; month=1; day=1; printf("明天是:%d/%d/%dn&q

21、uot;,year,month,day); break; else day+; printf("明天是:%d/%d/%dn",year,month,day); break; 四、寫出劃分的等價類輸入條件編號有效等價類編號無效等價類輸入年份1900<=year<=2050year<1900year>2050輸入月份1<=month<=12month<1month>12輸入日期1<=day<=31day<1day>31輸入類型輸入為int型除int型外的任意輸入輸入為閏年輸入2月29日輸入為閏年2月30日輸

22、入為平年輸入2月28日輸入2月29日五、根據(jù)等價類設(shè)計的測試用例用例編號輸入的數(shù)據(jù)預期輸出實際輸出覆蓋的等價類11988/2/31988/2/41988/2/422000/2/292000/3/12000/3/132001/2/282001/3/12001/3/14100/1/23輸入的年份不正確!輸入的年份不正確!52300/3/2輸入的年份不正確入!輸入的年份不正確!61912/0/3月份輸入有誤,請重新輸入!月份輸入有誤,請重新輸入!71927/90/3月份輸入有誤,請重新輸入!月份輸入有誤,請重新輸入!81956/3/-21日期輸入有誤,請重新輸入!日期輸入有誤,請重新輸入!91972

23、/3/43日期輸入有誤,請重新輸入!日期輸入有誤,請重新輸入!10Dasd#¥%asdasdasd&%ffgwgrwgrerhsxcvxfgdfg程序進入死循環(huán)程序進入死循環(huán)112000/2/30本月是閏月,請在1-29之間從新輸入日期!本月是閏月,請在1-29之間從新輸入日期!122001/2/29本月是閏月,請在1-28之間從新輸入日期!本月是閏月,請在1-28之間從新輸入日期!六、邊界值分析法測試用例:a. month=0b. month=1c. month=2d. month=11e. month=12f. month=13g. day=0h. day=1i. day=2j.

24、day=30k. day=31l. day=32m. year=1899n. year=1900o. year=1901p. year=2049q. year=2050r. year=2051用例編號輸入的數(shù)據(jù)預期輸出實際輸出覆蓋的邊界值monthdayyear16151899輸入的年份不正確!輸入的年份不正確!m261519001900.6.161900.6.16n361519011901.6.161901.6.16o461520491975.6.161975.6.16p561520502049.6.162049.6.16q66152051輸入的年份不正確!輸入的年份不正確!r7601975

25、日期輸入有誤,請重新輸入!日期輸入有誤,請重新輸入!g86119751975.6.21975.6.2h96219751975.6.31975.6.3i1063019751975.7.11975.7.1j116311975日期輸入有誤,請重新輸入!日期輸入有誤,請重新輸入!k126321975日期輸入有誤,請重新輸入!日期輸入有誤,請重新輸入!l130151975月份輸入有誤,請重新輸入!月份輸入有誤,請重新輸入!a1411519751975.1.161975.1.16b1521519751975.2.161975.2.16c16111519751975.11.161975.11.16d1712

26、1519751975.12.161975.12.16e1813151975月份輸入有誤,請重新輸入!月份輸入有誤,請重新輸入!f 實驗三 白盒測試實驗一實驗?zāi)康?能熟練應(yīng)用白盒測試技術(shù)設(shè)計測試用例;二實驗內(nèi)容要求1根據(jù)流程圖編寫程序,并使用邏輯覆蓋測試方法測試。X>8 AND Y>5X>0 OR Y>0X=y+20X=y/3NYNYX>16 OR Y>10X=2*yNY要求:(1)畫出程序圖。(2)分別以語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋設(shè)計測試用例。 三、程序代碼#include"stdio.h"int main(void)f

27、loat x,y;printf("請輸入x,y:");scanf("%f%f",&x,&y);if(x>8&&y>5)if(x>16|y>10)x=2*y;else return 0;else if(x>0|y>0)x=y/3;elsex=y+20;printf("x=%.2fn",x);return 0;四、畫出程序圖1326457 5、 設(shè)計測試用例 T1:x>8 T2:y>5 T3:x>0 T4:y>0 T5:X>16 T6:y&g

28、t;10 A1,A2,A3語句覆蓋用例編號輸入的數(shù)據(jù)預期的輸出實際的輸出執(zhí)行路徑條件覆蓋判定結(jié)點覆蓋1x=-1,y=-1 x=19.00x=19.001-2-4-7-T1,-T2,-T3,-T4,-T5,-T6 -A1,-A22x=8,y=5 x=y/3x=1.671-2-5-7-T1,-T2,T3,T4,-T5,-T6 -A1,A23x=17,y=10 x=20.00x=20.001-3-6-7T1,T2,-T3,-T4,T5,-T6A1,A3判定覆蓋用例編號輸入的數(shù)據(jù)預期的輸出實際的輸出執(zhí)行路徑條件覆蓋 判定結(jié)點覆蓋1x=-1,y=-1 x=19.00x=19.001-2-4-7-T1,-

29、T2,-T3,-T4,-T5,-T6 -A1,-A22x=8,y=5 x=y/3x=1.671-2-5-7-T1,-T2,T3,T4,-T5,-T6 -A1,A23x=17,y=10 x=20.00x=20.001-3-6-7T1,T2,-T3,-T4,T5,-T6A1,A34x=9,y=61-3-7T1,T2,-T3,-T4,-T5,-T6 A1,-A3條件覆蓋用例編號輸入的數(shù)據(jù)預期的輸出實際的輸出執(zhí)行路徑條件覆蓋 判定結(jié)點覆蓋1x=-1,y=-1 x=19.00x=19.001-2-4-7-T1,-T2,-T3,-T4,-T5,-T6 -A1,-A22x=8,y=5 x=y/3x=1.67

30、1-2-5-7-T1,-T2,T3,T4,-T5,-T6 -A1,A23x=17,y=10 x=20.00x=20.001-3-6-7T1,T2,-T3,-T4,T5,-T6A1,A34x=9,y=61-3-7T1,T2,-T3,-T4,-T5,-T6 A1,-A3判定/條件覆蓋用例編號輸入的數(shù)據(jù)預期的輸出實際的輸出執(zhí)行路徑條件覆蓋 判定結(jié)點覆蓋1x=-1,y=-1 x=19.00x=19.001-2-4-7-T1,-T2,-T3,-T4,-T5,-T6 -A1,-A22x=8,y=5 x=y/3x=1.671-2-5-7-T1,-T2,T3,T4,-T5,-T6 -A1,A23x=17,y=

31、10 x=20.00x=20.001-3-6-7T1,T2,-T3,-T4,T5,-T6A1,A34x=9,y=61-3-7T1,T2,-T3,-T4,-T5,-T6 A1,-A3實驗四 白盒測試一實驗?zāi)康?能熟練應(yīng)用白盒測試技術(shù)設(shè)計測試用例;二實驗內(nèi)容要求1. 計算生日是星期幾 已知公元1年1月1日 是星期一。編寫一個程序,只要輸入年月日,就能回答那天是星期幾。應(yīng)用邏輯覆蓋方法和基本路徑測試方法為上面的問題設(shè)計測試用例。要求:(1)畫出該程序的控制流圖;(2)用基本路徑測試方法給出測試路徑;(3)為滿足判定/條件覆蓋設(shè)計測試用例。三、程序代碼#include<stdio.h>in

32、t check(int year,int month,int day)/檢查year, month,dayint pass=1;int leap=0; if( (year%4=0 && year%100!=0 )| year%400=0 )/判斷是否是閏年 leap=1; if(year<1 |day<1) return 0;/判斷year,day是否正確 switch(month) case 1:case 3:case 5:case 7:case 8:case 10:case 12:if(day>31)return 0;break;/計算31天 case 4

33、:case 6:case 9:case 11:if(day>30) return 0; break;/計算30天 case 2: if(leap=1&&day>29) return 0;/判斷閏年的2月 if(leap=0&&day>28)return 0;/判斷平年的2月 break; default:return 0;break; return pass; void fun()int year,month,day,sumday; sumday=0;printf("input year,month,day:n"); sca

34、nf("%d%d%d",&year,&month,&day);if(check(year,month,day)=0)printf("輸入的日期無效!n");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

35、-%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:printf("%d-%d-%d is Fridayn"

36、;,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; int main(void) for(int i=0;i<14;i+) fun(); return 0;4、 畫出程序的控制流圖1.程序流程圖如下:2. 程序控制流圖如下:315610245715141312118910check()函數(shù)控制流圖如下:5、 寫出基本路徑編號基本路徑編號基本路徑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)6、 設(shè)計測試用例條件:編號條

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論