黑盒测试
一、黑盒测试的概述
黑盒测试(Black-box Testing)被称为功能测试
或数据驱动测试
。
黑盒测试说白了就是一个 黑盒子
,不考虑
程序内部逻辑结构
和内部特性
,只关注软件的功能需求。
二、黑盒测试需要发现的几个问题
- 功能是否正确,是否有遗漏。
- 界面是否错误。
- 数据结构或外部数据库访问错误。
- 性能错误。
- 初始化和终止错误。
三、常见的黑盒测试方法
- 功能性测试
- 性能测试
- 安全性测试
- 兼容性测试
- 稳定性测试
- 可靠性测试
- 安装卸载测试
四、黑盒测试用例设计的方法
1、等价类划分法
将程序所有可能的输入域(有效的和无效的)
划分成若干个等价类
。然后从每个部分中选取少数具有代表性
的数据进行测试,可以避免穷举产生的大量用例。
等价类是指某个输入域
的子集合
。
等价类划分一般划分为两种情况:有效等价类
和无效等价类
。
1.1 有效等价类
对需求规格说明而言,合理的、有效的
输入数据构成的集合。
1.2 无效等价类
对需求规格说明而言,不合理的、无效的
输入数据构成的集合。
1.3 等价类划分的要求
划分的子集是互不相交
的,符合完备测试
,避免出现冗余
。
1.4 等价类划分的方法
- 按区间划分
- 按数值划分
- 按数值集合划分
- 按限制条件或规则划分
- 按处理方式划分
1.5 等价类划分法常用的的划分原则
- 如果规定输入的
取值范围或个数
时,则划分一个有效等价类
和两个无效等价类
。例如:登陆密码的长度限制6~18个字符,6~18个字符是有效等价类,小于6个字符和大于18个字符则是两个无效等价类。 - 如果输入数据的
一组值(枚举值)
,并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类
和一个无效等价类
。 - 规定输入数据必须遵守的规则的情况下,可确定
一个有效等价类
和若干个无效等价类
。如密码第一位要大写。 - 在输入条件规定了
输入值的集合
或规定了“必须如何”
的条件下,可以确定一个有效等价类
和一个无效等价类
。 - 在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步地划分为更小的等价类。
- 不是所有的等价类都有无效等价类。如性别的选择只有男或女两种。
1.6 等价类划分法的实例
三角形问题
在三角形问题中,输入条件为:整数、三个数、取值在1~100之间
。
有四种可能的输出结果:等边三角形、等腰三角形、普通三角形和非三角形
。
测试用例的设计如下:
测试用例 | 边a | 边b | 边c | 预期的输出结果 |
---|---|---|---|---|
Test01 | 7 | 7 | 7 | 等边三角形 |
Test02 | 7 | 7 | 6 | 等腰三角形 |
Test03 | 3 | 4 | 5 | 普通三角形 |
Test04 | 4 | 1 | 3 | 非三角形 |
2、边界值分析法
边界值分析法(Boundary Value Analysis, BVA)是作为对等价类划分法的补充,专注于每个等价类的边界值
,边界值分析法是随机选取一个测试点
。
使用边界值分析方法设计测试用例,首先应确定边界情况
。
2.1 边界值分析方法的基本思路
测试数据主要选取正好等于、刚刚大于或刚刚小于边界的值
,而不是选取等价类中的典型值
或任意值
。
2.2 基于边界值分析方法选择测试用例的原则
- 如果输入条件规定了
值的范围
,则应该取刚达到这个范围的边界值
,以及刚刚超过这个范围边界的值
作为测试输入数据。 - 如果输入条件规定了
值的个数
,则用最大个数、最小个数、比最大个数多1、比最小个数少1
的数作为测试数据。
2.3 常见的边界值
软件测试中边界检测包含以下类型:数字、字符、位置、质量、速度、方位、尺寸、空间
等。相对应的边界值检测为最大/最小、首位/末位、上/下、最重/最轻、最快/最慢、最高/最低、最短/最长、满/空
等。
常见的边界值实例通常表现在界面屏幕、数组、报表和循环
等方面。
3、判定表分析法
是分析和表达多种输入条件下系统执行不同动作的技术。
- 条件桩:列出被测对象的所有输入,并列出输入条件与次序无关。
- 动作桩:列出输入条件系统可能采取的操作,这些操作的排序顺序没有约束。
- 条件项:列出输入条件的其他取值,在所有可能情况下的真假值。
- 动作项:列出在条件项的各种取值情况下应采取的动作。
- 规则:贯穿
条件项
和动作项
的一列
就是一条规则。对于n个条件,每个条件有两个取值(0和1),故有2n条规则。
4、因果图分析法
因果图(Cause/Effect Graphing,CEG)就是考虑使用一种适合于描述多种条件的组合,产生多个相应动作的测试方法。
4.1 因果关系图
因果图使用简单的逻辑符号,以直线连接左右结点。左结点
表示输入状态(或称原因)
,右结点
表示输出状态(或称结果)
。
规格说明中的4种因果关系图如下:
ci与ei取值0或1。0
表示某状态不出现
,1
表示某状态出现
。
4.2 约束
约束是指输入与输入之间存在的某些依赖关系。约束符号有异、或、唯一、要求、强制
五种表示方法,其中前面四种是针对输入条件的约束
,强制
只针对输出条件的约束
。
4.3 因果图分析法的设计用例的步骤
- 找出输入条件(原因)和输出条件(结果)。
- 画出因果关系图,如果一步不能达到结果,可以借助中间节点。
- 将因果关系图转换为判定表。
- 简化判定表,合并相似的规则。
- 根据每条规则生成对应的测试用例。
5、正交试验法
正交试验设计法(Orthogonal Experimental Design)是研究与处理多因素实验
的一种科学方法。
正交试验中常用的术语有指标、因子、因子状态
三个。
- 指标:通常把判断试验结果优劣的标准叫做试验的指标。
- 因子:把所有影响试验指标的条件称为因子。
- 因子的状态:把影响试验因子称为因子的状态。
6、流程分析法
流程分析法也称场景法
,主要是针对测试场景类型。
从白盒测试设计方法中的路径覆盖分析法演变过来的。
7、功能图法
功能图法是用功能图形象地表示程序的功能说明,由状态迁移图
和布尔函数
组成,同时需要依靠判定表或因果图
表示逻辑功能
,并机械地生成功能图的测试用例.
功能图法是黑盒、白盒混合用例的设计方法。
功能图模型由状态迁移图
和逻辑功能模型
两部分构成。
- 状态迁移图:用于表示输入数据序列以及相应的输出数据;由输入数据和当前状态决定输出数据和后续状态。
- 逻辑功能模型:用于表示在状态中输入条件和输出条件的
对应关系
,由输入数据决定输出数据,只适用于描述静态说明
。
8、异常分析法
针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,依此设计测试用例。
8.1 主要针对的两个方面
- 针对系统的容错能力、故障恢复能力进行测试。
- 针对系统资源的异常进行测试。
9、错误推测法
错误推测法是基于以往的经验和直觉,参照以往的软件系统出现的错误,推测程序中所有可能存在的各种缺陷和错误,然后有针对性地设计测试用例。
9.1 基本思路
列举出程序中所有可能的错误和容易发生错误的特殊情况,根据可能出现的错误情况选择测试用例。
欢迎大家来GitHub上Star和纠正一下哦!
地址来源:https://github.com/SolerHo/Software-Testing
来源:oschina
链接:https://my.oschina.net/u/2404777/blog/3220827