目录
黑盒测试用例设计02
上次介绍黑盒测试的第一种方法 等价类测试法(非常重要的一种测试方法!!!),这次介绍剩下剩下几种——边界类测试、决策表测试、因果图。
一、边界值分析法测试
1.概念介绍
对输入或输出的边界值进行测试。通常通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
2.使用步骤
(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。
(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。
真正在采用边界值分析测试的基本思想是:故障往往出现在输入变量的边界值附近因此,边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nor)、略小于最大值(max-)和最大值(max)来设计测试用例。
而我们在设计测试用例时,往往会涉及到几个概念:上点、离点、和内点。
以数轴为例
上点:就是指得边界上得点,开区间的话,上点就是在域外,闭区间得话,上点就是在域内。
离点:指得就是离上点最近得点,如果是开区间,那么离点就在域内,如果是闭区间,那么离点就在域外。
内点:域内得任意点都是内点。
总结为,上点就是区间的端点值,而内点就是上点之间任意一点。对于离点,要分具体情况,如果开区间的离点,就是开区间中上点内侧紧邻的点;如果是闭区间的离点,就是闭区间中上点外侧紧邻的点。
3.边界的分类
在实际情况中,往往边界的值并不是一个整数,所以要对他进行一个分类,从而更好的进行设计用例。
-
边界条件:可以在产品说明书中有定义或者在使用软件过程中确定;
-
内部边界条件:在软件内部,也称为内部边界条件;
-
其他边界条件:如输入信息为空、非法、错误、不正确和垃圾数据。
1.边界条件的常见数据类型
数字、字符、位置、质量、大小、速度、方位、尺寸、 空间等,
以上类型的边界值应该在:第一个/最后一个、开始/完成、最大/最小、首位/末位、上/下、最快/最慢、最高最低、最短/最长、空/满等情况下
2.内部边界条件
在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。
-
数值的边界值检验:计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。
项 | 范围或值 |
---|---|
位(bit) | 0或1 |
字节(byte) | 0~255 |
字(word) | 0~65535(单字)或0~4294967295(双字) |
千(K) | 1024 |
兆(m) | 1048576 |
吉(G) | 1073741824 |
-
符的边界值检验:在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。如下列出了一些常用字符对应的ASCII码值。
字符 | ASCII码值 |
---|---|
为空 | 0 |
空格 | 32 |
/ | 47 |
0 | 48 |
-
其它边界值检验:在不同的行业应用领域,依据硬件和软件的标准不同而具有各自特定的边界值。
4.具体展示
注册商城账号:
程序的需求为:
①姓名:1-20个字符
②年龄:1-100之间的整数
设计:姓名位数范围为[1,20],上点为1和20,离点为0和21,内点为区域内任意点,年龄范围为[1,100],上点为1和100,离点为0和101,内点为区域内任意点
输入 | 有效等价类边界值 | 无效等价类边界值 |
---|---|---|
姓名(位数) | 1,2,10,19,20 | 0,21 |
年龄 | 1,2,50,99,100 | 0,101 |
二、决策表测试
1.概念介绍
决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。
2.组成
决策表通常由四个部分组成,如下图所示。
条件桩:列出了问题的所有条件,通常认为列出的条件的先后次序无关紧要。
动作桩:列出了问题规定的可能采取的操作,这些操作的排列顺序没有约束。
条件项:针对条件桩给出的条件列出所有可能的取值。
动作项:与条件项紧密相关,列出在条件项的各组取值情况下应该采取的动作。
3.决策表的构造及化简
构造:
(1)列出所有的条件桩和动作桩。
(2)确定动作规则(条件项)的个数。
(3)填入条件项。
(4)填入动作项,得到初始决策表。
(5)简化决策表,合并相似规则。
化简(tips):
确定规则的个数:对于n个条件的决策表,相应有2^n个规则(每个条件分别取真、假值)。
当n较大时,决策表很繁琐。实际使用决策表时,常常先将它简化。决策表的简化是以合并相似规则为目标。即若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。
4.具体展示
题干:维修机器问题的决策表测试维修机器问题的描述:“…对于功率大于50马力的机器并且维修记录不全,或已运行10年以上的机器,应给予优先的维修处理…
三、因果图
1.概念介绍
因果图法是基于这样的一种思想:一些程序的功能可以用判定表(或称决策表)的形式来表示并根据输入条件的组合情况规定相应的操作。因果图法的定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
-
该方法主要适用于各种输入条件之间存在某种相互制约关系或输出结果依赖于各种输入条件的组合时的情况
-
注意:
-
1)所有的输入输出条件的相互制约关系以及组合关系
-
2)输出结果对输入条件的依赖关系。也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”
-
2.设计测试用例的步骤
(1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变)画出因果图。
(2)将得到的因果图转换为判定表。(!!!!)
(3)为判定表中每一列所表示的情况设计一个测试用例。
3.因果图符号与关系
1.条件和结果之间的关系
-
左侧节点表示输入状态即原因,右侧节点表示输出状态即结果
通常来说,可以这么概括:(学过离散的其实都知道~~~~~)
恒等。若原因出现,则结果出现;若原因不出现,则结果不出现。
非。若原因出现,则结果不出现;若原因不出现,则结果出现。
或。若几个原因中有一个出现,则结果出现;若几个原因均不出现,则结果不出现。
与。若几个原因都出现,结果才出现;若几个原因中有一个不出现,则结果不出现。
2.条件与条件之间的关系
从原因方面考虑主要有4种约束条件:
E(互斥、排他)。a、b两个原因不会同时出现,最多只有一个出现。
I(包含、或)。a、b、c三个原因至少有一个出现。
O(唯一)。a、b两个原因必须有一个出现,且仅有一个出现。
R(需求)。a出现时b必定出现。
从结果方面考虑主要有1种约束条件:
-
M(屏蔽)。a出现时,b必定不出现;a不出现时,b则不确定。
4.因果图分析步骤
-
找出所有原因,原因即输入条件或输入条件的等价类;找出所有的结果,结果即输出结果;
-
明确所有输入条件之间的关系;明确所有输出结果之间的关系;
-
找出什么样的输入条件组合会出现哪种输出结果,画出因果图;
-
把因果图转换成判定表(决策表);
-
为判定表(决策表)中的每一列表示的情况设计测试用例。
5.具体展示
-
地铁购票系统:要求如下图,请用因果图、判定表并写出相应的测试用例。
要求:
①请投币中50元和100元为互斥关系,即只能选一个
②充值金额中50元和100元为互斥条件,即只能选一个
③结果:购票成功并取票、找零、错误提示
(1) 分析地铁购票系统规格说明中的原因和结果
原因 | 结果 |
---|---|
c1:投币50 | e1:充值成功 |
c2:投币100 | e2:找零 |
c3:充值50 | e3:错误提示 |
c4:充值100 |
(2) 画出因果图
(3) 将因果图转换为决策表
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
---|---|---|---|---|---|---|---|---|---|
条件 | |||||||||
c1 | 1 | 1 | 1 | ||||||
c2 | 1 | 1 | 1 | ||||||
c3 | 1 | 1 | 1 | ||||||
c4 | 1 | 1 | 1 | ||||||
动作 | |||||||||
e1 | 1 | 1 | 1 | ||||||
e2 | 1 | 1 | 1 | ||||||
e3 | 1 | 1 | 1 | 1 | 1 |
(4) 转化为测试用例
用例编号 | 测试点 | 测试步骤 | 预期结果 |
---|---|---|---|
1 | 投50,充50 | 1.点击投币50元 2.点击充值50元 | 充值成功 |
2 | 投50,充100 | 1.点击投币50元 2.点击充值100元 | 错误提示 |
3 | 投100,充50 | 1.点击投币100元 2.点击充值50元 | 充值成功,并找零 |
4 | 投100,充100 | 1.点击投币100元 2.点击充值100元 | 充值成功 |
5 | 投50 | 1.点击投币50元 2.不点击充值 | 提示错误,找零50元 |
6 | 投100 | 1.点击投币100元 2.不点击充值 | 提示错误,找零100元 |
7 | 充50 | 1.不点击投币 2.点击50充值 | 提示错误 |
8 | 充100 | 1.不点击投币 2.点击100充值 | 提示错误 |