什么是黑盒测试

  黑盒测试又称功能测试,是在不了解程序内部结构和内部特性的情况下进行的测试方法,黑盒测试只验证程序是否能按照需求规格说明书的规定正常使用,是否能适当的接收数据并给出适当的输出结果,如错误提示,或正确的界面等。

  常用黑盒测试方法有等价类划分法、边界值分析法、正交实验法、流程分析法(场景法)、因图法、判定表法、输入域覆盖法、输出域覆盖法、猜错法(异常分析法)。

一、 等价类划分法

1.1简介

  等价类划分法是指将程序的输入值的集合划分为若干等价类,等价类又分为有效等价类和无效等价类,从每一类中选取少量数据进行测试。

1.2构造测试用例方法

① 根据需求文档明确需求

② 分析需求中的每一个功能数

③ 确定每一个功能有多少个输入

④ 确定每个输入有多少规则

⑤ 针对输入规则划分输入的等价类

⑥ 根据等价类设计测试用例

1.3举例

1.在输入条件中确立一个范围时可分为一个有效等价类和两个无效等价类如成绩的输入,要求分数在[0,100]之间,划分等价类如下:

有效等价类:分数在[0,100]之间

无效等价类:分数小于0

分数大于100

2.确定输入取值为n个 值中的一个的时候,可划分为n个有效等价类和1个无效等价类,如学历的输入,要求只能输入专科、本科、硕士、博士四种,划分等价类如下:

有效等价类:输入专科、本科、硕士、博士其中的一个

无效等价类:输入除四种学历之外的数据

3.在输入条件是真假值时可确立为一个有效等价类(真)和一个无效等价类(假),如一个判断题的对错,划分等价类如下:

有效等价类:对

无效等价类:错

4.在输入数据确定了只有一种符合条件的情况下可确立为一个无效等价类和多个有效等价类如填空题1+1=?,划分等价类如下:

有效等价类:2

无效等价类:除2之外的数字

空格

汉字

字母

特殊字符

5.在输入数据确定了个数的时候,可分为一个有效等价类和两个无效等价类,如一天必须上2-10节课,等价类划分如下;

有效等价类:一天上2-10节课

无效等价类:一天上课的节数小于2

一天上课的节数大于10

6.在输入数据确定了格式的时候可分为一个有效等价类和多个无效等价类如设置密码时要求为字符、数字、特殊字符的组合,可划分等价类如下:

有效等价类:字符、数字、特殊字符的组合

无效等价类:纯字符

纯数字

三者两两组合

……

7.在输入值是一个路径的时候可分为一个有效等价类和多个无效等价类如输入图片的路径,可划分等价类如下:

有效等价类:存在的图片路径

无效等价类:除图片之外的其他文件的路径

超出深度要求的路径

格式错误的路径(区分/和\,区分大小写的时候)

不存在的图片路径

不存在的其他文件路径

路径中存在空格或其他特殊字符

……

二、 边界值分析法

2.1简介

  边界值分析法是针对输入数据的边界值的测试,一般情况下与等价类划分法结合使用,根据各个等价类的边界值设计测试用例。

 

2.2构造测试用例方法

  ① 根据每个输入的等价类设计边界值测试用例,包括等价类的上点和离点(上点:边界值上的点;离点距离边界最近的点)

 

2.3举例

1.成绩的输入分为三个等价类

有效等价类:输入分数在[0,100]

无效等价类:分数小于0

分数大于100

可根据这三个等价类的边界值设计测试用例如下:

等价类

边界值测试用例

预期结果

[0,100]

0

正确

[0,100]

100

正确

小于0

-1

错误

大于100

101

错误

2.除去对等价类的边界值进行分析,还需对输入数据的类型以及各种场景的边界值进行测试,如:

a:整型数据的边界值:-32767和32768

b:布尔值的边界值:真和假

c:循环的边界值:第一轮循环和最后一轮循环

d:报表的第一行和最后一行

e:浏览器的左上角和右下角

f:数组里的第一个元素和最后一个元素

三、 判定表法

3.1简介

  是根据判定条件列出所有可能的组合,当有n个条件时,就需要列出相应的2n个测试用例。

3.2构造测试用例方法

① 在需求中找到输入参数要满足的条件

② 在需求中找到满足条件后得到的结果

③ 将所有的n个输入条件进行全排列组合,形成2n组测试用例,

④ 查看是否可以合并测试用例

⑤ 设计测试用例时可以忽略没有数据可取的不存在的结果

3.3举例

  如下是对闰年判定的测试用例,其中闰年的判定条件为能被4整除但不能被100整除或者能被400整除。

 

条件

能被4整除

Y

Y

Y

Y

N

N

N

N

不能被100整除

Y

Y

N

N

Y

Y

N

N

能被400整除

Y

N

Y

N

Y

N

Y

N

 

结果

是闰年

不是闰年

不存在

四、 正交实验法

4.1简介

  正交实验法是利用正交表来对程序进行测试,用较少的测试用例进行较全面的测试。根据正交表的正交性,从全面试验中挑选出适量的、有代表性的点进行试验。

  正交表是一种特制的表格,一般用Ln(mk)来表示,其中L表示正交表,n表示测试用例数,k表示最多可安排影响指标因素的个数或正交表的列数,m表示每个因素的水平数即状态,n=k*(m-1)-1,即最少的测试用例数。

4.2构造测试用例方法

① 从需求中找出所有的因素(输入参数)

② 从需求中找出所有的水平(因素状态)并编号,画出因素状态表

③ 通过因素状态表绘制出正交表

④ 根据正交表,设计测试用例,一行是一条用例

4.3举例

1.因素数和水平数刚好符合正交表

  如测试一个登陆,需要输入用户名、密码和验证码,则用户名、密码和验证码是因素,每个因素都有填和不填两种水平(状态),则n= k*(m-1)-1=3*(2-1)+1=4组测试用例,根据正交实验法设计正交表如下

状态\因素

用户名

密码

验证码

1

不填

2

不填

3

不填

4

不填

不填

不填

2.因素的水平数不相符

如一个功能需要一个用户提交性别、学历、政治面貌3个数据,每个数据要求如下:

性别:取值为男、女2种

学历:取值为大专、本科、硕士、博士4种

政治面貌:取值为群众、共青团员、中共党员3种

因素状态表

状态\因素

性别

学历

政治面貌

1

大专

群众

2

本科

共青团员

3

硕士

中共党员

4

博士

正交表如下

测试用例

性别

学历

政治面貌

1

大专

群众

2

本科

共青团员

3

硕士

中共党员

4

博士

共青团员

5

硕士

群众

6

博士

中共党员

7

本科

中共党员

8

大专

共青团员

9

本科

群众

10

大专

中共党员

11

博士

群众

12

硕士

共青团员

 

五、 流程图分析法

5.1简介

  当一个事件触发时,就形成了一个场景,而同一事件的不同触发顺序和处理结果就形成了事件流。在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确的流程,即基本流,而凡是出现故障或缺陷的过程,就称为备选流,备选流是可以从基本流来的,或是由备选流引出的。

5.2构造测试用例方法

① 根据业务流程绘制出流程图,流程图包含基本流和备选流

② 根据基本流和备选流生成不同的场景

③ 对每一个场景生成相应的测试用例

④ 对生成的测试用例重新评审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

5.3举例

  1.例如一个需要输入用户名和密码的登陆并付款购物功能,其中如果密码错误3次会锁定用户的事件流如下:

  通过从确定执行用例场景所需的数据元素入手构建矩阵。对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。

测试用例ID

场景

用户名

密码

有钱购物

预期结果

1

场景1:购物成功

V

V

V

成功购物

2

场景2:用户名错误

I

n/a

n/a

提示用户名错误

3

场景3:密码错误

V

I

n/a

提示密码错误

4

场景4:密码错3次锁定

V

I

n/a

提示密码错误3次锁定用户

5

场景5:没钱付款

V

V

I

提示余额不足

六、 因果图法

6.1简介

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,适用于检查程序输入的各种组合条件。

因果图法比较合适输入条件比较多的情况,测试所有的输入条件的排列组合,所谓的原因就是输入,所谓的结果就是输出。

因果图的“因”—输入条件

因果图的“果”—输出结果

因果图法要注意考虑:

1.所有输入/输出条件的相互制约关系以及组合关系

2.输入条件的依赖关系,也就是什么样的输入组合会产生怎么样的输出结果,即“因果关系”

因果图中的基本符号:

6.2构造测试用例方法

① 分析需求中描述的原因和结果,给每个原因和结果赋予一个编号。

② 根据这些关系画出因果图

③ 因果图上用一些记号表明约束条件或限制条件

④ 把因果图转换成判定表

⑤ 将判定表的每一列作为依据设计测试用例

 

6.3举例

1.一个交通卡充值系统的需求:

系统只接收100元,只能选择充值100

若输入100元并选择充值100元,提示充值成功并退卡

若输入纸币后一定时间不选择充值按钮,退回输入的纸币并提示错误

不输入纸币直接选择充值按钮,提示错误

输入条件

① 输入100元纸币

② 点击充值100元

输出:

① 提示充值成功

② 完成充值,退卡

③ 提示错误

因果图如下

  输入                                                                                             输出:

根据因果图判定表如下

 

 

1

2

3

输入

输入100元纸币

1

1

选择充值按钮

1

1

输出

提示充值成功

1

充值成功并退卡

1

提示错误

1

1

七、 输入域覆盖法

7.1简介

  输入域覆盖是指根据SRS(需求分析文档)结合等价类划分法和边界值分析法的一种测试方法,主要是对输入的特殊值和类型边界补充测试用例。

八、 输出域覆盖法

8.1简介

  输出域覆盖是指在了解程序功能的所有输出后,查看测试用例中所有的输入产生的输出结果是否能够涵盖所有输出结果,如果不完善,则根据输出结果推导出相应的输入数据,将其补充到测试用例中。

九、 猜错法

9.1简介

  猜错法是基于经验和直觉,以及参考以往测试结果中出现较频繁及较隐蔽的错误,从而推测出程序所有可能出现的错误或异常,选择这些情况下的用例进行测试。

转载于:https://www.cnblogs.com/l199616j/p/11403666.html

黑盒测试方法用例设计详解相关推荐

  1. HDL输入设计详解攻略

    Altera公司的Quartus为设计者提供了多种设计输入方法,包括原理图输入.状态图输入.HDL语言描述.网络表文件等,所不同的是,Quartus可以在一个工程中同时使用VHDL.Verilog语言 ...

  2. ueditor上传组件显示乱码_最全面的移动端 UI组件设计详解:中篇

    上一期给大家讲解了<最全面的移动端UI组件设计详解:上篇>,主要分享了:布局组件和导航组件2个部分:这次给大家带来:基础组件.表单组件和反馈组件详解,希望你在设计APP.小程序.H5页面中 ...

  3. java 重启线程_java 可重启线程及线程池类的设计(详解)

    了解JAVA多线程编程的人都知道,要产生一个线程有两种方法,一是类直接继承Thread类并实现其run()方法:二是类实现Runnable接口并实现其run()方法,然后新建一个以该类为构造方法参数的 ...

  4. 分布式 | Dubbo 架构设计详解

    转载自   分布式 | Dubbo 架构设计详解 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务 ...

  5. 【转】Dubbo架构设计详解

    本文转自:Dubbo架构设计详解,原作者是:时延军 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服 ...

  6. 以美颜sdk为例,详解sdk接入流程

    Sdk,是可用于开发面向特定平台的软件应用程序的工具包.举个例子,如果你想组装一个模型车或飞机.在构建这个模型时,需要一整套物品去组装.sdk相当于组装它们所需的工具,包括装配说明等.在这信息化时代, ...

  7. Java开源生鲜电商平台-Java分布式以及负载均衡架构与设计详解(源码可下载)

    Java开源生鲜电商平台-Java分布式以及负载均衡架构与设计详解(源码可下载) 说明:主要是针对一些中大型的项目需要进行分布式以及负载均衡的架构提一些思路与建议. 面对大量用户访问.高并发请求,海量 ...

  8. 架构设计-支付宝、京东、美团、去哪儿的支付系统架构整体设计详解!!!

    架构设计-支付宝.京东.美团.去哪儿的支付系统架构整体设计详解!!! 支付产品模块是按照支付场景来为业务方提供支付服务.这个模块一般位于支付网关之后,支付渠道之前. 它根据支付能力将不同的支付渠道封装 ...

  9. 单片机控制两个步进电机画圆_基于单片机的步进电机转速控制设计详解(附程序)...

    步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件.在非超载的情况下,电机的转速.停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角.这 ...

  10. sketch如何做设计稿交互_《动静之美——Sketch移动UI与交互动效设计详解》历程...

    随着移动互联网的迅速崛起,对移动产品界面的设计质量和迭代速度都有了更高的要求,市面上开始涌现出一批专门针对移动UI设计的软件,Sketch便是其中的佼佼者.Sketch因其强大的功能以及极低的入门门槛 ...

最新文章

  1. WPS漏洞利用工具Bully常见命令集合
  2. codeforces271D
  3. C#反射在ADO中的巧用
  4. Codeforces Round #691 (Div. 2)
  5. 【转】职业生涯30年的规划(经典)
  6. node 创建静态服务器并自动打开浏览器
  7. 硬盘坏道检测工具对比(DiskGenius/HdTunePro/MHDD等)
  8. kafka-如何保证消息的可靠性与一致性
  9. 解决文件不显示后缀名的问题
  10. 电脑主板各部件详细图解
  11. namecheap域名解析
  12. 全志平台BSP裁剪(3)附件二 Kernel hacking配置说明
  13. win10计算机系统优化设置,Win10不如win7?超实用win10系统优化设置,让电脑运行更流畅!...
  14. qlv转mp4播放不了,解决方法
  15. POJ 1359 Spacecraft Malfunction G++
  16. 解决windows防火墙拦截FTP连接
  17. 下载:简体中文版Live Messenger 8.1 Beta
  18. 华为eNSP模拟器软件介绍和基础命令详解
  19. RBP系统管理之用户审批
  20. Joint Discriminative and Generative Learning for Person Re-identification 论文翻译

热门文章

  1. 动态链接库(DLL)开发基础
  2. windows自带录屏_电脑版免费的录屏软件有哪些?
  3. Python笔记1——Python概述
  4. 《Java设计模式》刘伟 超清晰版本 下载链接
  5. mac的python换字体_Mac OSX Yosemite系统字体修改
  6. 虚拟化arm服务器,服务器虚拟化领域的ARM处理器与RISC技术
  7. android 反编译及二次打包详细步骤
  8. Excel·VBA自定义函数扩展VLOOKUP
  9. 用计算机计算四年级思维导图,四年级下册第一单元思维导图数学
  10. postsql时间计算