学生选课系统白盒测试.docx

上传人:b****1 文档编号:2208682 上传时间:2023-05-02 格式:DOCX 页数:35 大小:105.54KB
下载 相关 举报
学生选课系统白盒测试.docx_第1页
第1页 / 共35页
学生选课系统白盒测试.docx_第2页
第2页 / 共35页
学生选课系统白盒测试.docx_第3页
第3页 / 共35页
学生选课系统白盒测试.docx_第4页
第4页 / 共35页
学生选课系统白盒测试.docx_第5页
第5页 / 共35页
学生选课系统白盒测试.docx_第6页
第6页 / 共35页
学生选课系统白盒测试.docx_第7页
第7页 / 共35页
学生选课系统白盒测试.docx_第8页
第8页 / 共35页
学生选课系统白盒测试.docx_第9页
第9页 / 共35页
学生选课系统白盒测试.docx_第10页
第10页 / 共35页
学生选课系统白盒测试.docx_第11页
第11页 / 共35页
学生选课系统白盒测试.docx_第12页
第12页 / 共35页
学生选课系统白盒测试.docx_第13页
第13页 / 共35页
学生选课系统白盒测试.docx_第14页
第14页 / 共35页
学生选课系统白盒测试.docx_第15页
第15页 / 共35页
学生选课系统白盒测试.docx_第16页
第16页 / 共35页
学生选课系统白盒测试.docx_第17页
第17页 / 共35页
学生选课系统白盒测试.docx_第18页
第18页 / 共35页
学生选课系统白盒测试.docx_第19页
第19页 / 共35页
学生选课系统白盒测试.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生选课系统白盒测试.docx

《学生选课系统白盒测试.docx》由会员分享,可在线阅读,更多相关《学生选课系统白盒测试.docx(35页珍藏版)》请在冰点文库上搜索。

学生选课系统白盒测试.docx

学生选课系统白盒测试

 

实验报告

 

课程名称:

软件测试方法和技术

学生姓名:

刘成立、龙甜

学号:

14122402475、14122402596

院系:

计算机班级:

1202组别:

1

任课教师:

张建东指导老师:

张建东

 

 

一、学生选课系统选课以及退选流程图2

二、语句覆盖:

4

2。

1:

语句覆盖过程分析:

2。

2:

语句覆盖测试用例:

三、判定覆盖:

5

3.1:

判定覆盖过程分析:

3。

2:

判定覆盖测试用例:

四、条件覆盖:

6

4.1:

条件覆盖过程分析:

4。

2:

条件覆盖测试用例:

五、判定-条件覆盖:

7

5。

1:

判定—条件覆盖过程分析:

5。

2:

判定—条件覆盖测试用例:

六、条件组合覆盖:

8

6。

1:

条件组合覆盖过程分析:

6。

2:

条件组合覆盖测试用例:

七、路径覆盖:

9

7。

1:

路径覆盖过程分析:

7.2:

路径覆盖测试用例:

八、实验总结:

11

九、源代码:

12

 

实验一白盒测试用例设计

一、学生选课系统选课以及退选流程图:

1.1学生选课系统选课流程图:

A

F

F

B

T

F

C

T

T

T

D

E

F

T

F

H

F

 

注释:

条件A为,判定课程号是否存在?

条件B为,判定是否在课程号范围内?

条件C为,判定是否确认选课?

条件D为,判断该课程是否已经选过了?

条件E为,判定是否继续选课?

条件H为,判定选课人数是否已满?

1.2学生选课系统退选流程图:

A

T

F

B

T

C

F

是否重新退选课?

T

F

T

D

F

注释:

条件A为,判定课程号是否输入有误?

条件B为,判定课程号是否存在?

条件C为,判断是否重新退选?

条件D为,判定退选是否成功?

二、语句覆盖:

2。

1:

语句覆盖过程分析:

语句覆盖的基本思想是设计若干测试用例,使得运行被测试程序时,每个可执行语句至少被执行一次.

2.2:

语句覆盖测试用例:

2。

2.1选课功能语句覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

条件E

条件H

预期结果

Ok/

Ng

P1

a=0,

e=1

T

T

该课程不存在,重选

Ok

P2

a!

=0,

0

=1

F

T

T

T

F

该课程选过了,选课结束

Ok

P3

a!

=0,

0〈b&&b〈Cno,c=1,d!

=1,e!

=1

h〈max

F

T

T

F

F

T

选课成功

Ok

P4

a!

=0,

0〈b&&b

=1,

h>max

F

T

T

F

F

该课程人数已满,选课结束

Ok

2.2.2退选功能语句覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

预期结果

Ok/

Ng

P1

a〉Cno||a<0,

T

课程号输入有误,重退选

Ok

P2

a〈Cno&&a〉0,

b=0,c=1

F

T

T

课程不存在,重退选

Ok

P3

a

b!

=0,c!

=1,d=1

F

F

F

T

退选成功,不再退选

Ok

P4

a〈Cno&&a〉0,

b!

=0,c!

=1,d!

=1

F

F

F

未选此课,退选结束

Ok

 

三、判定覆盖:

3.1:

判定覆盖过程分析:

判定覆盖的基本思想是设计若干用例,使得运行被测程序,使每个判定的真假分支至少经历一次。

3.2:

判定覆盖测试用例:

3.2.1选课功能判定覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

条件E

条件H

预期结果

Ok/

Ng

P1

a=0,e=1

T

T

该课程不存在,重选

Ok

P2

a!

=0,

0>b||b>Cno,

e!

=1

F

F

F

超出课程范围,选课结束

Ok

P3

a!

=0,

0〈b&&b

=1,e!

=1

F

T

F

F

不选该课程,选课结束

Ok

P4

a!

=0,

0

C=1,d=1,e!

=1

F

T

T

T

F

该课程选过来,选课结束

Ok

P5

a!

=0,

0〈b&&b

C=1,d!

=1,e!

=1,h=max

F

T

T

F

F

T

选课人满,选课结束

Ok

P6

a!

=0,

0〈b&&b

C=1,d!

=1,

H〈max

F

T

T

F

F

选课成功

Ok

3。

2.2退选功能判定覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

预期结果

Ok/

Ng

P1

a>Cno||a<0,

T

课程号输入有误

Ok

P2

a

b=0,c=1

F

T

T

课程号不存在,重新退选

Ok

P3

a〈Cno&&a>0,

b!

=0,c!

=1,d=1

F

F

F

T

退选成功,结束退选

Ok

P4

a0,

b!

=0,c!

=1,d!

=1

F

F

F

未选此门课程,结束退选

Ok

四、条件覆盖:

4。

1:

条件覆盖过程分析:

条件覆盖的基本思想是,设计若干测试用例,运行程序,使得每个判断中的可能取值至少满足一次。

4.2:

条件覆盖测试用例:

4.2。

1选课功能条件覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

条件E

条件H

预期结果

Ok/

Ng

P1

a=0,b=1

T

T

该课程不存在,重选

Ok

P2

A!

=0,

0

c=1,d!

=1,

h=max

F

T

T

F

T

选课人满,选课结束

Ok

P3

A!

=0,

0

=1,

H!

=max

F

T

T

T

F

该课程选过来,选课结束

Ok

P4

A!

=0,

0

=1,e!

=1,

F

T

F

T

F

选课成功

Ok

P5

A!

=0,

b>Cno,e!

=1

F

F

F

该课程不存在,重选

Ok

P6

A!

=0,

b<0,e!

=1

F

F

F

该课程不存在,重选

Ok

4。

2。

2退选功能条件覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

预期结果

Ok/

Ng

P1

A〉Cno

T

课程号输入有误

Ok

P2

A〈0,b=0,c=1

T

课程号输入有误

Ok

P3

a〈Cno&&a〉0,

b!

=0,c=1

F

T

T

课程号不存在,重新退选

Ok

P4

a

b!

=0,c!

=1,d=1

F

F

F

T

退选成功,结束退选

Ok

P5

a〈Cno&&a〉0,

b!

=0,d!

=1

F

F

F

未选此门课程,结束退选

Ok

五、判定-条件覆盖:

5.1:

判定-条件覆盖过程分析:

判定—条件覆盖的基本思想是,设计若干测试用例,运行程序,使得判断条件中的所有可能至少执行一次,同时,所有判断的可能结果至少执行一次。

5。

2:

判定-条件覆盖测试用例:

5。

2。

1选课功能判定—条件覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

条件E

条件H

预期结果

Ok/

Ng

P1

a=0,b=1

T

T

该课程不存在,重选

Ok

P2

A!

=0,

0〈b&&b〈Cno,

c=1,d!

=1,

h=max

F

T

T

F

T

选课人满,选课结束

Ok

P3

A!

=0,

0

c=1,d!

=1,

H!

=max

F

T

T

T

F

该课程选过来,选课结束

Ok

P4

A!

=0,

0

c=1,e!

=1,

F

T

T

T

F

选课成功

Ok

P5

A!

=0,

b>Cno,e!

=1

F

F

F

该课程不存在,重选

Ok

P6

A!

=0,

b〈0,e!

=1

F

F

F

该课程不存在,重选

Ok

P7

a!

=0,

0〈b&&b

c!

=1,e!

=1

F

T

F

F

取消选课,结束选课

Ok

5.2.2退选功能判定—条件覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

预期结果

Ok/

Ng

P1

A>Cno

T

课程号输入有误

Ok

P2

A<0,b=0,

c=1

T

课程号输入有误

Ok

P3

a〈Cno&&a〉0,

b!

=0,c=1

F

T

T

课程号不存在,重新退选

Ok

P4

a〈Cno&&a〉0,

b!

=0,

c!

=1,d=1

F

F

F

T

退选成功,结束退选

Ok

P5

a〈Cno&&a>0,

b!

=0,

d!

=1

F

F

F

未选此门课程,结束退选

Ok

六、条件组合覆盖:

6。

1:

条件组合覆盖过程分析:

条件组合覆盖的基本思想是,设计若干测试用例,运行程序,使得每个条件中的所有可能至少出现一次,并且每个判定的结果也至少出现一次.

6.2:

条件组合覆盖测试用例:

6.2.1选课功能条件组合覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

条件E

条件H

预期结果

Ok/

Ng

P1

a=0,b=1

T

T

该课程不存在,重选

Ok

P2

A!

=0,

0

c=1,d!

=1,h=max

F

T

T

F

T

选课人满,选课结束

Ok

P3

A!

=0,

0〈b&&b

c=1,d!

=1,

H!

=max

F

T

T

T

F

该课程选过来,选课结束

Ok

P4

A!

=0,

0〈b&&b

c=1,e!

=1,

F

T

T

T

F

选课成功

Ok

P5

A!

=0,

b〉Cno,e!

=1

F

F

F

该课程不存在,重选

Ok

P6

A!

=0,

b〈0,e!

=1

F

F

F

该课程不存在,重选

Ok

P7

a!

=0,

0〈b&&b

c!

=1,e!

=1

F

T

F

F

取消选课,结束选课

Ok

P8

a!

=0,

0〉b&&b>Cno,

F

F

F

取消选课,结束选课

6。

2。

2退选功能条件组合覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

预期结果

Ok/

Ng

P1

A>Cno

T

课程号输入有误

Ok

P2

A<0,b=0,c=1

T

课程号输入有误

Ok

P3

a〈Cno&&a>0,

b!

=0,c=1

F

T

T

课程号不存在,重新退选

Ok

P4

a〈Cno&&a〉0,

b!

=0,c!

=1,d=1

F

F

F

T

退选成功,结束退选

Ok

P5

a0,

b!

=0,d!

=1

F

F

F

未选此门课程,结束退选

Ok

P6

A〉Cno||a〈0,

T

课程号输入有误

Ok

七、路径覆盖:

7。

1:

路径覆盖过程分析:

路径覆盖的基本思想是,设计所有的测试用例,来覆盖程序中的所有可能的执行路径。

7.2:

路径覆盖测试用例:

7.2.1选课功能路径覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

条件E

条件H

预期结果

Ok/

Ng

P1

a=0

T

该课程不存在,重选

Ok

P2

a=0,e=1

T

该课程不存在,重选

Ok

P3

a=0,b〈=0&&b〉=0

T

F

是否重新选课

Ok

P4

a=0,b〉0&&b

=1

T

T

F

是否重新选课

Ok

P5

a=0,b>0&&b〈Cno,c!

=1,d=1

T

T

T

T

这门课程选过了

Ok

P6

a=0,b〉0&&b

=1,d!

=1,h=max

T

T

T

F

T

这门课的人数已满

Ok

P7

a=0,b>0&&b

=1,d!

=1,h!

=max

T

T

T

T

F

选课成功!

Ok

P8

e=1

T

重新选课

Ok

P9

e!

=1

F

退出系统

Ok

 

7.2。

2退课功能路径覆盖测试用例:

编号

输入

条件A

条件B

条件C

条件D

预期结果

Ok/

Ng

P1

a〉Cno||a<0

T

课程号输入有误

Ok

P2

A<=Cno||a>=0

B=0

F

T

该课程不存在

Ok

P3

A〈=Cno||a>=0

B!

=0,d=1

F

T

T

退选成功

Ok

P4

A<=Cno||a〉=0

B!

=0,d!

=1

F

T

F

你还未选此门课

Ok

P5

C=1

T

重新退选

Ok

P6

C!

=1

F

退出系统

Ok

 

八、实验总结:

对于白盒测试,在设计测试用例时首先对程序进行分析,从程序的内部结构出发设计测试用例,涉及到程序的控制方法、源语句、编码细节、数据库设计等。

设计测试用例时应用了白盒测试中的多种测试方法,其中包括:

测试覆盖(语句覆盖、分支覆盖、分支条件覆盖等)、基路径测试等方法。

白盒测试中,对代码的测试比较透彻,但不容易生成测试用例,而且测试工作量很大。

因为白盒测试是基于代码的基础上,所以对变量的定义、数据的分析、精度的度量都有严格的要求。

 

同时,对于白盒测试的案例设计,要注意以下几点:

(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;i〈k;i++)

printf(”%3d%10s%9.2f”,Cou[i].Cno,Cou[i]。

Cname,Cou[i]。

time);

printf("%10s%8s%9d%9d\n”,Cou[i].place,Cou[i]。

teacher,Cou[i]。

Tno,Cou[i]。

pn);

}/*添加*/

printf(”请输入课程序号\n");

scanf("%d”,&cn);

Cn=cn-1;

if(Cou[Cn].Cno==0)

{

printf("该课程不存在\n”);

printf("是否继续选课?

1是2否\n");

scanf("%d”,&j);

if(j==1){system("cls");gotoleap1;}

elseif(Cn〈CNO&&Cn>=0)

{

printf("课程号课程名上课时间上课地点上课老师老师编号课程人数\n”);

printf(”%3d%10s%9.2f”,Cou[Cn]。

Cno,Cou[Cn].Cname,Cou[Cn]。

time);

printf(”%10s%8s%9d%9d\n",Cou[Cn].place,Cou[Cn].teacher,Cou[Cn].Tno,Cou[Cn]。

pn);

printf("是否选择该课程?

1是2否\n");

scanf("%d",&j);

if(j==1)

for(j=1;j〈(SCMAX-1);j++)

if(Student[XH][j]==cn)p=1;

if(p==1)

{

printf(”该门课程已经选过了\n”);

printf(”是否重新选课?

1是2否\n”);

scanf(”%d”,&i);

if(i==1){system("cls");gotoleap1;}

elseif(Student[XH][SCMAX-1]>0)

{

printf(”你所选课程已满不能再进行选择\n");

elseif(Cou[Cn].pn==CPMAX)

{

printf("该门课人数已满”);

printf("是否重新选课?

1是2否\n");

scanf(”%d”,&i);

if(i==1){system("cls");gotoleap1;}/*1111*/

else

if(Student[XH][1]==0)Student[XH][1]=Cou[Cn]。

Cno;

elseif(Student[XH][2]==0)Student[XH][2]=Cou[Cn]。

Cno;

elseif(Student[XH][3]==0)Student[XH][3]=Cou[Cn]。

Cno;

else

Student[XH][4]=Cou[Cn]。

Cno;

Cou[Cn].pn=Cou[Cn].pn+1;

printf("选课成功!

\n");

printf("是否继续选课?

1是2否\n");

scanf("%d",&j);

if(j==1){system("cls”);gotoleap1;}

}

else

printf(”是否继续选课?

1是2否\n”);

scanf(”%d",&j);

if(j==1){system(”cls");gotoleap1;}

else

printf(”该课程不存在\n");

printf("是否继续选课?

1是2否\n");

scanf("%d",&j);

if(j==1){system(”cls");gotoleap1;}

printf("任意键返回\n”);

scanf(”%s”,&t);

system(”cls”);

printf(”%s欢迎回来!

\n”,S[XH].Sname);

system("color80");

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返回#\n”);

printf(”################################################\n”);

scanf(”%d",&i);

if(i==1){system("cls");search(XH);}

elseif(i==2){system(”cls”);select(XH);}

elseif(i==3){system("cls");DropC(XH);}

else

{

system(”cls");

jiemian();

voidDropC(intXH)/*课程退选*/

{

leap2:

inti,j,k;

charl[20];

intm=0;

printf("您已选择的课程为:

\n”);

printf(”课程号课程名上课时间上课地点上课老师老师编号课程人数\n”);

for(j=1;j<=4;j++)

{

if(Student[XH][j]==0)printf(”空\n");

else

printf("%3d%10s%9。

2f”,Cou[Student[XH][j]-1].Cno,Cou[Student[XH][j]-1].Cname,Cou[Student[XH][j]-1]。

time);

pr

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2