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

2023-10-26

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<c

B13

A+b=c

B14

A+c>b

A05

A+c<b

B15

A+c=b

B16

B+c>a

A06

B+c<a

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<len<6

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%>

<!--#include file="inc/conn.asp"-->

<!--#include file="inc/function.asp"-->

<%

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 = "<li>用户名或密码错误!</li>"

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所能存储的范围。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

黑盒测试用例设计方法案例与练习题 的相关文章

随机推荐

  • QProcess处理带管道的shell

    代码中需要调用shell 原写法为 QProcess proc new QProcess QString qCmd find name so print0 xargs 0 objdump x grep oE T 0 9 a f A F 4
  • 护网

    在HVV期间 蓝队主要就是通过安全设备看告警信息 后续进行分析研判得出结论及处置建议 在此期间要注意以下内容 内网攻击告警需格外谨慎 可能是进行内网渗透 1 攻击IP是内网IP 攻击行为不定 主要包括 扫描探测行为 爆破行为 命令执行等漏扫
  • 笑脸工具COORD批量转换2000大地到空间坐标

    数据格式txt 1 31 48 14 118687N 119 38 07 130943E 2 32 3 19 06731100008N 119 31 20 422269001200302E 3 31 50 31 89348499992000
  • 变频调速系统c语言编程,基于8098单片机的SPWM变频调速系统

    数字控制的交流调速系统所选用的微处理器 功率器件及产生PWM波的方法是影响交流调速系统性能好坏的直接因素 在介绍了正弦脉宽调制 SPWM 技术的基础上 设计了一种以8098单片机作为控制器 以智能功率模块IPM为开关器件的变频调速系统 通过
  • 小样本学习(Few-shot Learning)综述

    作者丨耿瑞莹 李永彬 黎槟华 单位丨阿里巴巴智能服务事业部小蜜北京团队 分类非常常见 但如果每个类只有几个标注样本 怎么办呢 笔者所在的阿里巴巴小蜜北京团队就面临这个挑战 我们打造了一个智能对话开发平台 Dialog Studio 以赋能第
  • [Flutter]封装了个Toast组件

    Flutter官方插件市场上已经有了很多成熟的Toast组件 如 fluttertoast 等等 使用了一年多的Flutter框架 一时兴起 自己封装了一个简单的Toast组件 注 本人觉得 自动关闭的时候 不宜使用 Navigator p
  • 西门子PLC S7-1200的硬件中断组织块简介

    西门子PLC S7 1200系列是一款中小型西门子PLC 可以在各种自动化项目中进行应用 S7 1200系列设计较为紧凑 经济性较好 而且指令功能较为强大 因此在各种自动化控制解决方案中有较广泛的应用 作为西门子PLC S7 200系列的升
  • [1218]hive之Map Join使用方法

    文章目录 介绍 mapjoin的使用方法 介绍 MAPJION会把小表全部加载到内存中 在map阶段直接拿另外一个表的数据和内存中表数据做匹配 由于在map端是进行了join操作 省去了reduce运行的时间 算是hive中的一种优化 如上
  • 开放原子训练营(第三季)inBuilder低代码开发实验室之探秘

    一 活动介绍 以开放原子训练营为主办方的inBuilder低代码实验室活动现已开启 参与者无论身居计算机业界 偏好低代码开发抑或是普通用户 均可在社区版inBuilder低代码开发平台 一款基于UBML开源项目的广泛适用的发行版 中尝试向导
  • ECMAScript2020 可选链操作符(?.)的应用

    一 前言 const programmer user lin department name 技术部 getSite return 在以前的语法中 想要获得深层次的属性或方法 如果不做前置校验的话 那么就很容易出现这种错误 这可能会导致你整
  • MFC 之 重绘按键Cbutton

    上次我们学习了如何美化对话框的界面 这次我们为上次的对话框添加两个按钮 一个是关闭按钮 另一个是最小化按钮 好 现在我们先看一下效果 是不是很难看 因为我们的对话框美化了 所以我们的按钮也要美化 因为采用贴图的方式来美化 所以 我先给出这两
  • 笔试面试算法经典--矩阵的最短路径和(Java)

    题目 给定一个矩阵m 从左上角开始每次只能向右或者向下走 最后到达右下角的位置 路径上所有的数字累加起来就是路径和 返回所有路径中最小的路径和 例子 给定m如下 1 3 5 9 8 1 3 4 5 0 6 1 8 8 4 0 路径1 3 1
  • 信号去噪 - 基于SVD实现数字信号降噪含Matlab源码

    信号去噪 基于SVD实现数字信号降噪含Matlab源码 介绍 信号处理中的一个重要问题是如何降噪 这在各种应用领域中都有非常重要的作用 奇异值分解 SVD 是一种广泛使用的信号处理技术 可以用于有效地降低信号噪声 本文将介绍如何使用SVD进
  • Elasticsearch 安装及启动【Windows】

    一 下载 Elasticsearch 官网下载地址 https www elastic co cn downloads past releases elasticsearch 选择自己所需版本进行下载 这里以Elasticsearch 8
  • 【操作系统】王道考研 p64-66 IO软件层次结构、IO核心子系统、假脱机技术(SPOOLing技术)

    IO软件层次结构 IO核心子系统 假脱机技术 SPOOLing技术 以下是IO软件层次结构的内容 知识总览 用户层软件 实现了与用户交互的接口 将用户的请求翻译为格式化的IO请求 并通过 系统调用 请求操作系统内核的服务 设备独立性软件 又
  • PyQt5 QTableWidget内容复制功能

    为了更快速的将QTableWidget的内容复制到剪贴板 只需重写这个控件的keyPressEvent event 废话不多说 直接上代码 复制功能 def keyPressEvent self event Ctrl C复制表格内容 if
  • 大语言模型浅探一

    目录 1 前言 2 GPT模型解码 3 InstructGPT 4 基于RWKV微调模型 4 1 RWKV简介 4 2 增量预训练 4 3 SFT微调 4 4 RM和PPO 5 测试 6 总结 1 前言 近来 人工智能异常火热 ChatGP
  • 如何把“自己的”网络中的conv2d替换为dcnv2

    1 dcnv2的实现测试了两种 一种是官方版dcnv2 git链接 https github com CharlesShang DCNv2 git 编译直接cd到DCNv2 然后 make sh即可 第二种是mmcv ops modulat
  • redis单机版部署

    目录 1 下载版本 2 上传解压 3 安装依赖包 4 进入redis目录 执行编译 5 创建相应目录 6 配置redis conf 7 启动redis 8 配置redis开机自启 1 下载版本 以下是我使用的版本 redis 4 0 1 链
  • 黑盒测试用例设计方法案例与练习题

    1 等价类 案例 登录功能 用户名和密码登录 以在线考试系统为例 年龄字段输入 2 网站注册页面年龄输入要求 某网站前台用户注册页面 其中有年龄字段的输入 要求输入1 150之间的正整数 输入条件 有效等价类 取值 编号 无效等价类 取值