1、条件组合覆盖过程分析:条件组合覆盖测试用例:七、路径覆盖: 9 7。路径覆盖过程分析:7.2:路径覆盖测试用例:八、实验总结: 11 九、源代码: 12 实验一 白盒测试用例设计一、学生选课系统选课以及退选流程图:1.1学生选课系统选课流程图:AFBTCDEH注释:条件A为,判定课程号是否存在? 条件B为,判定是否在课程号范围内? 条件C为,判定是否确认选课? 条件D为,判断该课程是否已经选过了? 条件E为,判定是否继续选课? 条件H为,判定选课人数是否已满?1.2学生选课系统退选流程图:是否重新退选课?注释:条件A为,判定课程号是否输入有误? 条件B为,判定课程号是否存在? 条件C为,判断是
2、否重新退选? 条件D为,判定退选是否成功?二、语句覆盖: 语句覆盖的基本思想是设计若干测试用例,使得运行被测试程序时,每个可执行语句至少被执行一次.2.2:2.1选课功能语句覆盖测试用例:编号输入条件A条件B条件C条件D条件E条件H预期结果Ok/NgP1a=0,e=1该课程不存在,重选OkP2a!=0,0bbCno,c=1,d=1,e!=1该课程选过了,选课结束P30b&bCno,c=1,d!=1,e!hmax选课成功P40b&bmax该课程人数已满,选课结束2.2.2退选功能语句覆盖测试用例:aCnoa0,课程号输入有误,重退选aCno&a0,b=0,c=1课程不存在,重退选abbCno,e
3、!超出课程范围,选课结束bCnoa=0,c!=1,d=1退选成功,结束退选Cno&=0,c!=1,d!未选此门课程,结束退选条件覆盖过程分析: 条件覆盖的基本思想是,设计若干测试用例,运行程序,使得每个判断中的可能取值至少满足一次。4.2:4.2。1选课功能条件覆盖测试用例:a=0,b=1该课程不存在,重选A!b&Cno,c=1,d!h=maxA!Cno,c=1,d!H!=maxbbCno,c!bCno,e!0,e!2退选功能条件覆盖测试用例:ACnoA0,b=0,c=1=0,c=1退选成功,结束退选=0,d!未选此门课程,结束退选五、判定-条件覆盖:5.1:判定-条件覆盖过程分析: 判定条件
4、覆盖的基本思想是,设计若干测试用例,运行程序,使得判断条件中的所有可能至少执行一次,同时,所有判断的可能结果至少执行一次。判定-条件覆盖测试用例:1选课功能判定条件覆盖测试用例:a=0,b=1bCno,c=1,d!选课人满,选课结束c=1,d!b&bCno,c=1,e!Cno,e!b0,e!P7c!=1,e!取消选课,结束选课5.2.2退选功能判定条件覆盖测试用例:ACnoA0,b=0,c=1a0,课程号不存在,重新退选d! 条件组合覆盖的基本思想是,设计若干测试用例,运行程序,使得每个条件中的所有可能至少出现一次,并且每个判定的结果也至少出现一次.6.2:6.2.1选课功能条件组合覆盖测试用
5、例:c=1,d!=1,h=maxH!c=1,e!bCno,e!b0,e!c!P80b&2退选功能条件组合覆盖测试用例:0,b=0,c=1aCnoa0,=0,d!ACno|a0,七、路径覆盖:路径覆盖的基本思想是,设计所有的测试用例,来覆盖程序中的所有可能的执行路径。7.2.1选课功能路径覆盖测试用例:a=0a=0,e=1a=0,b=0&b=0是否重新选课a=0,b0b0&bCno,c!这门课程选过了a=0,b0bCno,c!这门课的人数已满0&=1,h!选课成功!重新选课P9退出系统7.2。2退课功能路径覆盖测试用例:aCno|a=0B=0该课程不存在A=Cno|aB!=0,d=1退选成功=C
6、no|a=0你还未选此门课C=1重新退选C!对于白盒测试,在设计测试用例时首先对程序进行分析,从程序的内部结构出发设计测试用例,涉及到程序的控制方法、源语句、编码细节、数据库设计等。设计测试用例时应用了白盒测试中的多种测试方法,其中包括:测试覆盖(语句覆盖、分支覆盖、分支条件覆盖等)、基路径测试等方法。白盒测试中,对代码的测试比较透彻,但不容易生成测试用例,而且测试工作量很大。因为白盒测试是基于代码的基础上,所以对变量的定义、数据的分析、精度的度量都有严格的要求。同时,对于白盒测试的案例设计,要注意以下几点:(1)保证每个模块中的所有独立路径至少被执行一次;(2)对所有的逻辑值均需要测试真、假
7、两个分支;(3)在上下边界及可操作范围内运行所有循环;(4)检查内部数据结构以确保其有效性。在测试中,也出现了一些不足: 在选课模块中,有一个条件语句是判断所输入的课程号是否存在.当所输入课程号不存在的时候,程序跳转到重新开始选课。这个判定,存在缺陷。只能判断数字,对于其他的数据类型,缺少错误输入判断。 在选课模块中,有一个条件语句是判断是否确认选择.输入选项有1和2,当输入为其他数据类型时,程序界面一闪而过,退回到学生界面。 在退选模块中,有一个条件语句是判断是否确认退选。输入选项有1和2,当输入为其他数据类型时,程序出错。九、源代码:void select(int XH) /选课/ lea
8、p1: system(”color 70); int cn,i,j,Cn,k; int p=0; char t20; printf(课程号 课程名 上课时间 上课地点 上课老师 老师编号 课程人数n /添加/ for(k=0;k=0)课程号 课程名 上课时间 上课地点 上课老师 老师编号 课程人数n”); printf(”3d %10s %9.2f”,CouCn。Cno,CouCn.Cname,CouCn。time); printf(” 10s 8s 9d %9dn,CouCn.place,CouCn.teacher,CouCn.Tno,CouCn。是否选择该课程? scanf(d,j); i
9、f(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(goto leap1; else if(StudentXHSCMAX-10) printf(”你所选课程已满不能再进行选择n else if(CouCn.pn=CPMAX) printf(该门课人数已满”);是否重新选课?1 是 2 否n scanf(”%d”,i); if(i=1) system( /1111*/ el
10、se if(StudentXH1=0) StudentXH1=CouCn。Cno; else if(StudentXH2=0) StudentXH2=CouCn。 else if(StudentXH3=0) StudentXH3=CouCn。 else StudentXH4=CouCn。Cno; CouCn.pn=CouCn.pn+1;n%d if(j=1) system(cls”); else printf(”是否继续选课? 1 是 2 否n”); scanf(”%d,j); if(j=1) system(”cls else printf(”该课程不存在n printf(任意键返回n”);
11、scanf(”%s”,&t); system(”cls”); printf(”s欢迎回来!n”,SXH.Sname); system(color 80 #n #n printf(” #n printf(” 1 选课查询 n printf(” 2 选课 n”); n”); printf(” # 3 选课退选 #n # n # B返回 #n”); printf(” #n”); scanf(”%d,&i); if(i=1) system(search(XH); else if(i=2) system(”cls”);select(XH); else if(i=3) system(DropC(XH); system(”cls jiemian();void DropC(int XH) /课程退选/leap2: int i,j,k; char l20; int m=0;您已选择的课程为:n”); printf(”课程号 课程名 上课时间 上课地点 上课老师 老师编号 课程人数n”); for(j=1;j=4; if(StudentXHj=0) printf(”空n else printf(%3d 10s %9。2f ”,CouStudentXHj-1.Cno,CouStudentXHj-1.Cname,CouStudentXHj-1。 pr
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2