(精选)学生选课系统-白盒测试Word版_第1页
(精选)学生选课系统-白盒测试Word版_第2页
(精选)学生选课系统-白盒测试Word版_第3页
(精选)学生选课系统-白盒测试Word版_第4页
(精选)学生选课系统-白盒测试Word版_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告 课程名称:软件测试方法和技术 学生姓名:刘成立、龙甜 学号14122402596 院系:计算机 班级:1202 组别:1任课教师:张建东 指导老师:张建东目录一、学生选课系统选课以及退选流程图 2 二、语句覆盖: 4 2.1:语句覆盖过程分析: 2.2:语句覆盖测试用例: 三、判定覆盖: 5 3.1:判定覆盖过程分析: 3.2:判定覆盖测试用例: 四、条件覆盖: 6 4.1:条件覆盖过程分析: 4.2:条件覆盖测试用例: 五、判定-条件覆盖: 75.1:判定-条件覆盖过程分析:5.2:判定-条件覆盖测试用例: 六、条件组合覆盖: 8 6.1:条件组合覆盖过程

2、分析:6.2:条件组合覆盖测试用例: 七、路径覆盖: 9 7.1:路径覆盖过程分析:7.2:路径覆盖测试用例: 八、实验总结: 11 九、源代码: 12 实验一 白盒测试用例设计一、学生选课系统选课以及退选流程图:1.1学生选课系统选课流程图:T输出:该课程不存在a=0?AFb>0&&b<CnoFBTc=1?FCT 选课是否重新选课?Te=1?d=1?TDE输出:这门课程选过了FTFHh=max?输出:这门课人数已满F输出:选课成功!注释:条件A为,判定课程号是否存在? 条件B为,判定是否在课程号范围内? 条件C为,判定是否确认选课? 条件D为,判断该课程是否已经选

3、过了? 条件E为,判定是否继续选课? 条件H为,判定选课人数是否已满?1.2学生选课系统退选流程图:AT输出:课程号输入有误a>Cno|a<0FBT输出:该课程不存在b=0?CF是否重新退选课?c=1?退选课程TFTd=1?D输出:退选成功F输出:你还未选此门课程注释:条件A为,判定课程号是否输入有误? 条件B为,判定课程号是否存在? 条件C为,判断是否重新退选? 条件D为,判定退选是否成功?二、语句覆盖:2.1:语句覆盖过程分析: 语句覆盖的基本思想是设计若干测试用例,使得运行被测试程序时,每个可执行语句至少被执行一次。 2.2:语句覆盖测试用例:2.2.1选课功能语句覆盖测试用

4、例: 编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,e=1TT该课程不存在,重选OkP2a!=0,0<b&&b<Cno,c=1,d=1,e!=1FTTTF该课程选过了,选课结束OkP3a!=0,0<b&&b<Cno,c=1,d!=1,e!=1h<maxFTTFFT选课成功OkP4a!=0,0<b&&b<Cno,c=1,d!=1,h>maxFTTFF该课程人数已满,选课结束Ok2.2.2退选功能语句覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1a>

5、;Cno|a<0,T课程号输入有误,重退选OkP2a<Cno&&a>0,b=0,c=1FTT课程不存在,重退选OkP3a<Cno&&a>0,b!=0,c!=1,d=1FFFT退选成功,不再退选OkP4a<Cno&&a>0,b!=0,c!=1,d!=1FFF未选此课,退选结束Ok三、判定覆盖:3.1:判定覆盖过程分析: 判定覆盖的基本思想是设计若干用例,使得运行被测程序,使每个判定的真假分支至少经历一次。3.2:判定覆盖测试用例:3.2.1选课功能判定覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件

6、H预期结果Ok/NgP1a=0,e=1TT该课程不存在,重选OkP2a!=0,0>b|b>Cno,e!=1FFF超出课程范围,选课结束OkP3a!=0,0<b&&b<Cno,c!=1,e!=1FTFF不选该课程,选课结束OkP4a!=0,0<b&&b<Cno,C=1,d=1,e!=1FTTTF该课程选过来,选课结束OkP5a!=0,0<b&&b<Cno,C=1,d!=1,e!=1,h=maxFTTFFT选课人满,选课结束OkP6a!=0,0<b&&b<Cno,C=1,d!

7、=1,H<maxFTTFF选课成功Ok3.2.2退选功能判定覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1a>Cno|a<0,T课程号输入有误OkP2a<Cno&&a>0,b=0,c=1FTT课程号不存在,重新退选OkP3a<Cno&&a>0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP4a<Cno&&a>0,b!=0,c!=1,d!=1FFF未选此门课程,结束退选Ok四、条件覆盖:4.1:条件覆盖过程分析: 条件覆盖的基本思想是,设计若干测试用例,运行程序

8、,使得每个判断中的可能取值至少满足一次。4.2:条件覆盖测试用例:4.2.1选课功能条件覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,b=1TT该课程不存在,重选OkP2A!=0,0<b&&b<Cno,c=1,d!=1,h=maxFTTFT选课人满,选课结束OkP3A!=0,0<b&&b<Cno,c=1,d!=1,H!=maxFTTTF该课程选过来,选课结束OkP4A!=0,0<b&&b<Cno,c!=1,e!=1,FTFTF选课成功OkP5A!=0,b>Cno,

9、e!=1FFF该课程不存在,重选OkP6A!=0,b<0,e!=1FFF该课程不存在,重选Ok4.2.2退选功能条件覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1A>CnoT课程号输入有误OkP2A<0,b=0,c=1T课程号输入有误OkP3a<Cno&&a>0,b!=0,c=1FTT课程号不存在,重新退选OkP4a<Cno&&a>0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP5a<Cno&&a>0,b!=0,d!=1FFF未选此门课程,结束退选Ok五、判

10、定-条件覆盖:5.1:判定-条件覆盖过程分析: 判定-条件覆盖的基本思想是,设计若干测试用例,运行程序,使得判断条件中的所有可能至少执行一次,同时,所有判断的可能结果至少执行一次。5.2:判定-条件覆盖测试用例:5.2.1选课功能判定-条件覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,b=1TT该课程不存在,重选OkP2A!=0,0<b&&b<Cno,c=1,d!=1,h=maxFTTFT选课人满,选课结束OkP3A!=0,0<b&&b<Cno,c=1,d!=1,H!=maxFTTTF该课程选过来

11、,选课结束OkP4A!=0,0<b&&b<Cno,c=1,e!=1,FTTTF选课成功OkP5A!=0,b>Cno,e!=1FFF该课程不存在,重选OkP6A!=0,b<0,e!=1FFF该课程不存在,重选OkP7a!=0,0<b&&b<Cno,c!=1,e!=1FTFF取消选课,结束选课Ok5.2.2退选功能判定-条件覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1A>CnoT课程号输入有误OkP2A<0,b=0,c=1T课程号输入有误OkP3a<Cno&&a>0,

12、b!=0,c=1FTT课程号不存在,重新退选OkP4a<Cno&&a>0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP5a<Cno&&a>0,b!=0,d!=1FFF未选此门课程,结束退选Ok六、条件组合覆盖:6.1:条件组合覆盖过程分析: 条件组合覆盖的基本思想是,设计若干测试用例,运行程序,使得每个条件中的所有可能至少出现一次,并且每个判定的结果也至少出现一次。6.2:条件组合覆盖测试用例:6.2.1选课功能条件组合覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,b=1TT该课程不

13、存在,重选OkP2A!=0,0<b&&b<Cno,c=1,d!=1,h=maxFTTFT选课人满,选课结束OkP3A!=0,0<b&&b<Cno,c=1,d!=1,H!=maxFTTTF该课程选过来,选课结束OkP4A!=0,0<b&&b<Cno,c=1,e!=1,FTTTF选课成功OkP5A!=0,b>Cno,e!=1FFF该课程不存在,重选OkP6A!=0,b<0,e!=1FFF该课程不存在,重选OkP7a!=0,0<b&&b<Cno,c!=1,e!=1FTFF取消选

14、课,结束选课OkP8a!=0,0>b&&b>Cno,FFF取消选课,结束选课6.2.2退选功能条件组合覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1A>CnoT课程号输入有误OkP2A<0,b=0,c=1T课程号输入有误OkP3a<Cno&&a>0,b!=0,c=1FTT课程号不存在,重新退选OkP4a<Cno&&a>0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP5a<Cno&&a>0,b!=0,d!=1FFF未选此门课程,结束退选O

15、kP6A>Cno|a<0,T课程号输入有误Ok七、路径覆盖:7.1:路径覆盖过程分析:路径覆盖的基本思想是,设计所有的测试用例,来覆盖程序中的所有可能的执行路径。7.2:路径覆盖测试用例:7.2.1选课功能路径覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0T该课程不存在,重选OkP2a=0,e=1T该课程不存在,重选OkP3a=0,b<=0&&b>=0TF是否重新选课OkP4a=0,b>0&&b<Cno,c!=1TTF是否重新选课OkP5a=0,b>0&&b<

16、Cno,c!=1,d=1TTTT这门课程选过了OkP6a=0,b>0&&b<Cno,c!=1,d!=1,h=maxTTTFT这门课的人数已满OkP7a=0,b>0&&b<Cno,c!=1,d!=1,h!=maxTTTTF选课成功!OkP8e=1T重新选课OkP9e!=1F退出系统Ok7.2.2退课功能路径覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1a>Cno|a<0T课程号输入有误OkP2A<=Cno|a>=0B=0FT该课程不存在OkP3A<=Cno|a>=0B!=0,d=1F

17、TT退选成功OkP4A<=Cno|a>=0B!=0,d!=1FTF你还未选此门课OkP5C=1T重新退选OkP6C!=1F退出系统Ok八、实验总结:对于白盒测试,在设计测试用例时首先对程序进行分析,从程序的内部结构出发设计测试用例,涉及到程序的控制方法、源语句、编码细节、数据库设计等。设计测试用例时应用了白盒测试中的多种测试方法,其中包括:测试覆盖(语句覆盖、分支覆盖、分支条件覆盖等)、基路径测试等方法。白盒测试中,对代码的测试比较透彻,但不容易生成测试用例,而且测试工作量很大。因为白盒测试是基于代码的基础上,所以对变量的定义、数据的分析、精度的度量都有严格的要求。 同时

18、,对于白盒测试的案例设计,要注意以下几点:(1)保证每个模块中的所有独立路径至少被执行一次;(2)对所有的逻辑值均需要测试真、假两个分支;(3)在上下边界及可操作范围内运行所有循环;(4)检查内部数据结构以确保其有效性。在测试中,也出现了一些不足:在选课模块中,有一个条件语句是判断所输入的课程号是否存在。当所输入课程号不存在的时候,程序跳转到重新开始选课。这个判定,存在缺陷。只能判断数字,对于其他的数据类型,缺少错误输入判断。 在选课模块中,有一个条件语句是判断是否确认选择。输入选项有1和2,当输入为其他数据类型时,程序界面一闪而过,退回到学生界面。 在退选模块中,有一个条件语句是判断是否确认

19、退选。输入选项有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;i<k;i+)printf("%3d %10s %9.2f",Coui

20、.Cno,Coui.Cname,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)

21、system("cls");goto leap1; else if(Cn<CNO&&Cn>=0)printf("课程号 课程名 上课时间 上课地点 上课老师 老师编号 课程人数n");printf("%3d %10s %9.2f",CouCn.Cno,CouCn.Cname,CouCn.time);printf(" %10s %8s %9d %9dn",CouCn.place,CouCn.teacher,CouCn.Tno,CouCn.pn);printf("是否选择该课程?

22、1 是 2 否n");scanf("%d",&j);if(j=1)for(j=1;j<(SCMAX-1);j+)if(StudentXHj=cn) p=1;if(p=1) printf("该门课程已经选过了n");printf("是否重新选课?1 是 2 否n");scanf("%d",&i);if(i=1) system("cls");goto leap1;else if(StudentXHSCMAX-1>0) printf("你所选课程已满不能

23、再进行选择n"); else if(CouCn.pn=CPMAX) printf("该门课人数已满");printf("是否重新选课?1 是 2 否n");scanf("%d",&i);if(i=1) system("cls");goto leap1; /*1111*/elseif(StudentXH1=0) StudentXH1=CouCn.Cno;else if(StudentXH2=0) StudentXH2=CouCn.Cno;else if(StudentXH3=0) StudentXH

24、3=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 是 2 否n"); scanf("%d",&j); if(j=1) system("cls")

25、;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"

26、);printf(" #n");printf(" # #n");printf(" # #n"); printf(" # 1 选课查询 #n");printf(" # #n");printf(" # 2 选课 #n");printf(" # #n");printf(" # 3 选课退选 #n");printf(" # #n");printf(" # #n");printf(" # B返回

27、#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,k;char l20;int

28、m=0;printf("您已选择的课程为:n");printf("课程号 课程名 上课时间 上课地点 上课老师 老师编号 课程人数n");for(j=1;j<=4;j+)if(StudentXHj=0) printf("空n"); elseprintf("%3d %10s %9.2f ",CouStudentXHj-1.Cno,CouStudentXHj-1.Cname,CouStudentXHj-1.time);printf(" %7s %8s %9d %9dn",CouStudentX

29、Hj-1.place,CouStudentXHj-1.teacher,CouStudentXHj-1.Tno,CouStudentXHj-1.pn); /*输出所查询的课程*/printf("请输入退选的课程号:n");scanf("%d",&i);if(i>CNO|i<0) 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) StudentXHj=0; Coui-1.pn=Coui-1.pn-1;printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论