导图社区 黑盒测试
软件测试基本原理与实践第3章黑盒测试,可以了解和理解黑盒测试的定义、优缺点,等价类划分法、边界值分析法、因果图法、决策表和场景法,应用策略等。
编辑于2021-01-05 17:39:06第3章 黑盒测试
黑盒测试定义
定义
黑盒测试,又称功能测试、数据驱动测试或者基于规格说明的测试,主要是根据功能需求来测试程序是否按照预期工作。
三个方面的检查
检查程序能否按需求规划说明书的规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足。
检测人机交互、数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)的完整性。
检测程序初始化和终止方面是否有错。
发现五类错误
功能不正确或遗漏
界面错误
数据库访问错误
性能错误
初始化和终止错误等
优点
比较简单,不需要了解程序内部的代码及实现
与软件的内部实现无关
从用户角度出发,能很容易地知道用户会用到哪些功能,会遇到哪些问题,从产品功能角度测试可以最大限度地满足用户的需求
基于软件开发文档,将测试直接和待测试软件要完成的操作相关联,所以能够知道软件实现了文档中的哪些功能
从产品功能角度测试可以最大限度地满足用户的需求
相同动作可重复执行,最枯燥的部分可由机器完成,容易实现自动化测试
依据测试用例有针对性地寻找问题,定位更为准确,容易生成测试数据
设计黑盒测试用例可以和软件实现同时进行,因此可以压缩项目总的开发时间
缺点
代码得不到测试
如果需求规格说明有误,很难发现错误所在
测试不能充分地进行
结果的准确性取决于测试用例的设计
自动化测试的复用性较低
等价类划分法
意义
完备性
无冗余性
等价类分类
有效等价类
无效等价类
等价类划分原则
在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
输入条件规定可输入值的集合或者规定了“必须如可”的条件的情况下,可确立一个有效等价类和一个无效等价类。
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
在规定了输入数据的一组值(假定n个),并且程序对每个输入值分别处理的情况下,可以确立n个有效等价类和1个无效等价类。
设计测试用例步骤
1.分析并确定等价类
2.建立等价类表,列出所有划分出的等价类
3.根据列出的等价类,按照一下三个步骤设计测试用例
①为每一个等价类规定一个唯一的编号
②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止
③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止
边界值分析法
分类
标准边界值测试只考虑有效数据范围内的边界值
健壮边界值测试会考虑有效和无效数据范围内的边界值
设计原则
(1)如果输入条件规定了值的范围,则应选取刚达到范围边界的值,以及刚刚超越边界值作为测试输入数据。
(2)如果输入条件规定了值的个数,则用略低于最小值(Min - )、最小值(Min - )、略高于最小值(Min + )、正常值(Normal)、略低于最大值(Max - )、最大值(Max)、略高于最大值(Max + )作为测试数据。
(3)将原则(1)和(2)应用与输出条件,即设计测试用例使输出值达到边界值及其左右的值。
(4)如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例。
(5)如果程序用了一个内部结构,应取这个内部数据结构的边界值作为测试用例。
(6)分析规格说明,找出其他可能的边界条件。
健壮性边界值测试
健壮性考虑的主要部分是预期输出,而不是输入。健壮性测试是边界值分析的一种简单扩展。除了变量的5 个边界(最小值(Min - )、略高于最小值(Min + )、正常值(Normal)、略低于最大值(Max - )、最大值(Max))分析取值还要考虑略超过最大值(max)和略小于最小值(min)时的情况。健壮性测试的最大价值在于观察处理异常情况,它是检测软件系统容错性的重要手段。
最坏情况测试
最坏情况测试拒绝单缺陷假设,它关心的是当多个变量取极值时出现的情况。最坏情况测试中,对每一个输入变量首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值等5个元素集合的测试,然后对这些集合进行笛卡尔积计算,以生成测试用例。最坏情况测试将意味着更大工作量。
健壮性最坏情况测试
健壮最坏情况假设对每一个变量首先进行最小值、略小于最小值的值、略高于最小值的值、正常值、最大值、略高于最大值的值、略低于最大值的值等7个元素的集合。然后对这些集合进行笛卡尔积运算,以生成测试用例。
因果图法
好处
考虑多个输入之间的相互组合、相互制约关系
指导测试用例的选择,能够指出需求规格说明描述中存在的问题
能够帮助测试人员按照一定的步骤,高效率地开发测试用例
因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性
因果图的基本关系
恒等
非( ~ )
或( ∨ )
与( ∧ )
因果图的约束
定义:输入状态相互之间还可能存在某些依赖关系,称为约束。
输入条件约束类型
E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。
I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。
O约束(唯一):a和b必须有一个,且仅有1个为1。
R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。
输出条件约束类型
输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。
设计测试用例步骤
1、分析待测得系统规格,找出原因与结果
2、确定因果图中的各个约束,根据组合间的关联、约束,形成因果图
3、将因果图转换为判定表
4、根据判定表的每一列设计输出测试用例
决策表法
概念
原文:Decision table, 又译为称判定表,决策表是一个用表格形式来整理逻辑关系的工具,由横向的条件(因)和动作(果)和纵向的规则(测试用例)组合而成。
决策表组成
1)条件桩(Condition Stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
决策表构造步骤
(1) 确定规则的个数。有n个条件的决策表有2n 个规则(每个条件取真、假值)。
(2) 列出所有的条件桩和动作桩。
(3) 填入条件项。
(4) 填入动作项,得到初始决策表。
(5) 简化决策表,合并相似规则。
若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。
合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。
正交测试法
两个术语
因子:影响实验指标的条件称为因子。
因子的水平:(状态):影响实现因子的条件。
正交实验法设计测试用例步骤
1、提取功能说明,构造因子——状态表
2、加权筛选,生成因素分析表
3、利用正交表构造测试数据集
正交实验法优点
节省测试工作工时
可控制生成的测试用例的数量
测试用例具有一定的覆盖度
错误推测法
在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。“只可意会,不可言传”,就是表明这样一个道理。
场景法
基本流和备选流
基本流:按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程)。
备选流:导致程序出现错误的操作流程(模拟错误的操作流程)。
注意:用例场景是用来描述流经用例路径的过程,这个过程从开始到结束遍历用例中所有基本流和备选流。
设计测试用例步骤
1、根据说明,描述程序的基本流及各项备选流
2、根据基本流和各项备选流生成不同的场景
3、对每一个场景生成相应的测试用例
4、对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值
黑盒测试方法应用策略
简单标准
如果变量引用的是物理量,可采用边界值分析测试和等价类测试
如果变量引用的是逻辑量,可采用等价类划分测试和决策表测试
如果变量是独立的,可采用边界值分析测试和等价类划分测试
如果变量不是独立的,可采用用决策表测试
如果可保证是单缺陷假设,可采用边界值分析测试
如果可保证是多缺陷假设,可采用边界值分析测试和决策表测试
如果程序包含大量例外处理,可采用决策表测试