学生的选课系统的-白盒测试_第1页
学生的选课系统的-白盒测试_第2页
学生的选课系统的-白盒测试_第3页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告课程名称:学生姓名:文学号:、院系:计算机 班级:1202 组别:丄任课教师:张建东指导老师:张建东目录一、学生选课系统选课以及退选流程图2二、 语句覆盖:42.1 :语句覆盖过程分析:2.2 :语句覆盖测试用例:三、 判定覆盖:53.1 :判定覆盖过程分析:3.2 :判定覆盖测试用例:四、 条件覆盖:64.1 :条件覆盖过程分析:4.2 :条件覆盖测试用例:五、 判定-条件覆盖:75.1 :判定-条件覆盖过程分析:5.2 :判定-条件覆盖测试用例:六、 条件组合覆盖:86.1 :条件组合覆盖过程分析:6.2 :条件组合覆盖测试用例:七、 路径覆盖:97.1 :路径覆盖过程分析:7.2

2、 :路径覆盖测试用例:八、 实验总结:11九、 源代码:12实验一白盒测试用例设计、学生选课系统选课以及退选流程图:输出:这门 课程选过了是否重新选课输出:这门 课人数已满输出:选课 成功!注释:条件A为,判定课程号是否存在?条件B为,判定是否在课程号范围内?条件C为,判定是否确认选课?条件D为,判断该课程是否已经选过了?条件E为,判定是否继续选课?条件H为,判定选课人数是否已满?1.2学生选课系统退选流程图:T输出:课程 号输入有误输出:该课 程不存在F退选课程T是否重新退选课D输出:退选 成功FF输出:你还禾选此门课注释:条件A为,判定课程号是否输入有误?条件B为,判定课程号是否存在?条件

3、C为,判断是否重新退选?条件D为,判定退选是否成功?二、语句覆盖:2.1 :语句覆盖过程分析:语句覆盖的基本思想是设计若干测试用例,使得运行被测试程序时,每个 可执行语句至少被执行一次。2.2 :语句覆盖测试用例:选课功能语句覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果O k/NgP1a=0,TT该课程不存在,重选Oe=1kP2a!=0,0<b&&b<C no ,c=1,d=1, e!=1FTTTF该课程选过了,选课结束O kP3a!=0,0<b&&b<C no ,c=1,d!=1, e!=1 hvmaxFTTFFT

4、选课成功O kP4a!=0,0<b&&b<Cno ,c=1,d!=1,h>maxFTTFF该课程人数已满,选课结束O k222退选功能语句覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1a>C no|a<0,T课程号输入有Ok误,重退选P2a<C no&&a>0,FTT课程不存在,重Okb=0,c=1退选P3a<C no&&a>0.FFFT退选成功,不冉Okb!=0,c!=1,d=1退选P4a<C no&&a>0,FFF未选此课,退选Okb!=0

5、,c!=1,d!=1结束三、判定覆盖:3.1 :判定覆盖过程分析:判定覆盖的基本思想是设计若干用例,使得运行被测程序,使每个判定的 真假分支至少经历一次。3.2 :判定覆盖测试用例:选课功能判定覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/N gP1a=0,e=1TT该课程不存在,重选OkP2a!=0,0>b|b>C no,e!=1FFF超出课程范围,选课结束OkP3a!=0,0<b&&b<CnFTFF不选该课程,选课结束Oko,c!=1,e!=1P4a!=0,0<b&&b<Cno,C=1,d=1,e

6、!=1FTTTF该课程选过来,选课结束OkP5a!=0,0<b&&b<Cno,C=1,d!=1,e!=1,h=maxFTTFFT选课人满,选课结束OkP6a!=0,0<b&&b<Cno, C=1,d!=1,HvmaxFTTFF选课成功Ok322退选功能判定覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1a>C no|a<0,T课程号输入有误OkP2a<C no&&a>0,FTT课程号不存在,Okb=0,c=1重新退选P3a<C no&&a>0,FFFT

7、退选成功,结束Okb!=0,c!=1,d=1退选P4a<C no&&a>0,FFF未选此门课程,Okb!=0,c!=1,d!=1结束退选四、条件覆盖:4.1 :条件覆盖过程分析:条件覆盖的基本思想是,设计若干测试用例,运行程序,使得每个判断中 的可能取值至少满足一次。4.2 :条件覆盖测试用例:选课功能条件覆盖测试用例:编号输入条件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

8、<b&&b<Cno,c=1,d!=1,H!=maxFTTTF该课程选过来,选课结束OkP4A!=0,FTFTF选课成功Ok0<b&&b<Cno,c!=1,e!=1,P5A!=0,FFF该课程不存在,Okb>C no,e!=1重选P6A!=0,FFF该课程不存在,Okb<0,e!=1重选422退选功能条件覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1A>C noT课程号输入有误OkP2A<0,b=0,c=1T课程号输入有误OkP3a<C no&&a>0FTT课程号不存

9、在,重新退选Ok5b!=0,c=1P4a<C no&&a>0FFFT退选成功,结束退选Okb!=0,c!=1,d=1P5a<C no&&a>0FFF未选此门课程,结束退选Ok5b!=0,d!=1五、判定-条件覆盖:5.1 :判定-条件覆盖过程分析:判定-条件覆盖的基本思想是,设计若干测试用例,运行程序,使得判断 条件中的所有可能至少执行一次,同时,所有判断的可能结果至少执行一次。5.2 :判定-条件覆盖测试用例:选课功能判定-条件覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,b=1TT该课程不存在

10、,重选OkP2A!=0,0<b&&b<C noFTTFT选课人满,选课结束OkJc=1,d!=1,h=maxP3A!=0,0<b&&b<C noFTTTF该课程选过来,结束选课OkJc=1,d!=1,H!=maxP4A!=0,0<b&&b<C noFTTTF选课成功OkJc=1,e!=1,P5A!=0, b>C no,e!=1FFF该课程不存在,重选OkP6A!=0,b<0,e!=1FFF该课程不存在,重选OkP7a!=0,0<b&&b<C noFTFF取消选课,结束选课

11、OkJc!=1,e!=1522退选功能判定-条件覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1A>C noT课程号输入有误OkP2A<0,b=0,c=1T课程号输入有误OkP3a<C no&&a>0,b!=0,c=1FTT课程号不存在,重新退选OkP4a<C no&&a>0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP5a<C no&&a>0,b!=0,d!=1FFF未选此门课程,结束退选Ok六、条件组合覆盖:6.1 :条件组合覆盖过程分析:条件组合覆盖的基本思想

12、是,设计若干测试用例,运行程序,使得每个条 件中的所有可能至少出现一次,并且每个判定的结果也至少出现一次。6.2 :条件组合覆盖测试用例:选课功能条件组合覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,b=1TT该课程不存在,重选OkP2A!=0,0<b&&b<C noJc=1,d!=1,h=maxFTTFT选课人满,选课结束OkP3A!=0,0<b&&b<C noJc=1,d!=1,H!=maxFTTTF该课程选过来,选课结束OkP4A!=0,0<b&&b<C noJF

13、TTTF选课成功Okc=1,e!=1.P5A!=0,FFF该课程不存在,Okb>C no,e!=1重选P6A!=0,FFF该课程不存在,Okb<0,e!=1重选P7a!=0,FTFF取消选课,结束Ok0<b&&b<C no选课Jc!=1,e!=1Pa!=0,FFF取消选课,结束80>b&&b>C noJ选课622退选功能条件组合覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1A>C noT课程号输入有误OkP2A<0,b=0,c=1T课程号输入有误OkP3a<C no&&a

14、>0,b!=0,c=1FTT课程号不存在,重新退选OkP4a<C no&&a>0,FFFT退选成功,结束退选Okb!=0,c!=1,d=1P5a<C no&&a>0,FFF未选此门课程,结束Okb!=0,d!=1退选P6A>C no|a<0,T课程号输入有误Ok七、路径覆盖:7.1 :路径覆盖过程分析:路径覆盖的基本思想是,设计所有的测试用例,来覆盖程序中的所有可能 的执行路径。7.2 :路径覆盖测试用例:选课功能路径覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0T该课程不存在,重

15、选OkP2a=0,e=1T该课程不存在,重选OkP3a=0,b<=0&& b>=0TF是否重新选课OkP4a=0,b>0&&bTTF是否重新选课Ok<Cn o,c!=1P5a=0,b>0&&bTTTT这门课程选过Ok<Cn o,c!=1,d=1了P6a=0,b>0&&bTTTFT这门课的人数Ok<Cn o,c!=1,d!=已满1,h=maxP7a=0,b>0&&bTTTTF选课成功!Ok<Cn o,c!=1,d!=1,h ! =maxP8e=1T重新选课O

16、kP9e!=1F退出系统Ok722退课功能路径覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1a>C no|a<0T课程号输入有误OkP2A<=C no|a>=0B=0FT该课程不存在OkP3A<=C no|a>=0B! =0,d=1FTT退选成功OkP4A<=C no|a>=0B! =0,d ! =1FTF你还未选此门课OkP5C=1T重新退选OkP6C! =1F退出系统Ok八、实验总结:对于白盒测试,在设计测试用例时首先对程序进行分析, 从程序的内部结构出发 设计测试用例,涉及到程序的控制方法、源语句、编码细节、数据库设计

17、等。设 计测试用例时应用了白盒测试中的多种测试方法,其中包括:测试覆盖(语句覆盖、分支覆盖、分支条件覆盖等)、基路径测试等方法。白盒测试中,对代码的 测试比较透彻,但不容易生成测试用例,而且测试工作量很大。因为白盒测试是 基于代码的基础上,所以对变量的定义、数据的分析、精度的度量都有严格的要 求。同时,对于白盒测试的案例设计,要注意以下几点(1 )保证每个模块中的所有独立路径至少被执行一次;(2) 对所有的逻辑值均需要测试真、假两个分支;(3) 在上下边界及可操作范围内运行所有循环;(4) 检查内部数据结构以确保其有效性。在测试中,也出现了一些不足:在选课模块中,有一个条件语句是判断所输入的课

18、程号是否存在。当所输入 课程号不存在的时候,程序跳转到重新开始选课。这个判定,存在缺陷。只能判 断数字,对于其他的数据类型,缺少错误输入判断。在选课模块中,有一个条件语句是判断是否确认选择。输入选项有1和2,当输入为其他数据类型时,程序界面一闪而过,退回到学生界面。在退选模块中,有一个条件语句是判断是否确认退选。输入选项有1和2, 当输入为其他数据类型时,程序出错。九、源代码:voidselect(int XH)/* 选课 */leapl: system("color 70");int cn ,i,j,C n,k;int p=0;char t20;printf("

19、课程号 课程名上课时间上课地点上课老师老师编号课程人数n"); /*添加*/for(k=0;kv=CPMAX;k+) /* 添加 */if(Couk.Cno=0) break;for(i=0;i<k;i+)printf("%3d %10s %9.2f",Coui.Cno,Coui.Cname,Coui.time);printf(” %10s %8s %9d %9dn",Coui.place,Coui.teacher,Coui.Tno,Coui.p n);/*添加*/printf("请输入课程序号n");scan f("

20、%d",&cn);Cn=cn-1;if(CouC n.C no=0)printf("该课程不存在n");printf("是否继续选课? 1是 2 否n");scan f("%d",&j);if(j=1) system("cls");goto leap1;else if(Cn<CNO&&Cn >=0)printf("课程号 课程名上课时间上课地点上课老师师编号 课程人数n");prin tf("%3d %10s %9.2f"

21、,CouC n.C no,CouC n.C name,CouC n.time);printf(" %10s %8s %9d %9dn",CouC n.place,CouC n.teacher,CouCn.T no,CouC n.p n);printf("是否选择该课程? 1是2否n");sca nf("%d",&j);if(j=1)for(j=1;jv(SCMAX-1);j+)if(Stude ntXHj=cn) p=1;if(p=1)printf("该门课程已经选过了 n");printf("是

22、否重新选课? 1是2否n");scan f("%d",&i);if(i=1) system("cls");goto leap1;else if(Stude ntXHSCMAX-1>0)printf("你所选课程已满不能再进行选择n"); else if(CouC n.pn=CPMAX)printf("该门课人数已满");printf("是否重新选课? 1是2否n");scan f("%d",&i);if(i=1) system("cl

23、s");goto leap 1;/*1111*/elseif(StudentXH1=0) StudentXH1=CouCn.Cno;elseif(Stude ntXH2=0)Stude ntXH2=CouC n.C no;elseStude ntXH3=CouC n.C no;elseStude ntXH4=CouC n.C no;CouC n.p n=CouC n.p n+1;printf(” 选课成功! n");printf("是否继续选课? 1是2 scan f("%d",&j);if(j=1) system("cls&

24、quot;);goto leap1;elseprintf("是否继续选课? 1是2 sca nf("%d",&j);if(j=1) system("cls");goto le ap1; elseif(Stude ntXH3=0)否 n");否 n");printf("该课程不存在n");printf("是否继续选课? 1是 2 否n");scan f("%d",&j);if(j=1) system("cls");goto leap

25、1;printf("任意键返回n");sca nf("%s", &t);system("cls");prin tf("%s 欢迎回来! n",SXH.S name); system("color 80");printf(" #n");Tf T7ff Tf T7ff Tf Tf T7ff Tf T7ff Tf T7ff Tf Tf T7ff Tf T7ff Tf T7ff Tf Tf T7ff Tf T7ff Tf T7ff Tf Tf T7ff Tf T7ff vl

26、I 1)prin tf("#n");prin tf("#n");prin tf("# 1 选课查询#n");prin tf("#n");prin tf("#2 选课#n");prin tf("#n");printf("printf(" #n");printf("#n");printf("#n");printf("# 3选课退选#n");#B返回#n”);Tf T7ff Tf T7ff T

27、f Tf T7ff Tf T7ff Tf T7ff Tf Tf T7ff Tf T7ff Tf T7ff Tf Tf T7ff Tf T7ff Tf T7ff Tf Tf T7ff Tf T7ff Tf T7ff Tf Tf vl I 1) sea nf("%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); elsesystem(

28、"cls");jiemia n();void DropC(int XH)/* 课程退选 */Ieap2: int i,j,k;char l20;int m=0;printf("您已选择的课程为:n");老师编号printf("课程号 课程名上课时间上课地点上课老师课程人数n");for(j=1;jv=4;j+)if(Stude ntXHj=0) pri ntf("空n");else%9.2fprin tf("%3d%10s",CouStude ntXHj-1.C no,CouStude ntXH

29、j-1.C name,CouStude nt XHj-1.time);printf(" %7s %8s %9d %9dn",CouStudentXHj-1.pIace,CouStude ntXHj-1.teacher,CouStude ntXHj-1.T no,CouStude ntXHj-1.p n)/*输出所查询的课程*/printf("请输入退选的课程号:n");scan f("%d",&i);if(i>CNO|i<0)printf("输入有误 n");goto Ieap2;else if

30、(Coui-1.C no=0)printf("该课程不存在n");printf("是否重新退选课程?1是2否n");sca nf("%d",&k);if(k=1) system("cls"); goto leap2;elsefor(j=1;jv=4;j+)if(StudentXHj=Coui-1.Cno) m=1;break;if(m=1)Stude ntXHj=O;Coui-1.p n=Coui-1.p n-1;printf(” 退选成功! n");printf("是否继续退选课程? 1是2否n");sea nf("%d",&k);if(k=1) system("cls"); goto leap2;elseprintf("你还没选择这门课程n");printf("是否重新退选课程?1是2否n"

温馨提示

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

最新文档

评论

0/150

提交评论