• 实验二白盒测试


    一、实验目的

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

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

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

    二、实验要求

    1、 复习有关内容,理解白盒测试;

    2、 掌握语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖,并能设计出测试用例;

    3、 对具体软件,能分别使用相应的白盒测试方法设计测试用例,并实施测试、分析测试结果。

    三、实验内容

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

    实验一 1

    流程图如下所示

    逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。 

     

    1. 语句覆盖

    每个可执行语句都走一遍即可,即测试用例要覆盖所有的语句

    输入

    测试路径

    测试结果

    Aaaa

    1-2-4-5

    输入日期格式错误

    20220411

    1-2-4-6-14

    星期一

    20220412

    1-2-4-6-7-15

    星期二

    20220413

    1-2-4-6-7-8-16

    星期三

    20220414

    1-2-4-6-7-8-10-17

    星期四

    20220415

    1-2-4-6-7-8-10-11-18

    星期五

    20220416

    1-2-4-6-7-8-10-11-12-19

    星期六

    20220417

    1-2-4-6-7-8-10-11-12-13-20

    星期日

    1. 判定覆盖

    针对判断语句,在设定案例的时候,要设定True和False的两种案例;与语句覆盖不同的是增加了False的情况

    使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。上例需要设计测试用例使其分别满足下列条件即可(1)A=true,B=true,C=true,D=false(2)A=true,B=false,C=false,D=false。

    输入

    测试路径

    测试结果

    Aaaa

    1-2-4-5

    输入日期格式错误

    20220411

    1-2-4-6-14

    星期一

    20220412

    1-2-4-6-7-15

    星期二

    20220413

    1-2-4-6-7-8-16

    星期三

    20220414

    1-2-4-6-7-8-10-17

    星期四

    20220415

    1-2-4-6-7-8-10-11-18

    星期五

    20220416

    1-2-4-6-7-8-10-11-12-19

    星期六

    20220417

    1-2-4-6-7-8-10-11-12-13-20

    星期日

    1. 条件覆盖

    要使得每个判断中的每个条件的可能取值至少满足一次。

    输入

    测试路径

    测试结果

    Aaaa

    1-2-4-5

    输入日期格式错误

    20220411

    1-2-4-6-14

    星期一

    20220412

    1-2-4-6-7-15

    星期二

    20220413

    1-2-4-6-7-8-16

    星期三

    20220414

    1-2-4-6-7-8-10-17

    星期四

    20220415

    1-2-4-6-7-8-10-11-18

    星期五

    20220416

    1-2-4-6-7-8-10-11-12-19

    星期六

    20220417

    1-2-4-6-7-8-10-11-12-13-20

    星期日

    1. 判定/条件覆盖

    判定覆盖各条件覆盖交叉,针对于判定中的条件取值

    执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。

    如下例所示:

    输入

    测试路径

    测试结果

    Aaaa

    1-2-4-5

    输入日期格式错误

    20220411

    1-2-4-6-14

    星期一

    20220412

    1-2-4-6-7-15

    星期二

    20220413

    1-2-4-6-7-8-16

    星期三

    20220414

    1-2-4-6-7-8-10-17

    星期四

    20220415

    1-2-4-6-7-8-10-11-18

    星期五

    20220416

    1-2-4-6-7-8-10-11-12-19

    星期六

    20220417

    1-2-4-6-7-8-10-11-12-13-20

    星期日

    1. 条件组合覆盖

    判定-条件覆盖的加强版

    输入

    测试路径

    测试结果

    Aaaa

    1-2-4-5

    输入日期格式错误

    20220411

    1-2-4-6-14

    星期一

    20220412

    1-2-4-6-7-15

    星期二

    20220413

    1-2-4-6-7-8-16

    星期三

    20220414

    1-2-4-6-7-8-10-17

    星期四

    20220415

    1-2-4-6-7-8-10-11-18

    星期五

    20220416

    1-2-4-6-7-8-10-11-12-19

    星期六

    20220417

    1-2-4-6-7-8-10-11-12-13-20

    星期日

    1. 路径覆盖

    走完所有的路径

    输入

    测试路径

    测试结果

    Aaaa

    1-2-4-5

    输入日期格式错误

    20220411

    1-2-4-6-14

    星期一

    20220412

    1-2-4-6-7-15

    星期二

    20220413

    1-2-4-6-7-8-16

    星期三

    20220414

    1-2-4-6-7-8-10-17

    星期四

    20220415

    1-2-4-6-7-8-10-11-18

    星期五

    20220416

    1-2-4-6-7-8-10-11-12-19

    星期六

    20220417

    1-2-4-6-7-8-10-11-12-13-20

    星期日

     

     

     

     

     

    实验一 3

    1. 语句覆盖

    输入

    测试路径

    测试结果

    coin

    choice

    0.5

    橙汁

    1-2-3-4-6

    橙汁

    1

    橙汁

    1-2-3-4-5-6-7-8

    橙汁+0.5

    0.5

    啤酒

    1-2-3-7-9

    啤酒

     

    1. 判定覆盖

    每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足

    输入

    测试路径

    测试结果

    coin

    choice

    0.5

     

    1-2-3-4-5

    投币错误

    1

    橙汁

    1-2-3-4-5-6-7-8

    橙汁+0.5

    0.5

    啤酒

    1-2-3-7-9

    啤酒

     

    1. 条件覆盖(由于这个判定中,每个判定中都只有一个条件,因此与判定覆盖一致)

    要使得每个判断中的每个条件的可能取值至少满足一次。

    输入

    测试路径

    测试结果

    coin

    choice

    0.5

     

    1-2-3-4-5

    投币错误

    1

    橙汁

    1-2-3-4-5-6-7-8

    橙汁+0.5

    0.5

    啤酒

    1-2-3-7-9

    啤酒

     

    1. 判定/条件覆盖

     

    足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能

    输入

    测试路径

    测试结果

    coin

    choice

    0.5

     

    1-2-3-4-5

    投币错误

    1

    橙汁

    1-2-3-4-5-6-7-8

    橙汁+0.5

    0.5

    啤酒

    1-2-3-7-9

    啤酒

    5.条件组合覆盖

    执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。

    输入

    测试路径

    测试结果

     

    coin

    choice

    0.5

     

    1-2-3-4-5

    投币错误

    1

    橙汁

    1-2-3-4-5-6-7-8

    橙汁+0.5

    0.5

    啤酒

    1-2-3-7-9

    啤酒


    1. 路径覆盖

    选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。

    输入

    测试路径

    测试结果

    coin

    choice

    0.5

     

    1-2-3-4-5

    投币错误

    1

    橙汁

    1-2-3-4-5-6-7-8

    橙汁+0.5

    0.5

    啤酒

    1-2-3-7-9

    啤酒

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

    实验一 2

     

    输入

    测试路径

    测试结果

    Price

    sum

    105

     

    1-2-3-4

    输入错误

    80

    105

    1-2-3-5-6-7

    输入错误

    90

    80

    1-2-3-5-6-8-9

    输入错误

    80

    90

    1-2-3-5-6-8-10

    找零成功

     

     

     

     

     

     

     

    实验一 4

     

    输入

    测试路径

    测试结果

    欧美

    1-2-3

    食物供应电影播放

    国外非欧美商务

    1-2-4-5-6

    食物供应电影播放

    国外非欧美经济

    1-2-4-5-7

    食物供应

    111

    1-2-4-8-14

    航班信息错误

    国内商务

    1-2-4-8-9-10

    食物供应

    国内经济大于2小时

    1-2-4-8-9-11-12

    食物供应

    国内经济小于2小时

    1-2-4-8-9-11-13

    暂无任何服务

    程序伪代码

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

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

           3ERRCODE为出错码

    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-2-4-3

    0

    1-2-4-5-9-10-11-15-17-18-19-16-14

    2

    1-2-4-5-9-10-11-15-17-18-19

    1

    条件覆盖

    输入条件

    测试路径

    测试结果

    1-2-4-3

    0

    1-2-4-5-9-10-11-15-17-18-19-16-14

    2

    1-2-4-5-9-10-11-15-17-18-19

    1

    五、实验体会:

    较好的理解了语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖,以及理解了这几种覆盖之间的区别,这几种覆盖的强弱关系是由弱到强的,在一定条件下,他们的测试用例可能一样,同时了解了基本路径覆盖的测试方法,整体来说较为清晰的了解了白盒测试的用例编写流程。同时也加强了逻辑图的绘制能力。想要设计出好饿的测试用例就要设计较为合理的测试流程图,有的情况下需要将特定的条件分割开来。

     

  • 相关阅读:
    SpringMVC项目模块浅析
    利用python脚本(xpath)抓取数据
    利用python脚本(re)抓取美空mm图片
    Intellij idea开发Hadoop MapReduce程序
    在Hadoop平台跑python脚本
    Hadoop常用命令
    CentOS6.5 安装Zookeeper集群
    MySQL常用命令
    MongoDB常用命令
    前后端分离架构+k8s+ingress
  • 原文地址:https://www.cnblogs.com/wfswf/p/16367070.html
Copyright © 2020-2023  润新知