首页 第3章 黑盒测试及其实例设计

第3章 黑盒测试及其实例设计

举报
开通vip

第3章 黑盒测试及其实例设计null第3章 黑盒测试及其 实例设计 第3章 黑盒测试及其 实例设计 null本章概述 黑盒测试是软件测试技术中最基本的方法之一,在各类测试中都有广泛的应用。本章将介绍黑盒测试的基本概念与基本方法,并重点介绍应用较为广泛的几种测试方法: 等价类划分法 边界值分析法 决策表法 因果图法 并通过典型实例详细介绍实际测试技术的基本运用。 null3.1 黑盒测试概述 3.2 等价类划分法 3.3 边界值分析法 3.4 决策表法 3.5 因果图法 3.6...

第3章 黑盒测试及其实例设计
null第3章 黑盒测试及其 实例设计 第3章 黑盒测试及其 实例设计 null本章概述 黑盒测试是软件测试技术中最基本的方法之一,在各类测试中都有广泛的应用。本章将介绍黑盒测试的基本概念与基本方法,并重点介绍应用较为广泛的几种测试方法: 等价类划分法 边界值 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 法 决策表法 因果图法 并通过典型实例详细介绍实际测试技术的基本运用。 null3.1 黑盒测试概述 3.2 等价类划分法 3.3 边界值分析法 3.4 决策表法 3.5 因果图法 3.6 实例设计 3.7 测试方法的选择 小结 习题 3.1 黑盒测试概述 3.1 黑盒测试概述 黑盒测试又称为功能测试或数据驱动测试,是从用户观点出发,主要以软件规格说明书为依据,对程序功能和程序接口进行的测试。 黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,它不涉及到程序的内部结构。很明显,如果外部特性本身有问题或规格说明书的规定有误,用黑盒测试方法是发现不了的。null黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试,主要是为了发现以下错误: 是否有不正确的功能,是否有遗漏的功能; 在接口上,是否能够正确地接收输入数据并产生正确的输出结果; 是否有数据结构错误或外部信息访问错误; 性能上是否能够满足要求; 是否有程序初始化和终止方面的错误。 黑盒测试的各种方法中,应用较为广泛的测试方法有以下几种:等价类划分法、边界值分析法、决策表法和因果图法。这些方法是比较实用的,但采用什么方法,在使用时自然要针对开发项目的特点对设计方法进行适当的选择。3.2 等价类划分法3.2 等价类划分法3.2.1 等价类划分法 等价类划分法是黑盒测试用例设计中一种常用的设计方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。 在划分等价类的过程中,不但要考虑有效等价类划分,同时也要考虑无效等价类划分: 有效等价类是指对软件规格说明来说,合理、有意义的输入数据所构成的集合。 无效等价类则和有效等价类相反,即不满足程序输入要求或者无效的输入数据所构成的集合。 null 划分等价类的几个原则: 如果规定了输入条件的取值范围或者个数,则可以确定一个有效等价类和两个无效等价类。 如果规定了输入值的集合,则可以确定一个有效等价类和一个无效等价类。 如果规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可为每一个值确定一个有效等价类,此外根据这组值确定一个无效等价类,即所有不允许的输入值的集合。 如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。 如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类。null表3-1 等价类表在确立了等价类之后,建立等价类表,列出所有划分出的等价类,如表3-1所示 null在根据已列出的等价类表。按一下步骤确定测试用例: 为每一个等价类规定一个唯一的编号; 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一过程,直至所有的有效等价类均被测试用例所覆盖; 设计一个新的测试用例,使其仅覆盖一个无效等价类,重复这一过程,直至所有的无效等价类均被测试用例所覆盖; 3.2.2 常见等价类划分形式3.2.2 常见等价类划分形式1.标准等价类测试 标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值。通常,标准等价类测试用例的数量和最大等价类中元素的数目相等。 以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1~100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形以及不构成三角形。在多数情况下,是从输入域划分等价类,但对于三角形问题,从输出域来定义等价类是最简单的划分方法。 因此,利用这些信息可以确定下列值域等价类: R1={〈a,b,c〉:边为a,b,c 的等边三角形} R2={〈a,b,c〉:边为a,b,c 的等腰三角形} R3={〈a,b,c〉:边为a,b,c 的一般三角形} R4={〈a,b,c〉:边为a,b,c 不能构成三角形} 4个标准等价类测试用例如表3-2所示。null表3-2 三角形问题的标准等价类测试用例2.健壮等价类测试2.健壮等价类测试健壮等价类测试主要的出发点是考虑了无效等价类。 对有效输入,测试用例从每个有效等价类中取一个值; 对无效输入,一个测试用例有一个无效值,其他值均取有效值。 健壮等价类测试存在两个问题: 需要花费精力定义无效测试用例的期望输出; 对强类型的语言没有必要考虑无效的输入 。 对于上述三角形问题,取a、b、c的无效值产生了7个健壮等价类测试用例,如表3-3所示。null 表3-3 三角形问题的健壮等价类测试用例3.对等区间划分3.对等区间划分 对等区间划分是测试用例设计的非常规形式化的方法。它将被测对象的输入/输出划分成一些区间,被测软件对一个特定区间的任何值都是等价的。形成测试区间的数据不只是函数/过程的参数,也可以是程序可以访问的全局变量、系统资源等,这些变量或资源可以是以时间形式存在的数据,或以状态形式存在的输入/输出序列。 举例说明如下: 平方根函数要求当输入值为0或大于0时,返回输入数的平方根;当输入值小于0时,显示错误信息“平方根错误,输入值小于0”,并返回0。 考虑平方根函数的测试用例区间,可以划分出两个输入区间和两个输出区间,如表3-4所示。null表3-4 区间划分通过分析,可以用2个测试用例来测试4个区间: 测试用例1:输入4,返回2 //区间ⅱ和a 测试用例2:输入-10,返回0,输出“平方根错误, 输入值小于0” //区间ⅰ和b 3.2.3 等价类划分法测试用例3.2.3 等价类划分法测试用例在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下: 用户名:要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字; 密码:要求为6~16位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。 分析如下: 分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类),如表3-5所示。null表3-5 等价类表根据上述等价类表,设计测试用例如表3-6所示。根据上述等价类表,设计测试用例如表3-6所示。表3-6 测试用例3.3 边界值分析法3.3 边界值分析法3.3.1 边界值分析法 边界值分析法(Boundary Value Analysis,BVA)是一种补充等价类划分法的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。在测试过程中,可能会忽略边界值的条件,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 null在应用边界值分析法设计测试用例时,应遵循以下几条原则: 如果输入条件规定了值的范围,则应该选取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。 根据规格说明的每一个输出条件,分别使用以上两个原则。 如果程序的规格说明给出的输入域或者输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个元素和最后一个元素作为测试用例。 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界值作为测试用例。 分析规格说明,找出其他可能的边界条件。3.3.2 边界条件与次边界条件3.3.2 边界条件与次边界条件边界值分析法是对输入的边界值进行测试。在测试用例设计中,需要对输入的条件进行分析并且找出其中的边界值条件,通过对这些边界值的测试来查出更多的错误。 提出边界条件时,一定要测试临近边界的有效数据,测试最后一个可能有效的数据,同时测试刚超过边界的无效数据。通常情况下,软件测试所包含的边界检验有几种类型: 数值、字符、位置、数量、速度、尺寸等,在设计测试用例时要考虑这些类型的特征:第一个/最后一个、开始/完成、空/满、最大值/最小值、最快/最慢、最高/最低、最长/最短等。这些不是确定的列表,而是一些可能出现的边界条件。 举个例子来说明一下,如表3-7所示。 null表3-7 利用边界值作为测试数据的例子null表3-8 计算机数值运算的范围数值的边界值检验 计算机是基于二进制进行工作的,因此,任何数值运算都有一定的范围限制,如表3-8所示。null表3-9 字符的ASCII码对应表字符的边界值检验 在字符的编码方式中,ASCII和Unicode是比较常见的编码方式,表3-9中列出了一些简单的ASCII码对应表。null其他边界值检验 包括默认值/空值/空格/未输入值/零、无效数据/不正确数据和干扰数据等。 在实际的测试用例设计中,需要将基本的软件设计要求和程序定义的要求结合起来,即结合基本边界值条件和子边界值条件来设计有效的测试用例。3.3.3边界值分析法测试用例3.3.3边界值分析法测试用例 某程序要求输入三个整数x、y、z,分别作为长方体的长、宽、高,x、y、z的取值范围在2~20之间,计算长方体的体积。表3-10给出了健壮性边界值分析测试用例。null表3-10 健壮性边界值分析测试用例3.4 决策表法 3.4 决策表法 3.4.1 决策表法的概念 决策表通常由四个部分组成,如图3-1所示。 条件桩:列出了问题的所有条件,通常认为列出的条件的先后次序无关紧要。 动作桩:列出了问题规定的可能采取的操作,这些操作的排列顺序没有约束。 条件项:针对条件桩给出的条件列出所有可能的取值。 动作项:与条件项紧密相关,列出在条件项的各组取值情况下应该采取的动作。 nullnull根据软件规格说明,建立决策表的步骤如下: 确定规则的个数。假设有n个条件,每个条件有两个取值,故有2n种规则。 列出所有的条件桩和动作桩。 填入条件项。 填入动作项,得到初始决策表。 简化。合并相似规则(相同动作)。null以下列问题为例给出构造决策表的具体过程。 如果某产品销售好并且库存低,则增加该产品的生产; 如果该产品销售好,但库存量不低,则继续生产; 若该产品销售不好,但库存量低,则继续生产; 若该产品销售不好,且库存量不低,则停止生产。 解法如下: 确定规则的个数。对于本题有2个条件(销售、库存),每个条件可以有两个取值,故有22=4种规则。 列出所有的条件桩和动作桩。 填入条件项。 填入动作项,得到初始决策表,如表3-11所示。null表3-11 决策表3.4.2 决策表法的应用3.4.2 决策表法的应用决策表最突出的优点是: 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。运用决策表设计测试用例,可以将条件理解为输入,将动作理解为输出。 null例如,某股票公司的佣金政策如下:如果一次销售额少于1000元,那么基础佣金将是销售额的8.4%;如果销售额至少1000元,但少于10000元,那么基础佣金将是销售额的5%,外加34元;如果销售额至少10000元,那么基础佣金将是销售额的4%,外加134元。另外销售单价和销售的份数对佣金也有影响。如果单价低于14元/份,则外加基础佣金的5%,此外若不是整百的份数,再外加4%的基础佣金;若单价在14元/份以上,但低于25元/份,则加2%的基础佣金,若不是整百的份数,再外加4%的基础佣金;若单价在25元/份以上,并且不是整百的份数,则外加4%的基础佣金。 详细解析见书中所示。null分析如下:(1) 分析各输入情况,列出为输入变量销售额、单价、份数划分的有效等价类。 销售额的有效等价类: S1: {0 ≤ Sale<1000} S2:{1000 ≤ Sale<10000} S3:{Sale ≥ 10000} 单价的有效等价类: P1:{Price<14} P2: {14≤ Price<25} P3: {Price≥25}分数的有效等价类: B1:{整百的份数} B2:{不是整百的份数} null(2)分析程序的规格说明,并结合以上等价类划分的情况,得出问题规定的可能采取的操作。考虑各种有效输入情况,程序中可能采取的操作有以下6种: a1:基础佣金为销售额的8.4% a2:基础佣金为销售额的5%+34元 a3:基础佣金为销售额的4%+134元 a4:基础佣金的5% a5:基础佣金的2% a6:基础佣金的4% null(3)根据以上分析步骤,画出如下决策表:null根据决策表,设计以下测试用例:3.5 因果图法 3.5 因果图法 3.5.1 因果图法的概念 因果图法就是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种情况的组合。 在因果图中使用4种符号分别表示4种因果关系,如图3-2所示。用直线连接左右节点,其中左节点Ci表示输入状态(或称原因),右节点ei表示输出状态(或称结果)。Ci和ei都可取值0或1,0表示某状态不出现,1表示某状态出现。 图3-2中各符号的含义如下: 恒等:若C1是1,则e1也是1,否则e1为0。 非:若C1是1,则e1是0,否则e1为1。 或:若C1或C2或C3是1,则e1是1,否则e1为0。 与:若C1和C2都是1,则e1是1,否则e1为0。null(a)恒等 (b)非(c)或 (d)与图3-2 因果图的基本符号 null 在实际问题中,输入状态相互之间还可能存在某些依赖关系,我们称之为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束,在因果图中,以特定的符号标明这些约束,如图3-3所示。 对输入条件的约束有: E约束(异):a和b中最多有一个可能为1,即a和b不能同时为1。 I约束(或):a、b和c中至少有一个必须是1,即a、b和c不能同时为0。 O约束(惟一):a和b中必须有一个且仅有一个为1。 R约束(要求):a是1时,b必须是1,即a是1时,b不能是0。 对输出条件的约束只有M约束。 M约束(强制):若结果a是1,则结果b强制为0。null(a)异 (b)或 (c)惟一(d)要求 (e)强制图3-3 约束符号null 利用因果图法生成测试用例需要以下几个步骤,如图3-4所示。 分析软件规格说明书中的输入输出条件,并且分析出等价类。分析规格说明中的语义的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 ,通过这些语义来找出相对应的输入与输入之间,输入与输出之间的对应关系。 将对应的输入与输入之间,输入与输出之间的关系连接起来,并且将其中不可能的组合情况标注成约束或者限制条件,形成因果图。 将因果图转换成决策表。 将决策表的每一列作为依据,设计测试用例。 从因果图生成的测试用例中包括了所有输入数据的取TRUE与FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。null图3-4 因果图法示例3.5.2因果图法测试用例3.5.2因果图法测试用例 某软件规格说明中包含这样的要求:输入的第一个字符必须是A或B,第二个字符必须是一个数字,在此情况下进行文件的修改;但如果第一个字符不正确,则给出信息L;如果第二个字符不是数字,则给出信息M。 解法如下: (1)分析程序的规格说明,列出原因和结果。 原因:C1----第一个字符是A C2----第一个字符是B C3----第二个字符是一个数字 结果:e1----给出信息L    e2----修改文件    e3----给出信息Mnull图3-5 因果图示例(2)将原因和结果之间的因果关系用逻辑符号连接起来,得到因果图,如图3-5所示。编号为11的中间节点是导出结果的进一步原因。null图3-6 具有E约束的因果图 因为C1和C2不可能同时为1,即第一个字符不可能既是A又是B,在因果图上可对其施加E约束,得到具有约束的因果图,如图3-6所示。null(3)将因果图转换成决策表,如表3-14所示。表3-14 决策表 null表3-15 测试用例 (4)设计测试用例。表3-14中的前两种情况,因为原因1和原因2不可能同时为1,所以应排除这两种情况。根据此表,可以设计出6个测试用例,如表3-15所示。3.6实例设计3.6实例设计本节将以成绩管理系统为例,介绍在实际项目中如何来做黑盒测试。测试用例的设计方法不是单独存在的,具体到每个测试项目里都会用到多种方法,在实际测试中,往往是综合使用各种方法才能高效率、高质量的完成测试。一个好的测试策略和测试方法必将给整个测试工作带来事半功倍的效果,从而充分利用有限的人力和物力资源。 在本系统中,登录窗口的界面如图3-7所示,成绩录入窗口的界面如图3-8所示。 在登录窗口中不考虑身份选择情况,只验证用户名和密码以及登录、重填按钮的正确性。用户名和密码的输入条件均要求为不超过16位,可以使用汉字、英文字母和数字及各种组合。 首先应用等价类划分法对用户名和密码进行等价类划分(包括有效等价类和无效等价类),如表3-16所示。null图3-7 系统登录界面 图3-8 成绩录入界面 null表3-16 登录窗口的等价类表 null登录窗口除了要验证用户名和密码的有效性,还要验证各个功能之间的正确性。因此,再应用决策表法。登录窗口对应的决策表如表3-17所示。 表3-17 登录窗口的决策表 null根据上述分析,可以确定测试用例如表3-18所示。 null成绩录入窗口的需求规格说明如下: 界面应包括三个下拉列表,分别用于显示 各学院名称 各系部名称 各班级名称 只有选择了某一个学院后,系部列表框才为可用,列表中将显示出所选择学院对应的所有系部;同样,只有选择了某一个学院后,又选择了某一个系部,此时班级列表框才为可用,列表中将显示出所选择系部对应的所有班级。当三个选项都已经完成选择后,界面上则会显示出所选班级的名单,这时就可以录入成绩了。 对于本例,可以利用决策表的方法来设计测试用例,步骤如下:null1.建立决策表。 由规格说明可以分析出,基本输入事件有: C1:选择学院 C2:选择系部 C3:选择班级 基本输出事件有: a1:显示所选班级名单 a2:学院列表框可用 a3:系部列表框可用 a4:班级列表框可用 a5:显示各学院名称 a6:显示各系部名称 a7:显示各班级名称 a8:不能显示具体选项(如在没有选择学院的前提下,系部列表框中将不能显示所对应的具体系部)null表3-19 输入和输出决策表 根据上述分析得出的输入事件、输出事件建立决策表,如表3-19所示。null表3-20 成绩录入 窗口测试用例 2.确定测试用例,如表3-20所示。 3.7 测试方法的选择3.7 测试方法的选择为了最大程度地减少测试遗留的缺陷,同时也为了最大限度地发现存在的缺陷,在测试实施之前,测试工程师必须确定将要采用的测试策略和测试方法,并以此为依据制定详细的测试 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。通常,一个好的测试策略和测试方法必将给整个测试工作带来事半功倍的效果。 如何才能确定好的测试策略和测试方法呢?通常,在确定测试方法时,应该遵循以下原则: 根据程序的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点。 认真选择测试策略,以便能尽可能少地使用测试用例,发现尽可能多的程序错误。因为一次完整的软件测试过后,如果程序中遗留的错误过多并且严重,则表明该次测试是不足的,而测试不足则意味着让用户承担隐藏错误带来的危险,但测试过度又会带来资源的浪费。因此,测试需要找到一个平衡点。 null以下是各种测试方法选择的综合策略,可在实际应用过程中参考。 首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率的最有效方法。 在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强。 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。 如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用因果图法。 小结小结 测试用例的设计方法不是单独存在的,具体到每个测试项目里都会用到多种方法,每种类型的软件有各自的特点,每种测试用例设计的方法也有各自的特点,针对不同软件如何利用这些黑盒方法是非常重要的,在实际测试中,往往是综合使用各种方法才能有效提高测试效率和测试覆盖度,这就需要认真掌握这些方法的原理,积累更多的测试经验,以有效提高测试水平。习题习题叙述黑盒测试技术的实质及要点。 常用的黑盒测试用例设计方法有哪些?各有什么优缺点? 使用等价类划分法设计三角形问题的测试用例。 程序要求某个输入为6位正整数,试用不同的测试方法设计所有的测试用例。 测试银行提款机上的提款功能,要求用户输入的提款金额的有效数值是50-2000,并以50为最小单位(即取款金额为50的倍数),且小数点后为00,除小数点外,不可以出现数字以外的任何符号和文字。试用等价类划分法和边界值分析法设计测试用例。 某程序要求输入日期,规定变量month、day、year的取值范围为:1≤month≤12,1≤day≤31,1958≤year≤2058,试用边界值分析法设计测试用例。
本文档为【第3章 黑盒测试及其实例设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_815285
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:
上传时间:2012-01-10
浏览量:73