黑盒测试用例设计方法
一、等价类
等价类划分法原理
1、把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例
2、每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
3、反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误
等价类划分的原则:
1、例如:一个文本框规定,输入字符个数为6-18位
一个有效等价类:范围内个数
两个无效:小于6;大于18个
2、例如:请输入11位手机号
11位就是有效
不是11位就是无效
3、布尔量:表示“真”或者“假”
4、例如:登录中要输入用户名和密码
二、边界值分析法
边界值本身只是一个特定的数据,例如:文本框需要输入6-18位字符。
边界值有:
1)6个字符
2)18个字符
次边界:边界附近的值,按照系统规定的单位或者计算方法,一个数据的差异。
思考:
1)6≤x≤12,请问测试中x的边界值要选取哪几个进行测试?
2)6<x<12,请问测试中x的边界值要选取哪几个进行测试?
此时6和12是无效数字了,在边界外
3)文本框输入字符的个数要求是不大于150字。测试的时候如何选择边界值
三角形测试用例设计
等价类设计
测试用例
三、因果图法
因果图法是一种适合于描述对于多种输入条件组合的测试方法
根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法
它适合于检查程序输入条件涉及的各种组合情况。
1、原因和结果的关系
(1)恒等,原因A成立,结果B一定成立。
(2)非。原因A成立时,结果B一定不成立。
(3)或。原因A,B,C三者只要有一个成立,结果D就一定成立。
(4)与。原因A,B,C都成立,结果D才会出现。
2、原因之间的约束 。 假如原因成立用1表示;不成立用0表示。
(1)互斥(edusive)。也就是A+B+C≤1
(2) 包含(include)。3≥A+B+C≥1
(3)唯一(only)。A+B+C==1
(4)要求(request)。原因A成立,要求B一定先成立。
3、结果之间的约束。 假如结果成立用1表示;不成立用0表示。
(1)屏蔽。结果之间会出现A结果出现,B结果一定不出现。
因果图法实例
案例:有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下。
若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。
若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币
分析原因和结果:
画出原因结果图:
这里注意:因果图使用中的局限性:当原因和结果很多的时候,他们之间的关系连线就会很多,导致因果图的可读性变差,因此用作局部的小功能分析。
进行测试用例设计:
四、正交实验法
-
日本人,统计学家提出
-
使用的工具:正交表
-
统计和分析实验数据,从大量实验中找到合适的实验数据组合。
-
大量的实验中,挑选出来一部分具有代表性的点,进行试验,分析数据。
-
涉及到的数学原理:《线性代数》、《概率论》、《数理统计》
-
核心概念:
1)影响实验结果的–实验因素(因子)、因素
2)每一个因素的不同取值(状况)–水平
例如,字的显示效果–字体、字号、颜色的称为因素
字体选择时,可以选择宋体、楷体、微软雅黑------称为水平。
字号选择时,-------称为水平
3)正交表特点:每列中,同一个数字(水平),出现的次数相等;任意两列组成的数字对(水平对)出现的次数也是相同的。
实施步骤:
(1)分析所有对结果有影响的因素。从多个角度和方式进行分析(不要放过文本框、按钮等需求中提及或者没有提及)
(2)分析每个因素的水平数量。充分利用等价类、边界值(需求中说明和未说明的都要分析)
(3)选择正交表。只有特定的因素数和水平数的组合才有对应的正交表。所以在现实中用到的时候,找最贴近的正交表(正交表的因素数和水平数一般要大于实际的因素数和水平数
- 正交表的数字关系(N代表实验次数,m代表水平数,k因素的数量,这三个数字之间没有任何数学关系)
- 仅适合用于每一个因素的水平数都相同的正交集。
有一个工业产品,生产工艺受到操作方式、温度、洗涤时间三个因素,并且每个因素都有三种可能的取值,设计实验组合。
因素 | 操作方式 | 温度(℃) | 洗涤时间(min) |
---|---|---|---|
A | 60 | 15 | |
B | 80 | 20 | |
C | 100 | 25 |
完全排列组合:3✖3✖3=27
所在列 | 1 | 2 | 3 | |
---|---|---|---|---|
因素 | 操作方式 | 温度 | 洗涤时间 | 实验结果 |
实验1 | A | 60 | 15 | |
实验2 | A | 80 | 20 | |
实验3 | A | 100 | 25 | |
实验4 | B | 60 | 15 | |
实验5 | B | 80 | 20 | |
实验6 | B | 100 | 25 | |
实验7 | C | 60 | 15 | |
实验8 | C | 80 | 20 | |
实验9 | C | 100 | 25 |
每一列中,同一个数字出现的次数相等(3次)
任意两列中同一个数字对出现的次数相等(1次)
用了等价类的思想!!!
五、场景法
重点:
基本流(软件功能正确实现的流程)
备选流(基本功能流程之外的过程)
注意:
1、场景中必须有基本流
2、场景中必须有内容从用例的开始,到用例的结束。
案例:ATM机的取款流程
基本流:
基本流:插卡-输入-密码-出钞-取卡
包含了备选流的过程:
备选流:
1、卡片不是银行卡
2、卡片不是某行卡
3、密码输错一次
4、密码输错两次,第三次输入正确
5、密码输入错误三次,冻结账号或者吞卡
6、选择存款服务
7、选择查询服务
8、选择转账服务
9、选择修改密码服务
10、选择取款金额
11、选择其他金额
12、账户金额
13、ATM机没钱了
14、账户取款金额达到取款机当日的取款上限
…