软件测试的基本理论-黑盒测试-1

一.黑盒测试方法

1,等价类划分法

主张:最常用的黑盒测试方法,主张以尽可能少的用例测试用例覆盖尽可能多的数据;

等价类:将这些输入数据按照需求进行分类,划分成若干个子集,这些子集就是等价类

正确划分等价类能极大程度较少测试用例的数量;测试会更准确有效;

a:等价类划分概述

等价类划分

1)有效等价类:有效值的集合,符合程序要求、合理且有意义的输入数据

2)无效等价类:无效值的集合

b:设计测试用例

确定等价类后,需要建立等价类表列出所有的划分出等价类,用以设计测试用例;
基于等价类划分测试用例的设计步骤:
1)确定测试对象,保证非测试对象的正确性
2)为每个等价类规定一个唯一的编号
3)设计有效等价类的测试用例,尽可能多的覆盖尚未被覆盖的有效等价类,直到测试用例覆盖所有的有效等价类
4)设计无效等价类,使其覆盖所有的无效等价类

等价类划分demo

某余额提现等价类划分
分析:
快速提款:限额10000元,普通到账:最大余额

1)选择快速提现
有效等价类:0<提取金额《=余额
第n次提取:0<提取金额+前几次《=余额
无效等价类:余额 <= 0或 大于余额
2)普通提现
有效等价类:0<提取金额《=余额
无效等价类:余额 <= 0或 大于余额

余额提现功能等价类表

功能有效等价类编号无效等价类编号
选择快速提现0<提取金额《=余额1余额 <= 02
>余额3
选择快速提现0<提取金额+前几次《=余额4余额 <= 05
大于余额6
选择普通提现0<提取金额《=余额7余额 <= 08
大于余额9

根据等价类表设计测试用例-余额5000元
test case

用例序号功能金额覆盖有效等价类编号
001快速到账1次1000元1
002快速到账3次1000元4
003快速到账-1000元2
004快速到账1次6000元3
005快速到账3次-4000元5
006快速到账3次4000元6
007选择普通提现4000元7
008选择普通提现-4000元8
009选择普通提现6000元9

2.边界值分析法

由于程序开发多处于边界处理容易出错,所以边界值分析法能够有效找出缺陷

边界值分析法概述

边界值分析法是对软件的输入输出进行测试的一种方法,它通常作为等价类划分的一种补充测试。

边界值分析法demo

某余额提现边界值分析
分析:
1)快速提取:
第一次提取:提取金额边界值为-1、0、1、9999、10000、10001、5000
第N次取:已经提取2000,边界值为-1、0、1、7999、8000、8001、5000
2)普通提取
第一次提取:提取边界值-1、0、1、49999、50000、50001、20000

余额宝提现边界值分析测试用例

测试用例功能金额被测边界预期输出
001快速到账-10无法提现
002快速到账00无法提现
003快速到账10提现1元
004快速到账999910000提现9999元
005快速到账1000010000提现10000元
006快速到账1000110000无法提现
007快速到账5000提现5000元
008快速到账N-10无法提现
009快速到账N00无法提现
010快速到账N10提现1元
011快速到账N79998000提现7999元
012快速到账N80008000提现8000元
013快速到账N80018000无法提现
014快速到账5000提现5000元
015普通到账-10无法提现
016普通到账00无法提现
017普通到账10提现1元
018普通到账4999950000提现49999元
019普通到账5000050000提现50000元
020普通到账5000150000无法提现
021普通到账20000提现20000元

3.因果图方法

等价类与边界值主要侧重于输入条件,却没有考虑这些之间的关系,如,组合、约束
因果图描述多个输入之间制约关系,因果图(Cuase-effect Graph)是一种描述输入条件的组合及每种组合对应的输出的图形化工具。在因果图的基础上可以设计测试用例。

因果图设计方法

在这里插入图片描述
a)恒等。若原因出现,则结果出现;若原因不出现,则结果不出现。

(b)非。若原因出现,则结果不出现;若原因不出现,则结果出现。

©或。若几个原因中有一个出现,则结果出现;若几个原因均不出现,则结果不出现。

(d)与。若几个原因都出现,结果才出现;若几个原因中有一个不出现,则结果不出现。

为了表示因果图中的约束条件,可用一些符号在因果图中加以标识。
在这里插入图片描述
从原因方面考虑主要有4种约束条件:

(a)E(互斥、排他)。a、b两个原因不会同时出现,最多只有一个出现。

(b)I(包含、或)。a、b、c三个原因至少有一个出现。

©O(唯一)。a、b两个原因必须有一个出现,且仅有一个出现。

(d)R(需求)。a出现时b必定出现。

从结果方面考虑主要有1种约束条件:

(a)M(屏蔽)。a出现时,b必定不出现;a不出现时,b则不确定。

利用因果图设计测试用例应遵循的步骤:

1)分析程序的规格说明书中哪些事原因,哪些是结果。所谓原因,是指输入条件或输入条件的等价类,而结果是指输出条件。

给每一个原因和结果赋一个标识符。

2)分析程序规格说明书中的语义,确定原因与原因,原因与结果之间的关系,画出因果图。

3)由于语法环境的限制,一些原因与原因之间,原因与结果之间的组合不能出现。对于这些特殊情况,在因果图中用一些记号标明约束或限制条件。

4)将因果图转化为判定表。

5)根据判定表的每一列设计测试用例。

因果图设计demo

4.决策表方法(判定表)

实际测试中如果输入条件过多,在加上输入输出之间作用关系,因果图比较负责,往往使用决策表代替因果图法;利用决策表可以设计出完整的测试用例集合;

决策表概述

我们通过简单例子来分析下决策表
分析:
1)图书阅读提示:是否疲惫、是否对内容感兴趣、对书中内容是否感到迷惑
2)阅读指南建议:回到第一章阅读、继续读下去、跳到下一章、停止阅读并休息

类别内容12345678
问题是否疲惫YYYYNNNN
问题是否对内容感兴趣YYNNNYYN
问题对书中内容是否感到迷惑YNNYYYNN
建议回到第一章阅读v
建议继续读下去v
建议跳到下一章vv
建议停止阅读并休息vvvv

决策表通常有4部分组成:
1)条件桩:列出问题的所有条件,除了某些问题对条件的先后次序有要求之外,通常决策表中所列条件先后次序都无关紧要。
2)条件项:条件桩所有可能取值
3)动作桩:动作桩就是问题可能采取的操作,这些操作一般没有先后次序之分,
4)动作项:指出条件项的各组取值情况下应采取值情况。

上述:疲惫内容是动作桩,y等是条件项,动作桩:跳到下一章等,动作项:具体操作,v
上述1、2两个,分别是YYY\YYN但结果都是一致的,说明对书中内容是否感兴趣对结果判断不影响,因此称为此项为无关条件项;

简化后的图书指南决策表-5个用例

类别内容12345678
问题年薪、月薪YYYYNNNN
问题普通错误YYNNNYYN
问题严重错误YNNYYYNN
建议回到第一章阅读v
建议继续读下去v
建议跳到下一章vv
建议停止阅读并休息vvvv

决策表demo

工资发放决策表
酬薪制度如下:年薪与月薪
员工定位:错误定位与严重错误
年薪制员工,普通错误2%,严重错误扣款4%,
月薪制员工,普通错误4%,严重错误扣款8%,
分析:
条件桩:月薪-年薪、普通错误-严重错误
条件项:M-Y、N-S
动作桩:口框比例
动作项:2%、4%、6%、8%、12%

类别内容12345678
reason年薪、月薪YYYYMMMM
reason普通错误NYNYNYNY
reason严重错误NNYYNNYY
result未扣款VV
result2%V
result4%VV
result6%V
result4%
result8%VV

无需要合并的地方,即整理成用例为

员工工资测试用例

测试用例薪资制度薪资错误程度扣款
001年薪20000
002年薪25000普通
003年薪30000严重
004年薪35000普通+严重
005月薪8000
006月薪10000普通
007月薪15000严重
008月薪20000普通+严重

5.正交试验设计法

在软件测试中,软件往往很复杂。很难从软件的规格说明中得出一一对应的输入与输出关系,基本无法划分出等价类,使用因果图也比较庞大复杂。

正交试验设计概述

正交表是一种特制的表格,一般用Ln(mk)表示,L代表是正交表,n代表试验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m表示每个因素水平数,且有n=k*(m-1)+1。
正交试验法就是安排多因素试验、寻求最优水平组合的一种高效率的试验设计方法。

1)关键因素

指标:判断实验结果优略的标准。
因子:因子也称为因素,是指影响所有实验指标的条件;
因子状态:也叫因子水平,他是指因子变量的取值。

2)正交试验设计法设计用例时,按照以下步骤

a:分析软件规格说明书等到影响软件功能的因子,确定因子可以有哪些取值,即确定因子状态。

例如:影响软件运行的因素有DB与操作系统,DB分为Mysql、MongoDB、Oracle,操作系统有windows、Linux、MAC,即因子状态分别为3个;

因子-状态表

因子状态
操作系统windowlinuxmac
数据库mysqlMongoDBOracle

b:加权筛选,简化因子-状态表
实际软件测试中软件的因子或者因子状态会有很多,每个因子对其的状态作用也不大,因此需要根据因子-状态的的重要程度进行加权筛选,选出重要的因子-状态,简化表格。
c:构建正交表,设计测试用例
正交表表示形式:在这里插入图片描述
L:表示正交表
n:正交表的行数,正交表每行可以设计一个测试用例,因此n也代表测试用例个数
c:表示正交实验的因子数目,即正交表的列数,因此正交表是一个n行c列的表格;
t:为水平数,表示每个因子能够取得的最大值,即因子有多少个状态;
例如:L4(2 – 3)正交表

行、列123
1111
2100
3010
4001

以上因子为:用户名、密码、验证嘛,状态分别为0、1 与实际2**3 = 8少了4个用例。

正交表
取码:j6r5

正交法demo

社交软件WEB页面运行环境正交试验设计
分析:
服务器:IIS、apache、jetty
操作系统:window7\window10\linux
插件:无、小程序、app插件
浏览器:IE11、chrome、FiresFox
分析因子c=4,水平数t=3 即为下图正交表
在这里插入图片描述
即将因子状态带入表格如下图:
app页面运行环境测试用例

行、列服务器操作系统插件浏览器
1IISwindow7IE11IE11
2IISwindow10chromechrome
3IISlinuxapp插件FiresFox
4apachewindow7chromeFiresFox
5apachewindow10app插件IE11
6apachelinuxIE11chrome
7jettywindow7app插件chrome
8jettywindow10IE11FiresFox
9jettylinuxchromeIE11
加粗样式

6. 错误推测法

错误推测法凭借的是测试人员的 直觉和经验 来推测系统中可能出现的各种缺陷。
常常是列举出系统中所有【可能的缺陷和容易发生缺陷的特殊情况】,并根据它们来设计测试用例。
例如:查询功能
A、无条件查询
B、是否支持模糊查询
C、查询的关键字之间是否可用连接符
D、输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据
E、若查询结果为空,是否给与相应提示

7、 场景法

软件的工作流程往往对应着现实生活的场景。应该从更高些的视角来 把握系统的业务流程,了解功能模块
在熟悉流程的基础上才能讨论局部细节的测试设计。 场景法的核心是事件流和场景。

1)场景法的示意图

在这里插入图片描述
在这个图中,有一个基本流和四个备选流。从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景:

场景 1 基本流

场景 2 基本流 备选流 1

场景 3 基本流 备选流 1 备选流 2

场景 4 基本流 备选流 3

场景 5 基本流 备选流 3 备选流 1

场景 6 基本流 备选流 3 备选流 1 备选流 2

场景 7 基本流 备选流 4

场景 8 基本流 备选流 3 备选流 4
从上面的实例我们就可以了解“场景”=“基本流”+“备选流”
基本流:采用直黑线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)
备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(实际上是各种“非主流”的情况)
下面是场景法的基本设计步骤

1. 根据说明,描述出程序的基本流及各项备选流 
2. 根据基本流和各项备选流生成不同的场景 
3. 对每一个场景生成相应的测试用例 
4. 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

补充:
更多测试资料
白盒测试理论


版权声明:本文为weixin_42914706原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。