




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
桂林航天工业学院课程设计报告 课程名称: 软 件 测 试专 业: 软 件 技 术学 号: xxx 姓 名: 指导教师: 实验一 黑盒测试一实验目的(1)能熟练应用黑盒测试技术进行测试用例设计; (2)对测试用例进行优化设计;二实验内容1三角形问题的边界值分析测试用例 在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为1, 100 。在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。 R1 = : 边为a,b,c的等边三角形 R2 = : 边为a,b,c的等腰三角形 R3 = : 边为a,b,c的一般三角形 R4 = : 边为a,b,c不能组成三角形 2. 找零钱最佳组合 假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。 假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。请结合等价类划分法和边界值分析法为上述程序设计 出相应的测试用例。3、 程序代码1.三角形问题程序。#includeint main(void)int a,b,c;/定义三个整数a,b,cprintf(请输入1到100的三个整数:);scanf(%d%d%d,&a,&b,&c);if(a=1&a=1&b=1&bc)&(a+cb)&(b+ca)/判断是否构成三角形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.找零钱最佳组合问题程序。#includestdio.hvoid calc(int);/计算找钱int main(void)int R,P;while(1)printf(请输入商品的价格:);scanf(%d,&R);if(0R&R=100)printf(请输入支付的金额:);scanf(%d,&P);if(0P&P=100)R=P-R;if(R=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 %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为整数。2 a,b,c的取值范围在1,100。3 任意两边的和大于第三边。 4 三条边相等。5 任意两边相等。6 一般三角形。无效等价类7 a,b,c的取值范围不在1,100。8 任意两边的和小于第三边。9 不是整数(字母、字符、小数)2. 找零钱最佳组合问题划分等价类有效等价类1 0R1002 01009 P010 P100五、根据等价类设计的测试用例三角形问题等价类测试用例:用例编号输入的数据预期输出实际输出覆盖的等价类abc1505050等边三角形等边三角形 250502等腰三角形等腰三角形3345一般三角形一般三角形410121输入1到100的三个整数输入1到100的三个整数5321不能组成三角形不能组成三角形6zxy输入1到100的三个整数输入1到100的三个整数7!*输入1到100的三个整数输入1到100的三个整数80.10.80.3输入1到100的三个整数输入1到100的三个整数找零钱最佳组合问题等价类测试用例:用例编号输入的数据预期输出实际输出覆盖的等价类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,N1=1N50=1,N10=1,N5=1,N1=180100价格应大于0不大于100价格应大于0不大于100932不够钱支付不够钱支付1055不用找零钱不用找零钱111000支付金额大于0不大于100支付金额大于0不大于10012101100价格应大于0不大于100价格应大于0不大于10013100101支付金额大于0不大于100支付金额大于0不大于1006、 根据边界值分析法设计测试用例1. 三角形问题边界值分析法测试用例:根据输入值分析边界值:1 边界值为02 边界值为13 边界值为24 边界值为995 边界值为1006 边界值为101用例编号输入的数据预期输出实际输出覆盖的边界值abc105050输入1到100的三个整数输入1到100的三个整数215050等腰三角形等腰三角形325050等腰三角形等腰三角形4995050等腰三角形等腰三角形51005050等腰三角形等腰三角形61015050输入1到100的三个整数输入1到100的三个整数750050输入1到100的三个整数输入1到100的三个整数850150等腰三角形等腰三角形950250等腰三角形等腰三角形10509950等腰三角形等腰三角形111005050等腰三角形等腰三角形125010150输入1到100的三个整数输入1到100的三个整数1350500输入1到100的三个整数输入1到100的三个整数1450501等腰三角形等腰三角形1550502等腰三角形等腰三角形16505099等腰三角形等腰三角形175050100等腰三角形等腰三角形185050101输入1到100的三个整数输入1到100的三个整数2. 找零钱最佳组合问题边界值分析法测试用例: 根据输入值分析边界值: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根据输出值分析边界值:1 找50元1张2 找10元4张3 找10元3张4 找10元2张5 找10元1张6 找5元1张7 找1元4张8 找1元3张9 找1元2张10 找1元1张用例编号输入的数据预期输出实际输出覆盖的边界值RP110150价格应大于0不大于100价格应大于0不大于100f2050价格应大于0不大于100价格应大于0不大于100a3-150价格应大于0不大于100价格应大于0不大于100c450101支付金额大于0不大于100支付金额大于0不大于100l5500支付金额大于0不大于100支付金额大于0不大于100g650-1支付金额大于0不大于100支付金额大于0不大于100i710050不够钱支付不够钱支付e896100N1=4N1=4k995100N5=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黑盒测试 实验二一实验目的(1)能熟练应用黑盒测试技术进行测试用例设计; (2)对测试用例进行优化设计;二实验内容1 NextDate函数的边界值分析测试用例程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1month12、1day31、1900 year 2050。),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上第二天的日期。例如,输入为2005年11月30日,则该程序的输出为2005年12月1日。请用等价类测试和边界测试法设计测试用例。3、 程序代码#includestdio.hint main(void) int year; int month; int day; printf(请输入年份:); scanf(%d,&year); while(!(year=1900& year12|month31|day30|day29) printf(本月是闰月,请在1-29之间重新输入日期!n); return; else if(day=29) day=1; else day+; else if(month=2) if(day28) 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/%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(明天是:%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,year,month,day); break; else day+; printf(明天是:%d/%d/%dn,year,month,day); break; 四、写出划分的等价类输入条件编号有效等价类编号无效等价类输入年份1900=year=2050year2050输入月份1=month=12month12输入日期1=day=31day31输入类型输入为int型除int型外的任意输入输入为闰年输入2月29日输入为闰年2月30日输入为平年输入2月28日输入2月29日五、根据等价类设计的测试用例用例编号输入的数据预期输出实际输出覆盖的等价类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/3/43日期输入有误,请重新输入!日期输入有误,请重新输入!10Dasd#¥%asdasdasd&%ffgwgrwgrerhsxcvxfgdfg程序进入死循环程序进入死循环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. day=30k. day=31l. day=32m. year=1899n. year=1900o. year=1901p. year=2049q. year=2050r. year=2051用例编号输入的数据预期输出实际输出覆盖的边界值monthdayyear16151899输入的年份不正确!输入的年份不正确!m261519001900.6.161900.6.16n361519011901.6.161901.6.16o461520491975.6.161975.6.16p561520502049.6.162049.6.16q66152051输入的年份不正确!输入的年份不正确!r7601975日期输入有误,请重新输入!日期输入有误,请重新输入!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.16d17121519751975.12.161975.12.16e1813151975月份输入有误,请重新输入!月份输入有误,请重新输入!f 实验三 白盒测试实验一实验目的 能熟练应用白盒测试技术设计测试用例;二实验内容要求1根据流程图编写程序,并使用逻辑覆盖测试方法测试。X8 AND Y5X0 OR Y0X=y+20X=y/3NYNYX16 OR Y10X=2*yNY要求:(1)画出程序图。(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖设计测试用例。 三、程序代码#includestdio.hint main(void)float x,y;printf(请输入x,y:);scanf(%f%f,&x,&y);if(x8&y5)if(x16|y10)x=2*y;else return 0;else if(x0|y0)x=y/3;elsex=y+20;printf(x=%.2fn,x);return 0;四、画出程序图1326457 5、 设计测试用例 T1:x8 T2:y5 T3:x0 T4:y0 T5:X16 T6:y10 A1,A2,A3语句覆盖用例编号输入的数据预期的输出实际的输出执行路径条件覆盖判定结点覆盖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判定覆盖用例编号输入的数据预期的输出实际的输出执行路径条件覆盖 判定结点覆盖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,A34x=9,y=61-3-7T1,T2,-T3,-T4,-T5,-T6 A1,-A3条件覆盖用例编号输入的数据预期的输出实际的输出执行路径条件覆盖 判定结点覆盖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,A34x=9,y=61-3-7T1,T2,-T3,-T4,-T5,-T6 A1,-A3判定/条件覆盖用例编号输入的数据预期的输出实际的输出执行路径条件覆盖 判定结点覆盖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,A34x=9,y=61-3-7T1,T2,-T3,-T4,-T5,-T6 A1,-A3实验四 白盒测试一实验目的 能熟练应用白盒测试技术设计测试用例;二实验内容要求1. 计算生日是星期几 已知公元1年1月1日 是星期一。编写一个程序,只要输入年月日,就能回答那天是星期几。应用逻辑覆盖方法和基本路径测试方法为上面的问题设计测试用例。要求:(1)画出该程序的控制流图;(2)用基本路径测试方法给出测试路径;(3)为满足判定/条件覆盖设计测试用例。三、程序代码#includeint 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(year1 |day31)return 0;break;/计算31天 case 4:case 6:case 9:case 11:if(day30) return 0; break;/计算30天 case 2: if(leap=1&day29) return 0;/判断闰年的2月 if(leap=0&day28)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); scanf(%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-%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,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;i14;i+) fun(); return 0;4、 画出程序的控制流图1.程序流程图如下:2. 程序控制流图如下:315610245715141312118910check()函数控制流图如下: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、 设计测试用例条件:编号条件编号编号条件T1month=1T13year%100!=0T25month=2T2month=2T14year%100!=0T26month=3T3month=13T15year%400=0T27month=4T4month=14T16year1T28month=5T5sumday=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气缸活塞模型课件
- 少儿口才资料课件
- 打地鼠幼儿课件
- 汽车技术面试试题及答案
- 广播电台技术岗位试题及答案
- 辅警法制培训课件
- 湖北省孝感市2025-2026学年高二上学期9月月考考试历史试卷
- 中国银行2025酒泉市秋招笔试英语题专练及答案
- 建设银行2025九江市秋招结构化面试经典题及参考答案
- 工商银行2025嘉峪关市秋招半结构化面试题库及参考答案
- 考研英语一阅读理解真题大全
- 销售经理竞聘述职报告
- 普通发热患者接诊流程
- 农村生活污水处理技术指南
- 2024万科物业客户满意度调查合同范本3篇
- 大健康产业的未来发展方向
- 2025学士学位英语考试模拟题库
- 人教PEP版五年级上册英语Unit 1 Whats he like大单元整体教学设计
- GB/T 44823-2024绿色矿山评价通则
- 氧化还原反应配平专项训练
- 人教版PEP小学六年级英语上册教学计划及教学进度
评论
0/150
提交评论