《学生选课系统-黑盒测试(共21页).doc》由会员分享,可在线阅读,更多相关《学生选课系统-黑盒测试(共21页).doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验报告 课程名称:软件测试方法和技术 学生姓名:刘成立、龙甜 学号:、 院系:计算机 班级:1202 组别:1任课教师:张建东 指导老师:张建东目录一、黑盒测试方法相关概念: 1.1黑盒测试定义:1.2黑盒测试分类:1.3黑盒测试优缺点:二、 学生选课系统,选课、退选功能结构:2.1选课、退选层次图:2.2选课、退选流程图: 三、等价类划分法: 3.1:等价类划分法过程分析: 3.2:等价类划分法测试用例: 四、边界值分析法: 4.1:边界值分析法过程分析: 4.2:边界值分析法测试用例: 五、实验总结: 六、测试截图: 七、源代码: 实验二 黑盒测试用例设计一、黑
2、盒测试方法相关概念:1.1黑盒测试定义: 黑盒测试也称,它是通过测试来检测每个功能是否都能正常使用。在测试中,把看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于外部结构,不考虑内部,主要针对和软件功能进行测试。1.2黑盒测试分类:黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。1.3黑盒测试优缺点: 优点:黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。能
3、够直观的检验软件功能是否符合用户的需求;功能是否正确、有无遗漏;发现界面错误,是否美观、输入和输出错误、访问错误、功能操作逻辑不合理、和错误等。缺点:软件外部特性本身设计有问题或规格说明的规定有误,黑盒测试方法发现不了。二、 学生选课系统,选课、退选功能层次图:2.1、选课、退选层次图:学生选课系统学生入口选课退选选课查询2.2选课、退选流程图:2.2.1学生选课系统选课流程图:T输出:该课程不存在a=0?AFb0&bCno|a0FBT输出:该课程不存在b=0?CF是否重新退选课?c=1?退选课程TFTd=1?D输出:退选成功F输出:你还未选此门课程注释:条件A为,判定课程号是否输入有误? 条
4、件B为,判定课程号是否存在? 条件C为,判断是否重新退选? 条件D为,判定退选是否成功?三、等价类划分法: 3.1:等价类划分法过程分析: 3.1.1等价类划分法基本思想:用一组有限的数据去代表近似无限的数据。3.1.2等价类划分法的定义:等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。3.2:等价类划分法测试:3.2.1等价类划分: 输入合理等价类不合理等价类选课课程号1=n63、N1选课确认输入1或者21、有非数字字符;2、输入大于2的数字3、输入小于1的数字是否继续选课选项输入1或
5、者21、有非数字字符;2、输入大于2的数字3、输入小于1的数字退选课程号已选课程号1、有非数字字符;2、输入未选课程号3、输入课程号范围外的数字是否继续退选输入1或者21、有非数字字符;2、输入大于2的数字3、输入小于1的数字3.2.2测试用例的设计:编号输入实际输入预期结果Ok/NgP1选课课程号输入非数字字符;输入数据类型错误,请重新输入NGP2输入大于6的数字该课程不存在OKP3输入小于1的数字该课程不存在OKP4选课确认输入非数字字符;输入数据类型错误,请重新输入NGP5输入大于2的数字是否继续选课OKP6输入小于1的数字是否继续选课OKP7是否继续选课输入非数字字符;输入数据类型错误
6、,请重新输入NGP8输入大于2的数字按任意键返回OKP9输入小于1的数字按任意键返回OKP10退选课程号输入非数字字符;输入数据类型错误,请重新输入NGP11输入未选课程号该课程还未选OKP12输入课程号范围外的数字该课程不存在OKP13是否继续退选输入非数字字符;输入数据类型错误,请重新输入NGP14输入大于2的数字按任意键返回OKP15输入小于1的数字按任意键返回OK 四、边界值分析法边界值分析法就是在某个输入输出变量范围的边界上,验证系统功能是否正常运行的测试方法。1、输入条件:输入身份序号。测试用例:(1) 输入0或4,测试结果为:程序运行结束,并且无任何提示信息。(2) 输入1,测试
7、结果为:进入学生登陆界面,等待用户输入。(3) 输入3,测试结果为:进入管理员界面,等待管理员输入。2、输入条件:输入登陆账号。输入:数字16。输入:数字16以外的数字。输入16之间的数字才会进入到选课界面,超出范围的任何数字都对提示出错。说明只有内置的几个学生学号能实现正常的登陆。2、输入条件:输入选课操作。(1) 输入0或4界面在没有任何提示的情况下直接跳转到了主界面,让人非常意外。并且可以继续操作。(2)输入1:显示该学生已选的课程。(3)输入3:显示该学生已选的课程,并且等待输入要退选课程的课程号。3、输入条件:输入要选课程的课程序号(1) 输入0提示该课程不存在,等待输入是否继续选课
8、。五、 实验总结: 在测试中,也出现了一些不足: 1、缺少对输入数据类型的判断,以及相应的出错处理; 2、功能逻辑上有问题,某些输出信息不够合理、人性化六、 测试截图: 6.1等价类划分法测试截图:6.1.1选课课程号的输入: 输入小于1的课程号: 输入大于6的课程号:输入非数字的课程号: 程序出错!6.1.2选课确认选项的输入:输入小于1的数字:输入大于2的数字:输入非数字: 程序一闪而过,回到学生界面。6.1.3是否继续选课确认选项的输入:输入小于1的数字:输入大于2的数字:输入非数字: 程序显示任意键返回,一闪而过,回到学生界面6.1.4退选课程号的输入:输入未选课程号:输入不再课程号范
9、围内的数字:输入非数字: 程序出错。6.1.5退选课程号的确认:输入小于1的数字:输入大于2的数字:输入非数字: 程序出错!七、源代码:void select(int XH) /*选课*/ leap1: system(color 70); int cn,i,j,Cn,k;int p=0;char t20;printf(课程号 课程名 上课时间 上课地点 上课老师 老师编号 课程人数n); /*添加*/for(k=0;k=CPMAX;k+) /*添加*/if(Couk.Cno=0) break;for(i=0;ik;i+)printf(%3d %10s %9.2f,Coui.Cno,Coui.C
10、name,Coui.time);printf( %10s %8s %9d %9dn,Coui.place,Coui.teacher,Coui.Tno,Coui.pn); /*添加*/printf(请输入课程序号n);scanf(%d,&cn);Cn=cn-1; if(CouCn.Cno=0) printf(该课程不存在n);printf(是否继续选课? 1 是 2 否n);scanf(%d,&j);if(j=1) system(cls);goto leap1; else if(Cn=0)printf(课程号 课程名 上课时间 上课地点 上课老师 老师编号 课程人数n);printf(%3d %
11、10s %9.2f,CouCn.Cno,CouCn.Cname,CouCn.time);printf( %10s %8s %9d %9dn,CouCn.place,CouCn.teacher,CouCn.Tno,CouCn.pn);printf(是否选择该课程? 1 是 2 否n);scanf(%d,&j);if(j=1)for(j=1;j0) printf(你所选课程已满不能再进行选择n); else if(CouCn.pn=CPMAX) printf(该门课人数已满);printf(是否重新选课?1 是 2 否n);scanf(%d,&i);if(i=1) system(cls);goto
12、 leap1; /*1111*/elseif(StudentXH1=0) StudentXH1=CouCn.Cno;else if(StudentXH2=0) StudentXH2=CouCn.Cno;else if(StudentXH3=0) StudentXH3=CouCn.Cno;elseStudentXH4=CouCn.Cno;CouCn.pn=CouCn.pn+1;printf(选课成功!n);printf(是否继续选课? 1 是 2 否n); scanf(%d,&j); if(j=1) system(cls);goto leap1; else printf(是否继续选课? 1 是
13、2 否n); scanf(%d,&j); if(j=1) system(cls);goto leap1;else printf(该课程不存在n);printf(是否继续选课? 1 是 2 否n);scanf(%d,&j);if(j=1) system(cls);goto leap1;printf(任意键返回n);scanf(%s,&t);system(cls);printf(%s欢迎回来!n,SXH.Sname);system(color 80);printf( #n);printf( # #n);printf( # #n); printf( # 1 选课查询 #n);printf( # #n
14、);printf( # 2 选课 #n);printf( # #n);printf( # 3 选课退选 #n);printf( # #n);printf( # #n);printf( # B返回 #n);printf( #n);scanf(%d,&i);if(i=1) system(cls);search(XH); else if(i=2) system(cls);select(XH);else if(i=3) system(cls);DropC(XH); else system(cls); jiemian();void DropC(int XH) /*课程退选*/leap2: int i,j
15、,k;char l20;int m=0;printf(您已选择的课程为:n);printf(课程号 课程名 上课时间 上课地点 上课老师 老师编号 课程人数n);for(j=1;jCNO|i0) printf(输入有误n);goto leap2;else if(Coui-1.Cno=0)printf(该课程不存在n);printf(是否重新退选课程?1 是 2 否n);scanf(%d,&k);if(k=1) system(cls); goto leap2;elsefor(j=1;j=4;j+)if(StudentXHj=Coui-1.Cno) m=1;break;if(m=1) Studen
16、tXHj=0; Coui-1.pn=Coui-1.pn-1;printf(退选成功!n);printf(是否继续退选课程? 1是 2 否n);scanf(%d,&k);if(k=1) system(cls); goto leap2;elseprintf(你还没选择这门课程n); printf(是否重新退选课程?1 是 2 否n);scanf(%d,&k);if(k=1) system(cls); goto leap2;printf(任意键返回n);scanf(%d,l);system(cls);printf(%s欢迎回来!n,SXH.Sname);system(color 80);printf
17、( #n);printf( # #n);printf( # #n); printf( #1 选课查询 #n);printf( # #n);printf( # 2 选课 #n);printf( # #n);printf( # 3 选课退选 #n);printf( # #n);printf( # #n);printf( # B返回 #n);printf( #n);scanf(%d,&i);if(i=1) system(cls);search(XH); else if(i=2) system(cls);select(XH); else if(i=3) system(cls);DropC(XH);else system(cls);jiemian();专心-专注-专业