• 黑盒测试用例设计方法案例与练习题


    1、等价类

    案例

    登录功能

    用户名和密码登录(以在线考试系统为例)

    年龄字段输入

    2、网站注册页面年龄输入要求:某网站前台用户注册页面,其中有年龄字段的输入,要求输入1-150之间的正整数;

    输入条件

    有效等价类

    取值

    编号

    无效等价类

    取值

    编号

    [1-150]

    [1-150]

    100

    A01

    整数

    正整数

    >150

    200

    B01

    负整数

    (-∞,0)

    -9

    B02

    0

    0

    0

    B03

    小数

    1.1

    B04

    字母

    大写

    A-Z

    Z

    B05

    小写

    a-z

    r

    B06

    汉字

    简体

    B07

    繁体

    B08

    特殊符号

    B09

    练习题

    三角形

     输入三角形三边应为正整数,分别构成非三角形、一般三角形、等腰三角形和等边三角形。

    1、需求分析:

    1. 正整数
    2. 两边之和大于第三边
    3. 两边相等
    4. 三边相等

    2、等价类设计

    条件

    有效等价类

    编号

    无效等价类

    编号

    正整数

    A边正整数

    A01

    小数

    B01

    0

    B02

    B03

    字符

    B04

    B边正整数

    A02

    小数

    B05

    0

    B06

    B07

    字符

    B08

    C边正整数

    A03

    小数

    B09

    0

    B10

    B11

    字符

    B12

    两边之和大于第三边

    A+b>c

    A04

    A+b

    B13

    A+b=c

    B14

    A+c>b

    A05

    A+c

    B15

    A+c=b

    B16

    B+c>a

    A06

    B+c

    B17

    B+c=a

    B18

    两边相等

    A=b

    A07

    B=c

    A08

    A=c

    A09

    三边相等

    A=b=c

    A10

    3、用例提取:

    编号

    有效输入

    覆盖有效等价类

    编号

    无效输入

    覆盖无效等价类

    1

    3   4   5

    A01、A02、A03

    A04、A05、A06

    1

    .。。

    。。。

    2

    3   3    4

    A01、A02、A03

    A07

    3

    4   3    3

    A01、A02、A03

    A08

    4

    3   4    3

    A01、A02、A03

    A09

    5

    3   3    3

    A01、A02、A03

    A10

    18

    。。。

    。。。

    2、边界值

    案例

    登录功能

    实例同等价类

    年龄字段输入

    实例同等价类,边界值设计如下

    输入条件

    有效等价类

    取值

    编号

    无效等价类

    取值

    编号

    [1-150]

    [1-150]

    内点

    100

    A1

    整数

    正整数

    >150

    151

    B01

    上点

    1

    A2

    150

    A3

    负整数

    (-∞,0)

    -9

    B02

    0

    0

    0

    B03

    小数

    1.1

    B04

    字母

    大写

    A-Z

    A、Z

    B05

    小写

    a-z

    a、z

    B06

    汉字

    简体

    B07

    繁体

    B08

    特殊符号

    @、[、’、{

    B09

    练习题

    保险费率计算

    某保险网站的前台计算保费页面,其中有年龄字段的输入,不同的年龄段会使用不同的费率计算标准。

    其中:

       01-15岁,费率为:10%

       16-20岁,费率为:15%

       21-50岁,费率为:20%

       51-70岁,费率为:25%

    输入条件

    有效等价类

    取值

    编号

    无效等价类

    取值

    编号

    [1-70]

    [1-15]

    内点

    10

    A1

    整数

    正整数

    >70

    71

    B01

    上点

    1

    A2

    15

    A3

    [16-20]

    内点

    19

    A4

    负整数

    (-∞,0)

    -1

    B02

    上点

    16

    A5

    20

    A6

    [21-50]

    内点

    30

    A7

    0

    0

    0

    B03

    上点

    21

    A8

    50

    A9

    [51-70]

    内点

    60

    A10

    小数

    1.1

    B04

    上点

    51

    A11

    70

    A12

    字母

    大写

    A-Z

    A

    B05

    Z

    B06

    小写

    a-z

    a

    B07

    z

    B08

    汉字

    简体

    B09

    繁体

    B10

    特殊符号

    @

    B11

    [

    B12

    B13

    {

    B14

    等价类与边界值综合练习题

    1、在某一版的编程语言中对变量名称规格作如下规定:变量名称是由字母开头的,后跟字母或者数字的任意组合构成。编译器能够区分的有效字符数为8个,并且变量名称必须先声明,后使用,在同一声明语句中,变量名称至少必须有一个。

    输入条件:

      1、变量名称是由字母开头                        6、变量名称不能重复

      2、字母或者数字的组合                          7、字母大小写敏感

      3、有效字符数为8个                            8、不能使用关键字

      4、变量名称必须先声明

      5、声明语句中变量名称至少必须有一个

    用例设计方法

    输入条件

    有效等价类

    取值

    编号

    无效等价类

    取值

    编号

    1、变量名称是由字母开头

    字母开头

    大写开头

    A-Z

    A

    A01

    非字母开头

    数字开头

    0-9

    0

    B01

    Z

    A02

    9

    B02

    H

    A03

    小写开头

    a-z

    a

    A04

    其他字符开头

    @

    B03

    [

    B04

    z

    A05

    {

    B05

    `

    B06

    y

    A06

    2、字母或者数字的组合

    字母

    大写

    A-Z

    A

    A07

    其他符号

    @

    B07

    Z

    A08

    {

    B08

    H

    A09

    [

    B09

    小写

    a-z

    a

    A10

    z

    A11

    B10

    y

    A12

    数字

    0-9

    0

    A14

    9

    A15

    7

    A16

    3、有效字符数为8个

    [1-8]

    [1-8]

    1

    A17

    0

    0

    B11

    8

    A18

    >8

    9

    B12

    6

    A19

    4、变量名称必须先声明

    先声明

    A20

    不声明使用

    B13

    先使用后声明

    B14

    5、声明变量至少为一个

    声明变量为一个

    A21

    无变量声明

    B15

    声明变量为多个

    A22

    6、变量名称不能重复

    变量名称不重复

    A23

    变量名称重复

    B16

    7、字母大小写敏感

    字母大小写敏感

    AbD

    A24

    8、不能使用关键字

    不使用关键字

    abc

    A25

    使用关键字

    int

    B17

    2、126邮箱注册

     

    输入条件

    有效等价类

    编号

    无效等价类

    编号

    字符长度

    [6-18]

    1

    0

    9

    1

    10

    >18

    11

    空格

    12

    字符组成

    字母

    2

    数字

    13

    特殊符号

    14

    汉字

    15

    字母、数字结合

    3

    字母、数字、下划线结合

    4

    下划线

    16

    数字下划线结合

    17

    字母、下划线结合

    5

    以数字开头

    18

    字符格式

    字母开头

    6

    以下划线开头

    19

    字母结尾

    7

    以下划线结尾

    20

    数字结尾

    8

    3、判定表

    案例

    读书选择

    1、如果觉得疲倦并且对书的内容感兴趣,同时书中的内容让你糊涂的话,回到本章重读

    2、如果觉得疲倦并且对书的内容感兴趣,同时书中的内容不让你糊涂,继续读下去

    3、不觉得疲倦并且对书的内容感兴趣,但是书中的内容让你糊涂的话,回到本章重读

    4、如果觉得疲倦并且对书中的内容不感兴趣,同时书中的内容不让你糊涂,停止阅读,请休息

    5、如果觉得疲倦并且对书的内容不感兴趣,并且书中的内容让你糊涂,请停止阅读,休息

    6、不疲倦,对书的内容感兴趣,书中的内容不糊涂,继续读下去

    7、不疲倦,不感兴趣,书中内容糊涂,跳到下一章去读

    8、不疲倦,不感兴趣,书中内容不糊涂,跳到下一章去读

    1、需求分析

        条件:是否疲倦、是否感兴趣、是否糊涂

        结果:本章重读、继续读、停止阅读、跳到下一章

    1. 绘制判定表(条件的组合 23=8个)

    1

    2

    3

    4

    5

    6

    7

    8

    条件

    是否疲倦

    0

    0

    0

    0

    1

    1

    1

    1

    是否感兴趣

    0

    0

    1

    1

    0

    0

    1

    1

    是否糊涂

    0

    1

    0

    1

    0

    1

    0

    1

    结果

    本章重读

    X

    X

    继续读

    X

    X

    停止阅读

    X

    X

    跳到下一章

    X

    X

    优点:组合充分,没有遗漏

    缺点:用例数量随条件的递增而过多(2n  n:条件的个数)

          条件的类型:布尔

    3、合并判定表

    1

    2

    3

    4

    1、2

    3、7

    4、5

    6、8

    条件

    是否疲倦

    0

    1

    是否感兴趣

    0

    1

    1

    是否糊涂

    0

    1

    1

    结果

    本章重读

    X

    继续读

    X

    停止阅读

    X

    跳到下一章

    X

       原则:结果相同

             条件有一个不同

       风险:产生分支或者路径的遗漏

    练习题

    密码修改

    若需修改密码,系统验证旧密码正确,两个新密码相同,则更新密码,旧密码即失效,其他修改项也生效,并提示“用户信息修改成功”; 若旧密码不正确,则提示“用户密码错”,系统将不修改个人信息;若两个新密码不同,则提示“新密码与验证新密码不同”,系统将不修改个人信息。

    若只修改密码外其他信息,则不需输入两个新密码,系统只验证旧密码正确,就成功更改个人信息,并提示“用户信息修改成功”;如果系统验证旧密码输入不正确,则提示“用户密码错”。

    1. 需求分析:

       条件:旧密码是否正确、新密码是否为空、新密码是否相同、是否修改其他信息

       结果:信息修改成功、用户密码错、密码不同

    2、界面原型:

     

    1. 实现的功能:
    1. 只修改密码
    2. 同时修改密码和其他信息
    3. 只修改其他信息(如果考虑密码为空的情况,改功能无法实现)

    ――解决办法:密码不允许为空,如果密码输入为空,代表不修改密码

    3、绘制判定表

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    条件

    旧密码是否正确

    0

    0

    0

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1

    新密码是否为空

    0

    0

    0

    0

    1

    1

    1

    1

    0

    0

    0

    0

    1

    1

    1

    1

    新密码是否相同

    0

    0

    1

    1

    0

    0

    1

    1

    0

    0

    1

    1

    0

    0

    1

    1

    是否修改其他信息

    0

    1

    0

    1

    0

    1

    0

    1

    0

    1

    0

    1

    0

    1

    0

    1

    结果

    信息修改成功

    用户密码错

    密码不同

    4、因果图

    案例

    自动售货机

    有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

    1. 需求分析

    条件:有零钱、选橙汁、选啤酒、投5角、投1元

    结果:红灯亮、出橙汁、出啤酒、找5角、退1元

    2、因果图

     

    练习题

    字母判定

    第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下(只有这个时候才)进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。

    1. 需求分析:

    条件:第一列是A、第一列是B、第二列是数字

    结果:修改文件、提示L、提示M

    2、绘制判定表

    1

    2

    3

    4

    5

    6

    7

    8

    条件

    第一列是A

    0

    0

    0

    0

    1

    1

    1

    1

    第一列是B

    0

    0

    1

    1

    0

    0

    1

    1

    第二列是数字

    0

    1

    0

    1

    0

    1

    0

    1

    结果

    修改文件

    提示L

    提示M

    无效

    无效

    3、绘制判定表

      4、去除无效列

    5、状态迁移

    案例

    飞机售票系统

    1、客户向航空公司打电话预定机票—>此时机票信息处于“完成”状态

    2、顾客支付了机票费用后—>机票信息就变为“已支付”状态

    3、旅行当天到达机场后,拿到机票后—>机票信息就变为“已出票”状态

    4、登机检票后—>机票信息就变为“已使用”状态

    5、在登上飞机之前任何时间可以取消自己的订票信息,如果已经支付了机票的费用,则还可以得到退款,取消后—>订票信息处于“已被取消”状态

    1、绘制“状态迁移图”

     2、绘制“状态迁移树”

     

    2.生成测试用例

    每个树枝形成一个测试用例(4个)

    练习题

    QC中缺陷跟踪流程

    以缺陷管理跟踪流程为例,使用状态迁移方法设计测试用例。

     1、状态迁移图

    1. 状态迁移树

     

    4、用例(6个)

    6、正交试验

    案例

    环境搭建

    假设一个WEB站点,该站点有大量的服务器和操作系统,并且有许多具有各种插件的浏览器浏览:

    Web浏览器

    Netscape

    IE

    Firefox

    插件

    RealPlayer

    Flash

    PDF Reader

    服务器

    IIS

    Tomcat

    Weblogic

    操作系统

    WinXP

    Win2000

    Win2003

    L4-2-3:

       4-实验次数(用例的个数)

       2-水平(每个条件取值的个数)

       3-因素(条件的个数)

    L9-3-4:

    所在列

    1

    2

    3

    4

    因素

    Web浏览器

    插件

    服务器

    操作系统

    实验结果

    实验1

    Netscape

    RealPlayer

    IIS

    WinXP

    实验2

    Netscape

    Flash

    Tomcat

    Win2000

    实验3

    Netscape

    PDF Reader

    Weblogic

    Win2003

    实验4

    IE

    RealPlayer

    Tomcat

    Win2003

    实验5

    IE

    Flash

    Weblogic

    WinXP

    实验6

    IE

    PDF Reader

    IIS

    Win2000

    实验7

    Firefox

    RealPlayer

    Weblogic

    Win2000

    实验8

    Firefox

    Flash

    IIS

    Win2003

    实验9

    Firefox

    PDF Reader

    Tomcat

    WinXP

    特点:

    1、任何一列:每个值出现次数相同

    1. 任何两列:每组值对出现次数相同
    2. 每个条件的每个值都和其他条件的所有值成对组合过(两两组合 - 充分+平均)

    练习题

    赶集网组合查询

     

    方法2:

    Web浏览器

    Netscape

    IE

    Firefox

    插件

    RealPlayer

    Flash

    PDF Reader

    BaiDu

    服务器

    IIS

    Tomcat

    Weblogic

    操作系统

    WinXP

    Win2003

    case

    WEB浏览器

    插件

    服务器

    操作系统

    1

    IE6.5

    Adobe PDF

    IIS

    Windows2000

    2

    Firefox3.0

    Falsh

    Apche

    Windows2000

    3

    IE6.5

    Adobe PDF

    Apche

    Windows 2003

    4

    Firefox3.0

    Falsh

    IIS

    Windows 2003

    5

    Firefox3.0

    Adobe PDF

    Tomcat

    Linux

    6

    IE6.5

    Falsh

    Tomcat

    Linux

    7

    IE6.5

    RealPlayer

    IIS

    Windows XP

    8

    Firefox3.0

    Baidu

    Apche

    Windows XP

    9

    Firefox3.0

    RealPlayer

    Apche

    Windows 98

    10

    IE6.5

    Baidu

    IIS

    Windows 98

    11

    IE6.5

    RealPlayer

    Tomcat

    Windows2000

    12

    Firefox3.0

    Baidu

    Tomcat

    Windows 2003

    13

    Firefox3.0

    RealPlayer

    IIS

    Linux

    14

    IE6.5

    Baidu

    Apche

    Linux

    15

    Firefox3.0

    Adobe PDF

    Tomcat

    Windows XP

    16

    IE6.5

    Falsh

    Tomcat

    Windows 98

    17

    Firefox3.0

    Baidu

    IIS

    Windows2000

    18

    IE6.5

    RealPlayer

    Apche

    Windows 2003

    19

    IE6.5

    Falsh

    IIS

    Windows XP

    20

    Firefox3.0

    Adobe PDF

    IIS

    Windows 98

    7、流程分析

    案例

    嵌入式发送子流程

    在某嵌入式系统中,将待发送的数据打包成符合CAN协议的帧格式后,便可写入发送缓站区,并自动发送。该发送子程序的流程为:

      1、首先进入发送子程序

      2、系统判断是否有空闲发送缓冲区,如果没有则返回,启动发送失败消息。

      3、如果有空闲缓冲区,将数据包写入空闲发送缓冲区

      4、系统判断是否写入成功,如果不成功则返回,启动发送失败消息

      5、如果写入成功,则启动发送命令

      6、返回启动发送成功消息

    1、绘制活动图(流程图):

     

    2、生成测试用例(借鉴单元测试-分支覆盖、路径覆盖)

    分支覆盖(100%):A-C-E-F  (基本流)

                      A-B       (备选流)

                      A-C-D    (备选流)

    路径覆盖(100%):A-C-E-F

                      A-B

                      A-C-D

    练习题

    字母判定

    第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下(只有这个时候才)进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。

    用例1: 第一列是AorB - 第二列是数字 - 修改文件

             第一列是A - 第二列是数字 - 修改文件            1   -  5

             第一列是B - 第二列是数字 - 修改文件            2   -  3

    用例2: 第一列不是AorB  - 提示L                         3   -  1

    用例3: 第一列是AorB - 第二轮不是数字 - 提示M

             第一列是A - 第二轮不是数字 - 提示M            4   - 4

             第一列是B - 第二轮不是数字 - 提示M            5   - 2

    1

    2

    3

    4

    5

    6

    7

    8

    条件

    第一列是A

    0

    0

    0

    0

    1

    1

    1

    1

    第一列是B

    0

    0

    1

    1

    0

    0

    1

    1

    第二列是数字

    0

    1

    0

    1

    0

    1

    0

    1

    结果

    修改文件

    X

    X

    提示L

    X

    X

    提示M

    X

    X

    无效

    无效

    1

    2

    3

    4

    5

    1、2

    3

    4

    5

    6

    条件

    第一列是A

    0

    0

    0

    1

    1

    第一列是B

    0

    1

    1

    0

    0

    第二列是数字

    0

    1

    0

    1

    结果

    修改文件

    X

    X

    提示L

    X

    提示M

    X

    X

    8、错误推测

    单引号用例

    Sql语句

    <%option explicit%>

    <%

    dim strAdminName,strAdminPwd,strErr

    strErr = ""

    strAdminName = Trim(request.form("adminname"))

    strAdminPwd = Trim(request.form("adminpwd"))

    if G_CONN.execute("select count(*) as reccount from admin where adminname='" & strAdminName & "' and adminpwd='" & strAdminPwd & "'")("reccount") = 0 then

    strErr = "

  • 用户名或密码错误!
  • "

    showErrMsg(strErr)

    else

    response.cookies("aoyi")("adminname") = strAdminName

    end if

    call closeConn()

    if strErr = "" then

    response.redirect "admin_index.asp"

    end if

    %>

    9、异常分析法

    Qq登录时网络断开后是否能够自动重连

    10、输入域覆盖

    输入超过字段存储类型的值,如short的int型,输入数值32768

    11、输出域覆盖

    金额计算时,商品单价*总数的金额值超过总金额所定义的数据范围。

    如总金额定义为short int型,商品单价为327.68,可购买最大数为100,则327.68*100=32768,该值超过short int所能存储的范围。

  • 相关阅读:
    dubbo-spring-boot-starter 2.7.0 升级到 2.7.3遇到的第一个坑 org.apache.dubbo.remoting
    JVM内存泄漏分析的demo
    MySQL -- 索引
    SpringCloud 06 Ribbon
    并联电容器电容量测试
    sql主从复制搭建
    网络期货开户业务是怎样办理的?
    Pytest运行指定的case,这个方法真的很高效……
    02【Spring注解开发、JdbcTemplate、整合Junit】
    YOLOv3: An Incremental Improvement的译读笔记
  • 原文地址:https://blog.csdn.net/qq_38220914/article/details/127762839