您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 学生选课系统-白盒测试
实验报告课程名称:软件测试方法和技术学生姓名:刘成立、龙甜学号:14122402475、14122402596院系:计算机班级:1202组别:1任课教师:张建东指导老师:张建东1目录一、学生选课系统选课以及退选流程图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:路径覆盖测试用例:八、实验总结:11九、源代码:122实验一白盒测试用例设计一、学生选课系统选课以及退选流程图:1.1学生选课系统选课流程图:注释:条件A为,判定课程号是否存在?条件B为,判定是否在课程号范围内?a=0?输出:该课程不存在e=1?Td=1?TTFFF输出:这门课程选过了TFTBDATFEHCFh=max?输出:选课成功!b0&&bCno选课c=1?输出:这门课人数已满是否重新选课?3条件C为,判定是否确认选课?条件D为,判断该课程是否已经选过了?条件E为,判定是否继续选课?条件H为,判定选课人数是否已满?1.2学生选课系统退选流程图:注释:条件A为,判定课程号是否输入有误?条件B为,判定课程号是否存在?aCno||a0输出:课程号输入有误TBTTTFFFFAb=0?输出:该课程不存在c=1?是否重新退选课?退选课程d=1?输出:退选成功输出:你还未选此门课程CD4条件C为,判断是否重新退选?条件D为,判定退选是否成功?二、语句覆盖:2.1:语句覆盖过程分析:语句覆盖的基本思想是设计若干测试用例,使得运行被测试程序时,每个可执行语句至少被执行一次。2.2:语句覆盖测试用例:2.2.1选课功能语句覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,e=1TT该课程不存在,重选OkP2a!=0,0b&&bCno,c=1,d=1,e!=1FTTTF该课程选过了,选课结束OkP3a!=0,0b&&bCno,c=1,d!=1,e!=1hmaxFTTFFT选课成功OkP4a!=0,0b&&bCno,c=1,d!=1,hmaxFTTFF该课程人数已满,选课结束Ok2.2.2退选功能语句覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1aCno||a0,T课程号输入有误,重退选OkP2aCno&&a0,b=0,c=1FTT课程不存在,重退选OkP3aCno&&a0,b!=0,c!=1,d=1FFFT退选成功,不再退选OkP4aCno&&a0,b!=0,c!=1,d!=1FFF未选此课,退选结束Ok5三、判定覆盖:3.1:判定覆盖过程分析:判定覆盖的基本思想是设计若干用例,使得运行被测程序,使每个判定的真假分支至少经历一次。3.2:判定覆盖测试用例:3.2.1选课功能判定覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,e=1TT该课程不存在,重选OkP2a!=0,0b||bCno,e!=1FFF超出课程范围,选课结束OkP3a!=0,0b&&bCno,c!=1,e!=1FTFF不选该课程,选课结束OkP4a!=0,0b&&bCno,C=1,d=1,e!=1FTTTF该课程选过来,选课结束OkP5a!=0,0b&&bCno,C=1,d!=1,e!=1,h=maxFTTFFT选课人满,选课结束OkP6a!=0,0b&&bCno,C=1,d!=1,HmaxFTTFF选课成功Ok3.2.2退选功能判定覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1aCno||a0,T课程号输入有误OkP2aCno&&a0,b=0,c=1FTT课程号不存在,重新退选OkP3aCno&&a0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP4aCno&&a0,b!=0,c!=1,d!=1FFF未选此门课程,结束退选Ok6四、条件覆盖:4.1:条件覆盖过程分析:条件覆盖的基本思想是,设计若干测试用例,运行程序,使得每个判断中的可能取值至少满足一次。4.2:条件覆盖测试用例:4.2.1选课功能条件覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,b=1TT该课程不存在,重选OkP2A!=0,0b&&bCno,c=1,d!=1,h=maxFTTFT选课人满,选课结束OkP3A!=0,0b&&bCno,c=1,d!=1,H!=maxFTTTF该课程选过来,选课结束OkP4A!=0,0b&&bCno,c!=1,e!=1,FTFTF选课成功OkP5A!=0,bCno,e!=1FFF该课程不存在,重选OkP6A!=0,b0,e!=1FFF该课程不存在,重选Ok4.2.2退选功能条件覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1ACnoT课程号输入有误OkP2A0,b=0,c=1T课程号输入有误OkP3aCno&&a0,b!=0,c=1FTT课程号不存在,重新退选Ok7P4aCno&&a0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP5aCno&&a0,b!=0,d!=1FFF未选此门课程,结束退选Ok五、判定-条件覆盖:5.1:判定-条件覆盖过程分析:判定-条件覆盖的基本思想是,设计若干测试用例,运行程序,使得判断条件中的所有可能至少执行一次,同时,所有判断的可能结果至少执行一次。5.2:判定-条件覆盖测试用例:5.2.1选课功能判定-条件覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,b=1TT该课程不存在,重选OkP2A!=0,0b&&bCno,c=1,d!=1,h=maxFTTFT选课人满,选课结束OkP3A!=0,0b&&bCno,c=1,d!=1,H!=maxFTTTF该课程选过来,选课结束OkP4A!=0,0b&&bCno,c=1,e!=1,FTTTF选课成功OkP5A!=0,bCno,e!=1FFF该课程不存在,重选OkP6A!=0,b0,e!=1FFF该课程不存在,重选OkP7a!=0,0b&&bCno,c!=1,e!=1FTFF取消选课,结束选课Ok85.2.2退选功能判定-条件覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1ACnoT课程号输入有误OkP2A0,b=0,c=1T课程号输入有误OkP3aCno&&a0,b!=0,c=1FTT课程号不存在,重新退选OkP4aCno&&a0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP5aCno&&a0,b!=0,d!=1FFF未选此门课程,结束退选Ok六、条件组合覆盖:6.1:条件组合覆盖过程分析:条件组合覆盖的基本思想是,设计若干测试用例,运行程序,使得每个条件中的所有可能至少出现一次,并且每个判定的结果也至少出现一次。6.2:条件组合覆盖测试用例:6.2.1选课功能条件组合覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,b=1TT该课程不存在,重选OkP2A!=0,0b&&bCno,c=1,d!=1,h=maxFTTFT选课人满,选课结束OkP3A!=0,0b&&bCno,c=1,d!=1,H!=maxFTTTF该课程选过来,选课结束OkP4A!=0,0b&&bCno,c=1,e!=1,FTTTF选课成功Ok9P5A!=0,bCno,e!=1FFF该课程不存在,重选OkP6A!=0,b0,e!=1FFF该课程不存在,重选OkP7a!=0,0b&&bCno,c!=1,e!=1FTFF取消选课,结束选课OkP8a!=0,0b&&bCno,FFF取消选课,结束选课6.2.2退选功能条件组合覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1ACnoT课程号输入有误OkP2A0,b=0,c=1T课程号输入有误OkP3aCno&&a0,b!=0,c=1FTT课程号不存在,重新退选OkP4aCno&&a0,b!=0,c!=1,d=1FFFT退选成功,结束退选OkP5aCno&&a0,b!=0,d!=1FFF未选此门课程,结束退选OkP6ACno||a0,T课程号输入有误Ok七、路径覆盖:7.1:路径覆盖过程分析:路径覆盖的基本思想是,设计所有的测试用例,来覆盖程序中的所有可能的执行路径。7.2:路径覆盖测试用例:7.2.1选课功能路径覆盖测试用例:10编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0T该课程不存在,重选OkP2a=0,e=1T该课程不存在,重选OkP3a=0,b=0&&b=0TF是否重新选课OkP4a=0,b0&&bCno,c!=1TTF是否重新选课OkP5a=0,b0&&bCno,c!=1,d=1TTTT这门课程选过了OkP6a=0,b0&&bCno,c!=1,d!=1,h=maxTTTFT这门课的人数已满OkP7a=0,b0&&bCno,c!=1,d!=1,h!=maxTTTTF选课成功!OkP8e=1T重新选课OkP9e!=1F退出系统Ok7.2.2退课功能路径覆盖测试用例:编号输入条件A条件B条件C条件D预期结果Ok/NgP1aCno||a0T课程号输入有误OkP2A=Cno||a=0B=0FT该课程不存在OkP3A=Cno||a=0B!=0,d=1FTT退选成功OkP4A=Cno||a=0B!=0,d!=1FTF你还未选此门课OkP5C=1T重新退选OkP6C!=1F退出系统Ok11八、实验总结:对于白盒测试,在设计测试用例时首先对程序进行分析,从程序的内部结构出发设计测试用例,涉及到程序的控制方法、源语句、编码细节、数据库设计等。设计测试用例时应用了白盒测试中的多种测试方法,其中包括:测试覆盖(语句覆盖、分支覆盖、分支条件覆盖等)、基路径测试等方法。白盒测试中,对代码的测试比较透彻,但不容易生成测试用例,而且测试工作量很大。因为白盒测试是基于代码的基础上,所以对变量的定义、数据的分析、精度的度量都有严格的要求。同时,对于白盒测试的案例设计,要注意以下几点:(1)保证每个模块中的所有独立路径至少被执行一次;(2)对所有的逻辑值均需要测试真、假两个分支;(3)在上下边界及可操作范围内运行所有循环;(4)检查内部数据结构以确保其有效性。在测试中,也出现了一些不足:在选课模块中,有一个条件语句是判断所输入的课程号是否存在。当所输入课程号不存在的时候,程序跳转到重新开始选课。这个判定,存在缺陷。只能判断数字,对于其他的数据类型,缺少错误输入判断。在选课模块中,有一个条件语句是判断是否确认选择。输入选项有1和2,当输入为其他数据类型时,程序界面一闪而过,退回到学生界面。在退选模块中,有一个条件语句是判断是否确认退选。输入选项有1和2,当输入为其他数据类型时,程序出错。九、源代码:voidselect(intXH)/*选课*/{leap1:system(color70);intcn,i,j,Cn,k;intp=0;chart[20];printf(课程号课程名上课时间上课地点上课老师老师编号课程人数\n);/*添加*/for(k=0;k=CPMAX;k++)/*添加*/{if(Cou[k].Cno==0)break;}for(i=0;ik;i++){printf(%3d%10s%9.2f,Cou[i].Cno,Cou[i].Cname,Cou[i].time);12printf(%10s
本文标题:学生选课系统-白盒测试
链接地址:https://www.777doc.com/doc-2490001 .html