桂林航天工业学院课程设计报告课程名称:软件测试专业:软件技术学号:*********xxx 姓名:指导教师:实验一黑盒测试一.实验目的(1)能熟练应用黑盒测试技术进行测试用例设计;(2)对测试用例进行优化设计;二.实验内容1.三角形问题的边界值分析测试用例在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。
在此,我们将三角形每边边长的取范围值设值为[1, 100] 。
在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。
利用这些信息能够确定下列输出(值域)等价类。
R1 = { <a,b,c>: 边为a,b,c的等边三角形}R2 = { <a,b,c>: 边为a,b,c的等腰三角形}R3 = { <a,b,c>: 边为a,b,c的一般三角形}R4 = { <a,b,c>: 边为a,b,c不能组成三角形}2. 找零钱最佳组合假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。
假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。
请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。
三、程序代码1.三角形问题程序。
#include<stdio.h>int main(void){int a,b,c;//定义三个整数a,b,cprintf("请输入1到100的三个整数:");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>a))//判断是否构成三角形{if(a==b&&b==c)printf("等边三角形\n");else if(a==b||a==c||b==c)printf("等腰三角形\n");elseprintf("一般三角形\n");}elseprintf("不能组成三角形\n");}elseprintf("输入1到100的三个整数!\n");return 0;}2.找零钱最佳组合问题程序。
#include"stdio.h"void calc(int);//计算找钱int main(void){int R,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(R);printf("\n");}elseprintf("支付金额大于0不大于100!\n");}elseprintf("价格应大于0不大于100!\n");}return 0;}void calc(int R){int N50,N10,N5,N1;N50=N10=N5=N1=0;printf("找零钱:¥%d\n",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+=1;R-=1;}printf("............\n");printf("¥50x %d\n",N50);printf("¥10x %d\n",N10);printf("¥5x %d\n",N5);printf("¥1x %d\n",N1);printf("............\n");printf("Total:%d\n",N50+N10+N5+N1); }四、写出划分的等价类1.三角形问题划分等价类有效等价类①a,b,c为整数。
②a,b,c的取值范围在[1,100]。
③任意两边的和大于第三边。
④三条边相等。
⑤任意两边相等。
⑥一般三角形。
无效等价类⑦a,b,c的取值范围不在[1,100]。
⑧任意两边的和小于第三边。
⑨不是整数(字母、字符、小数)2.找零钱最佳组合问题划分等价类有效等价类①0<R≤100②0<P≤100③0≤N1≤4④0≤N5≤1⑤0≤N10≤4⑥0≤N50≤1无效等价类⑦R≤0⑧R>100⑨P≤0⑩P>100五、根据等价类设计的测试用例三角形问题等价类测试用例:找零钱最佳组合问题等价类测试用例:六、根据边界值分析法设计测试用例1.三角形问题边界值分析法测试用例:根据输入值分析边界值:①边界值为0②边界值为1③边界值为2④边界值为99⑤边界值为100⑥边界值为1012.找零钱最佳组合问题边界值分析法测试用例:根据输入值分析边界值: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根据输出值分析边界值:①找50元1张②找10元4张③找10元3张④找10元2张⑤找10元1张⑥找5元1张⑦找1元4张⑧找1元3张⑨找1元2张⑩找1元1张黑盒测试实验二一.实验目的(1)能熟练应用黑盒测试技术进行测试用例设计;(2)对测试用例进行优化设计;二.实验内容1.NextDate函数的边界值分析测试用例程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤year ≤2050。
),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上第二天的日期。
例如,输入为2005年11月30日,则该程序的输出为2005年12月1日。
请用等价类测试和边界测试法设计测试用例。
三、程序代码#include"stdio.h"int main(void) {int year;int month;int day;printf("请输入年份:");scanf("%d",&year);while(!(year>=1900&& year<=2050))//判断年是否有效{printf("输入的年份不正确!\n");return;}printf("请输入月份:");scanf("%d",&month);while (month>12||month<1)//判断月是否有效{printf("月份输入有误,请重新输入!\n");return;}printf("请输入日期号:");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;}}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)//计算当前日期的下一天{case 1:case 3:case 5:case 7:case 8:case 10:if (day==31){month++;day=1;printf("明天是:%d/%d/%d\n",year,month,day);break;}else{day++;printf("明天是:%d/%d/%d\n",year,month,day);break;}case 2:if(day==1){month++;printf("明天是:%d/%d/%d\n",year,month,day);break;}else{printf("明天是:%d/%d/%d\n",year,month,day);break;}case 4:case 6:case 9:if(day==30){month++;day=1;printf("明天是:%d/%d/%d\n",year,month,day);break;}else{day++;printf("明天是:%d/%d/%d\n",year,month,day);break;}case 12:if(day==31){year++;month=1;day=1;printf("明天是:%d/%d/%d\n",year,month,day);break;}day++;printf("明天是:%d/%d/%d\n",year,month,day);break;}}}四、写出划分的等价类五、根据等价类设计的测试用例六、边界值分析法测试用例:a. month=0b. month=1c. month=2d. month=11e. month=12f. month=13g. day=0i. day=2 j. day=30 k. day=31 l. day=32 m. year=1899n. year=1900 o. year=1901p. year=2049 q. year=2050 r. year=2051实验三白盒测试实验一.实验目的能熟练应用白盒测试技术设计测试用例;二.实验内容要求1.根据流程图编写程序,并使用逻辑覆盖测试方法测试。