2025/04/23

实验项目名称:实验二          

一、      实验目的

1、掌握白盒测试的基础知识;

2、掌握白盒测试的检查内容及测试目的;

3、掌握黑盒测试的几种基本测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖。

二、  实验内容

1、2.对实验一1、3题使用逻辑覆盖法进行测试用例设计。

3、4.对实验一2、4题使用基本路径法进行测试用例设计。

5.

 

程序伪代码

注意: 1)参数表中EMPTAB 为职员表,DEPTTAB为部门表;

       2 ) ESIZE为职员表长度,DSIZE为部门表长度;

       3)ERRCODE为出错码

    MAXSALERS = 0;

    ERRCODE = 0;

    if(ESIZE <= 0 || DSIZE <= 0)

        ERRCODE = 1;

    else

    {

        for(i = 1; i < DSIZE ; i++)                        //选出各部门中最大的销售额值

            if(SALES[i] > MAXSALES)

                MAXSALES = SALES[i];

        for(j = 1; j < DSIZE; j++)                        //循环找出销售额最大的部门   

            if(SALES[j] == MAXSALES)                               

            {

                FOUND = false;

                for(int k = 1; k < ESIZE ; k++)    //检查销售额最大部门的所有人员

                    if(EMPTAB.DEPT(k) == DEPTTAB.DEPT(j))

                    {

                        FOUND = true;

                        if(SALARY(k) >= 15000.00 or JOB(k) = 'M')    //满足条件的人员加工资

                            SALARY(k) = SALARY(k) + 100.00;

                        else

                            SALARY(k) = SALARY(k) + 200.00;

                    }

                if(FOUND == false)

                    ERRCODE == 2;

            }

    }

 

采用判定覆盖、条件覆盖对该程序进行用例设计

三、  实验步骤及结果

1.

流程图

 

语句覆盖

测试用例

输入日期

预期输出

说明

用例 1

20240229

SATURDAY

闰年二月29日,合法日期

分支覆盖

测试用例

输入日期

预期输出

说明

用例 2

20231301

输入日期格式不正确,请输入正确的日期格式。

月份无效(13月)

用例 3

20230229

输入日期格式不正确,请输入正确的日期格式。

非闰年二月29日

用例 4

20230431

输入日期格式不正确,请输入正确的日期格式。

四月只有30天,输入31日

条件覆盖

测试用例

输入日期

预期输出

说明

用例 5

20240229

SATURDAY

闰年条件为真

条件/分支覆盖

测试用例

输入日期

预期输出

说明

用例 7

20240229

SATURDAY

闰年条件为真,分支为真

用例 8

20230229

输入日期格式不正确,请输入正确的日期格式。

闰年条件为假,分支为假

路径覆盖

测试用例

输入日期

预期输出

说明

用例 9

20240229

SATURDAY

合法日期路径

用例 10

20231301

输入日期格式不正确,请输入正确的日期格式。

月份无效路径

用例 11

20230229

输入日期格式不正确,请输入正确的日期格式。

非闰年二月29日路径

用例 12

20230431

输入日期格式不正确,请输入正确的日期格式。

四月31日路径

用例 13

20230228

MONDAY

非闰年二月28日路径

条件组合覆盖

测试用例

输入日期

预期输出

说明

用例 14

20000229

WEDNESDAY

闰年(能被400整除)

用例 15

19000229

输入日期格式不正确,请输入正确的日期格式。

非闰年(能被100整除但不能被400整除)

用例 16

20240229

SATURDAY

闰年(能被4整除但不能被100整除)

用例 17

20230228

MONDAY

非闰年(不能被4整除)

 

2.

流程图

 

语句覆盖

测试用例

投币选择

饮料选择

预期输出

用例 1

五角

橙汁

已为您送出橙汁。

用例 2

一元

啤酒

已为您送出啤酒,并退回五角硬币。

分支覆盖

测试用例

投币选择

饮料选择

预期输出

用例 3

五角

橙汁

已为您送出橙汁。

用例 4

一元

啤酒

已为您送出啤酒,并退回五角硬币。

用例 5

未选择

橙汁

请选择投币金额。

条件覆盖

测试用例

投币选择

饮料选择

预期输出

用例 6

五角

橙汁

已为您送出橙汁。

用例 7

一元

橙汁

已为您送出橙汁,并退回五角硬币。

用例 8

五角

啤酒

已为您送出啤酒。

用例 9

一元

啤酒

已为您送出啤酒,并退回五角硬币

分支/条件覆盖

测试用例

投币选择

饮料选择

预期输出

用例 10

五角

橙汁

已为您送出橙汁。

用例 11

一元

啤酒

已为您送出啤酒,并退回五角硬币。

用例 12

未选择

橙汁

请选择投币金额。

路径覆盖

测试用例

投币选择

饮料选择

预期输出

用例 13

五角

橙汁

已为您送出橙汁。

用例 14

五角

啤酒

已为您送出啤酒。

用例 15

一元

橙汁

已为您送出橙汁,并退回五角硬币。

用例 16

一元

啤酒

已为您送出啤酒,并退回五角硬币。

用例 17

未选择

橙汁

请选择投币金额。

用例 18

未选择

啤酒

请选择投币金额。

条件组合覆盖

测试用例

投币选择

饮料选择

预期输出

用例 19

五角

橙汁

已为您送出橙汁。

用例 20

五角

啤酒

已为您送出啤酒。

用例 21

一元

橙汁

已为您送出橙汁,并退回五角硬币。

用例 22

一元

啤酒

已为您送出啤酒,并退回五角硬币。

用例 23

未选择

橙汁

请选择投币金额。

用例 24

未选择

啤酒

请选择投币金额。

 

3.

控制流图

 

圈复杂度V(G)=3

测试用例

测试用例编号

输入(R, P)

预期输出

对应路径

1

R=25, P=50

找零组合:50元 0张,10元 2张,5元 1张,1元 0张

1-2-4、5-7

2

R=50, P=50

找零组合:50元 0张,10元 0张,5元 0张,1元 0张(找零金额为 0)

1-2-4、5-7

3

R=101, P=50

输入有误,请检查货品价格和付款金额。

1-2-3-7

4

R=50, P=101

输入有误,请检查货品价格和付款金额。

1-2-3-7

5

R="abc", P=50

输入有误,请检查货品价格和付款金额。

1-6-7

6

R=50, P="xyz"

输入有误,请检查货品价格和付款金额。

1-6-7

 

4.

控制流图

 

圈复杂度V(G)=5

测试用例

用例编号

路径

预期输出

1

1-2-5-6-8-9-11

食物供应: 有

电影播放: 可以

2

1-2-5-6-8-10-11

食物供应: 有

电影播放: 可以

3

1-2-5-7-8-9-11

食物供应: 有

电影播放: 可以

4

1-2-5-7-8-10-11

食物供应: 有

电影播放: 可以

5

1-3-5-6-8-9-11

食物供应: 有

电影播放: 可以

6

1-3-5-6-8-10-11

食物供应: 有

电影播放: 可以

7

1-3-5-7-8-9-11

食物供应: 有

电影播放: 不可以

8

1-3-5-7-8-10-11

食物供应: 有

电影播放: 不可以

9

1-4-5-6-8-9-11

食物供应: 有

电影播放: 不可以

10

1-4-5-6-8-10-11

食物供应: 有

电影播放: 不可以

11

1-4-5-7-8-9-11

食物供应: 有

电影播放: 不可以

12

1-4-5-7-8-10-11

食物供应: 无

电影播放: 不可以

判定覆盖测试用例

用例编号

输入数据

预期输出

1

ESIZE =0,DSIZE =5,职员表和部门表内容任意

ERRCODE=1

2

ESIZE =5,DSIZE =0,职员表和部门表内容任意

ERRCODE=1

3

ESIZE =3,DSIZE =3,部门表中有部门销售额相同为最大值,职员表中有职员属于该部门,其中一名职员工资 16000 元,职位不是经理;另一名职员工资 14000 元,职位是经理;还有一名职员工资 12000 元,职位是普通员工

ERRCODE=0,工资分别为16100元、14100元、12200元

4

ESIZE =3,DSIZE =3,部门表中最大销售额的部门没有职员,其他数据正常

ERRCODE=2

条件覆盖测试用例

用例编号

输入数据

预期输出

5

ESIZE =1,DSIZE =1,职员表中有一名职员工资低于15000,职位不是经理,且属于部门表中唯一部门

ERRCODE=0,工资增加200元

6

ESIZE =1,DSIZE =2,部门表中一个部门销售额大于另一个,职员属于销售额大的部门,且该职员工资等于15000元,职位不是经理

ERRCODE=0,工资增加100元

7

ESIZE =1,DSIZE =2,部门表中一个部门销售额大于另一个,职员属于销售额大的部门,且该职员职位是经理,工资低于15000元

ERRCODE=0,工资增加100元

8

ESIZE =1,DSIZE =2,部门表中一个部门销售额大于另一个,职员属于销售额小的部门

ERRCODE=0,工资不变

 

posted @ 2025-04-23 21:35  伐木工熊大  阅读(13)  评论(0)    收藏  举报