收藏 分享(赏)

黑盒测试方法.ppt

上传人:jinchen 文档编号:9880919 上传时间:2019-09-14 格式:PPT 页数:56 大小:1.29MB
下载 相关 举报
黑盒测试方法.ppt_第1页
第1页 / 共56页
黑盒测试方法.ppt_第2页
第2页 / 共56页
黑盒测试方法.ppt_第3页
第3页 / 共56页
黑盒测试方法.ppt_第4页
第4页 / 共56页
黑盒测试方法.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、第3章 黑盒测试方法,Hello Everyone,主讲人:许刚 电 话:13673990036 Q Q:1411069655,本章要点,测试用例的含义 设计测试用例的基本准则 黑盒测试的含义 黑盒测试无法实现穷举测试的原因 黑盒测试的优点和局限性 各种典型的黑盒测试方法 黑盒测试方法的综合使用策略,前言,本章将介绍测试用例的含义和设计准则,黑盒测试方法的概念和特点,以及典型的黑盒测试方法。,3.1 测试用例,1测试用例的概念 测试用例(Test Case)是为特定目标开发的一组测试输入、执行条件和预期结果。 目的是:测试程序中的某路径,或核实程序或软件能否完成某个特定的功能需求。 程序在执行

2、某测试用例的输入数据时,若其输出结果与测试用例中的预期结果不同,则说明程序中存在缺陷。 为完成对一个被测程序的测试,一般需要设计并执行多个测试用例。,3.1 测试用例,2测试用例的重要性 测试用例构成了设计和制定测试过程的基础 测试的“深度”与测试用例的数量成比例 判断测试是否完全的一个主要评测方法是基于需求的覆盖,而这又是以确定、实施和执行的测试用例的数量为依据的 测试工作量与测试用例的数量呈比例 测试设计和开发的类型及所需的资源都受控于测试用例,3.1 测试用例,3测试用例的设计方法概述 由于穷举测试是不可能的,故测试用例的编写是一项富于技巧性和挑战性的工作,是软件测试中的重点和难点。测试

3、人员应从数量极大的可用测试用例中精心挑选数量有限的具有代表性或特殊性的测试用例,以高效地揭露程序或软件中的错误。 设计测试用例的基本准则是: 测试用例的代表性:应尽量覆盖各种合理的和不合理的,合法的和非法的,边界的和越界的,以及极限的输入数据、操作和环境设置,设计的测试用例应是最可能发现程序或软件中错误的。 测试用例的非重复性。 测试结果的可判定性。 测试结果的可再现性。 测试用例的设计方法主要分为白盒法、黑盒法和灰盒法。,3.2 黑盒测试方法概述,3.2.1 黑盒测试的概念和对象 1黑盒测试的概念 “黑盒”测试又称为数据驱动测试或基于规格说明的测试。可理解为程序或软件装在一个漆黑的盒子里,故

4、盒子内的程序对测试人员是不可见的。 执行黑盒测试的人员在完全不考虑程序或软件的内部逻辑结构和处理过程的情况下,测试人员根据软件的需求规格说明书设计测试用例,在程序或软件的界面上进行测试。 黑盒测试是从用户角度出发进行的测试。,3.2.1 黑盒测试的概念和对象,黑盒测试主要是为了发现以下错误: 是否有不正确或遗漏了的功能。 在接口上,输入能否正确地接受。能否输出正确的结果。 是否有数据结构错误或外部信息(例如数据文件)访问错误。 性能上是否能够满足要求。 是否有初始化或终止性错误。,3.2.1 黑盒测试的概念和对象,黑盒方法不可能实现穷举测试,是因为: 在测试某功能时不可能对其所有输入值进行测试

5、,更不可能对其所有输入取值组合进行测试。 无法对需求规格说明书中未规定的潜在需求进行测试。,3.2.1 黑盒测试的概念和对象,2黑盒测试的对象 既可以是单个程序,也可以是模块集成过程中的多个临时版本及最终软件,3.2.2 黑盒测试的优点和局限性,1黑盒测试的优点 黑盒测试不考虑程序或软件的具体实现,若程序或软件的内部实现发生了变化,原先的测试用例依然可用。 黑盒测试用例的设计可以与软件的实现同时进行,因而加快了软件测试与开发的速度。,3.2.2 黑盒测试的优点和局限性,2黑盒测试的局限性 从程序的界面上进行测试,有时难以查找出错误的具体原因和位置,还需要通过执行白盒测试来进行更细致的错误定位。

6、 黑盒测试的惟一依据是软件的需求规格说明书,它无法发现需求规格说明本身存在的问题。,3.3 典型的黑盒测试方法,典型的黑盒测试方法包括: 等价类划分法 边界值分析法 错误推测法 因果图法 判定表法 正交试验法 场景法 功能图法等,3.3.1 等价类划分法,1等价类划分法的实施策略 等价类是被测程序输入域的一个子集合,该输入集合中的数据对于揭露程序中的错误是等价的。 故对某等价类中的代表值的测试就相当于对等价类中所有值的测试,这大大减少了测试用例的数目,提高了测试的效率。 使用等价类划分法时,应仔细分析需求规格说明书,将被测程序的输入域划分为若干等价类。等价类又分为有效等价类和无效等价类。 有效

7、等价类是指该等价类中的输入数据是符合需求规格说明的。 无效等价类是指该等价类中的数据是违反需求规格说明的。 有效等价类和无效等价类都是使用等价类法时所必需的。因为被测程序若是正确的,就应能接受有效输入数据,也能接受无效输入数据的考验。,3.3.1 等价类划分法,划分等价类的若干原则 在规定了输入数据取值范围的情况下,可以确定一个有效等价类和两个无效等价类 在规定了输入条件必须如何的情况下,可以确定一个有效等价类和一个无效等价类 在输入数据是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类 在规定了输入数据是由n个值构成,并要求对其中的每个值进行测试时,可以确定n个有效等价类和一个无效

8、等价类 在规定了输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类 在已划分的某等价类中,若各元素在程序中的处理方式不同,则应将此等价类进一步划分为若干等价类,划分等价类的过程是一个对软件的需求规格说明进行分析推敲的过程,有时还需要多次的尝试方能成功。 对被测程序划分出若干有效等价类和无效等价类之后,应建立等价类表,列出与每一输入条件对应的有效等价类和无效等价类,如表3-1所示。,表3-1 等价类表格式,3.3.1 等价类划分法,接着根据等价类表编写测试用例,可遵循如下步骤: 为每一等价类规定一个惟一的编号。 设计一个测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类。如

9、此重复,直至所有有效等价类均被测试用例所覆盖。 设计一个测试用例,使其覆盖一个尚未被覆盖的无效等价类。如此重复,直至所有的无效等价类均被测试用例所覆盖。,3.3.1 等价类划分法,3.3.1 等价类划分法,2等价类划分法举例 根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。 “一个程序读入3个整数,把这3个数值看作一个三角形的3条边的长度,根据3条边长确定该三角形是普通的、等腰的还是等边的,并打印出结论。”,3.3.1 等价类划分法,我们可以设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满足: A0,B0,C0,且A+BC,B+CA,A+CB 如果是等

10、腰的,还要判断A=B,或B=C,或A=C。 如果是等边的,则需判断是否A=B,且B=C,且A=C。,3.3.1 等价类划分法,3.3.1 等价类划分法,3.3.1 等价类划分法,在对该判断三角形类型的程序执行上表的测试用例过程中,若执行某测试用例中的输入数据,得到的输出结果与测试用例中的预期输出不同,则说明程序中存在错误,需要进一步查找错误的原因和位置并进行修复。,3.3.1 等价类划分法,实验作业1: 选择C、C+、Java、C#任意一种语言,以三角形(Triangle)程序为例进行黑盒测试,掌握等价类划分法、边界值分析法方法。 要求: 提交程序源代码 提交判断三角形程序的等价类表(Word

11、文档) 提交判断三角形程序的等价类方法的测试用例(Word文档) 班长打包发送给任课老师,压缩包上要注明专业名称,班级号和本人的姓名。,3.3.2 边界值分析法,大量的测试实践表明,很多错误是发生在输入或输出数据范围的边界上。因而针对各种边界情况设计测试用例,有利于揭露程序中的错误。,3.3.2 边界值分析法,如上节中的判断三角形类型的例题中,若此3条边能构成一个普通的三角形,必须满足A0、B0、C0、A+BC、B+CA、A+CB,对于等价类A0,其边界是A=0,可针对此边界设计测试用例,以验证程序在A=0时的输出是否正确,若A=0时程序的输出仍为普通三角形,则说明程序中存在错误。 边界值分析

12、法是一种对等价类划分法的补充。使用边界值分析法时,应针对等于、刚好大于或刚好小于各输入等价类和输出等价类边界值的情况设计测试用例。,3.3.2 边界值分析法,用边界值分析法设计测试用例应遵循的原则 若输入条件规定了值的范围,应针对刚达到此范围边界的值,以及刚超越此范围边界的值设计测试用例 若输入条件规定了值的个数,针对最大个数、最小个数、比最大个数大1、比最小个数小1等几种情况的数据设计测试用例 若输出条件规定了值的范围,应针对刚达到此范围边界的值,以及刚超越此范围边界的值设计测试用例 若输出条件规定了值的个数,针对最大个数、最小个数、比最大个数大1、比最小个数小1等几种情况的数据设计测试用例

13、,3.3.2 边界值分析法,若程序的规格说明书中给出的输入域或输出域是有序集合,应针对集合的第一个元素(即刚好大于或小于第一个元素的数值)和最后一个元素(即刚好大于或小于最后一个元素的数值)设计测试用例 若程序中使用了内部数据结构,应针对该内部数据结构边界上的值设计测试用例 进一步分析规格说明,找出其他可能的边界情况,针对它们设计测试用例,3.3.3 错误推测法,1错误推测法的实施策略 所谓错误推测法(Error Guessing),是根据测试人员的经验和直觉推测程序中可能存在的错误,有针对性地设计测试用例,以验证事先的推测是否正确。 错误推测法一般是针对程序的敏感点设计测试用例。,3.3.4

14、 因果图法,1因果输入法的实施策略 等价类划分法、边界值分析法及错误推测法在对输入条件的考虑中,并未重视输入条件的组合。 当输入存在若干种可能的组合时,必须对这些组合加以考虑,以证实测试程序在某种输入组合的情况下能否完成规格说明书中预先规定的功能,否则所做的测试是不充分的。 因果图(Cause-effect Graph)是一种描述输入条件的组合及每种组合对应的输出的图形化工具。可在因果图的基础上设计测试用例。,3.3.4 因果图法,利用因果图设计测试用例应遵循如下步骤: 分析程序的规格说明中,哪些是原因,哪些是结果。所谓原因是指输入条件或输入条件的等价类,而结果是指输出条件。给每个原因和结果赋

15、一个标识符。 分析程序规格说明中的语义,确定原因和原因、原因和结果之间的关系,画出因果图。 由于语法或环境的限制,一些原因与原因之间、原因和结果之间的组合不能出现。对于这些特殊情况,在因果图中用一些记号标明约束或限制条件。 将因果图转化为判定表。 根据判定表的每一列设计测试用例。 若能直接得到判定表,可根据判定表设计测试用例。,2因果图的画法 在因果图中,通常用Ci表示原因,用Ei表示结果,其基本符号如图所示。 在因果图中,各结点的取值可为0或1,0表示该结点代表的状态不出现,1表示该结点代表的状态出现。,3.3.4 因果图法,3.3.4 因果图法,对图中的4种关系解释如下: 恒等:若原因出现

16、,则结果出现;若原因不出现,则结果不出现。 非:若原因出现,则结果不出现;若原因不出现,则结果出现。 或:若几个原因中有一个出现,则结果出现;若几个原因均不出现,结果才不出现。 与:若几个原因中都出现,结果才出现;若几个原因中有一个不出现,则结果不出现。,为了表示因果图中的约束条件,可用一些符号在因果图中加以标识。从原因方面考虑,主要有4种约束条件,如图(a) (d)所示,从结果方面考虑,主要有1种约束条件,如图(e)所示。,3.3.4 因果图法,图中5种约束符号的含义分别为: E(互斥):a、b两个原因不会同时出现,最多只有一个出现。 I(包含):a、b、c3个原因中至少有一个原因出现。 O

17、(惟一):a、b两个原因中必须有一个出现,且仅有一个出现。 R(要求):a出现时b必须也出现。 M(屏蔽):a出现时,b必定不出现;a不出现时,b则不确定。,3.3.4 因果图法,3.3.4 因果图法(补充),一个软件的规格说明中包含如下要求:,第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。,结果: 21. 修改文件22. 给出信息L23. 给出信息M,原因: 1. 第一列字符是A2. 第一列字符是B3. 第二列字符是一数字,1,第一列字符是A,2,第一列字符是B,3,第二列字符是一数字,

18、E,给出信息L,修改文件,给出信息M,22,21,23,11,3.3.4 因果图法(补充),判定表如下所示:,3.3.4 因果图法,一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:,若投入5角钱或1元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出;若售货机有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。”,结果: 21. 售货机零钱找完灯亮22. 退还1元硬币 23. 退还5角硬币24. 送出橙汁饮料25. 送出啤酒饮料,原因: 1.

19、售货机有零钱找2. 投入1元硬币 3. 投入5角硬币4. 押下橙汁饮料5. 押下啤酒饮料,11.投入1元硬币并押下饮料按钮,12.押下橙汁或啤酒按钮,13.应当找5角零钱且售货机有钱找,14.钱已付清,3.3.4 因果图法,1,售货机有零钱找,2,投入1元硬币,3,投入5角硬币,4,押下橙汁按钮,5,押下啤酒按钮,售货机零钱找完灯亮,退还1元硬币,退还5角硬币,送出橙汁饮料,送出啤酒饮料,21,22,23,24,25,13,11,12,14,E,E,把钱付清,押下按钮,该找5角,可找5角,3.3.4 因果图法,判定表,3.3.5 判定表法,在因果方法中用到了判定表,判定表(Decision T

20、able)也称为决策表,主要用在软件开发的详细设计阶段。 判定表(Decision Table)作用与因果图类似,能表示输入条件的组合,以及与每一输入组合相对应的动作组合,因此判定表和因果表的使用场合类似。,3.3.5 判定表法,判定表的构造形式如图所示。,3.3.5 判定表法,对判定表中的5个部分解释如下: 条件桩:列出了所有可能的条件。条件的次序一般不重要。 条件项:列出了所有的条件取值组合。有若干个条件项,每一条件项为一个条件取值组合。 动作桩:列出了所有可能的操作。 动作项:列出了在每一种条件取值组合的情况下,执行动作桩中的哪些动作。故动作项的数目与条件项相等。 规则:一种条件取值组合

21、和与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成了判定表中的一个规则。条件取值组合的数目就是规则的数目。,3.3.5 判定表法,建立判定表的步骤: 列出条件桩和动作桩。 确定规则的个数,用来为规则编号。若有n个原因,由于每个原因可取0或1,故有2的n次方个规则。 完成所有条件项的填写。 完成所有动作项的填写。 合并相似规则,用以对初始判定表进行简化。,3.3.5 判定表法(补充),读书指南决策表,Condition Stub:列出问题的所有条件(条件桩),Condition Entry :针对左列条件取值,给出真假值(条件项),Action Stub :列出问题规定可能采取的行动

22、(动作桩),Action Entry :在条件组合下应采取的行动(动作项),规则,3.3.5 判定表法(补充),判定表的化简:设法合并具有相同动作、且条件项相似的规则,不关心条目,不关心条目对完整决策树的识别有微妙影响。,3.3.5 判定表法(补充),判定表的生成: 若问题要求:“对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理”,条件: 1. 功率大于50马力2. 维修记录不全3. 运行10年以上,采取的措施: 1. 进行优先的维修处理 2. 做其它处理,建立了判定表后,可针对判定表中的每一列有效规则设计一个测试用例,用以对程序进行黑盒测试。 因果图法和判

23、定表法无论从使用场合还是实施策略来看都是十分类似的。 一般说来,当输入条件存在多个取值组合,不同的取值组合对应不完全相同的动作组合时,可考虑使用因果图法或判定表法。 若能直接根据规格说明建立判定表,可用判定表法;若规格说明比较复杂,可先画出因果图,再建立判定表。,3.3.5 判定表法,3.3.6 正交试验法,使用黑盒方法设计测试用例时,由于输入条件和输出数据的多样性,很难覆盖每一输入及输出取值组合。如何有效地缩减测试用例的数目,用较少的测试用例对软件进行较全面的测试,从而提高测试效率、控制测试成本? 通过正交试验设计法进行测试用例的设计可以较好地达到这一目的。 正交试验设计方法,依据Galoi

24、s理论,是指从大量的试验数据中挑选适量的、有代表性的数据,从而合理安排测试的一种试验设计方法。 它能缩减测试用例数目。,3.3.6 正交试验法,用正交试验设计法设计测试用例的基本步骤: 确定因子。即确定对软件的运行结果有影响的因素。一般情况下是指软件的输入以及软件运行的其他环境。可通过对软件需求规格说明书进行分析而获得。 确定因子的取值范围。可通过对软件需求规格说明书进行分析而得到。 确定每个因子的水平。根据因子的取值范围,采用等价类划分法、边界值分析法以及其他测试用例设计方法,在每个因子的取值范围内挑选出有代表性的值。 选择合适的正交表。根据确定的因子和水平,选择一张合适的正交表,以满足试验

25、中的因子数、各因子水平数及试验次数的要求。 设计测试用例表。正交表中的一行对应为各因子的取值组合即水平组合,也就是一个试验条件。故可根据正交表得出所有试验条件,从而得到测试用例表。,3.3.7 场景法,现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景即为场景。而同一事件不同的触发顺序和处理结果就形成了事件流。运用在软件设计中的场景法也可用在软件测试中。 提出将场景法用于测试的是IBM Rational公司,其在RUP2000中文版中对场景法有详细的介绍。,3.3.8 功能图法,每个程序的功能通常由静态说明和动态说明组成,动态说明描述了输入数据的次序或者转移的次序;静态说明描述了输入条

26、件和输出条件之间的对应关系。对于比较复杂的程序,由于大量的组合情况的存在,如果仅仅使用静态说明来组织测试往往是不够的,必须还要动态说明来补充。功能图法就是因此而产生的一种测试用例设计方法。 功能图法就是使用功能图形式化地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型组成。,3.4 黑盒测试方法的综合使用策略,黑盒测试方法的综合使用策略如下: 首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试。等价类划分也常是边界值方法的基础。 在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出的测试用例发现程序错误的能力最强。 测试人员可以根据经验用错误推测法追加一些测试用例。 如果程序的功能说明中含有输入条件的组合情况,则可选用因果图法和判定表法。,3.4 黑盒测试方法的综合使用策略,对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。 对于业务流清晰的系统,可以利用场景法。 程序的功能较复杂,存在大量组合情况时,可考虑功能图法。,本章介绍了测试用例的含义和设计准则,测试用例的设计是软件测试中的重中之重,直接关系到测试工作的成功与否。 相对于白盒方法,黑盒方法是站在较宏观的角度设计测试用例和进行测试活动。 要结合具体的被测软件的特点灵活地选择黑盒测试方法。,3.5 小结,谢谢大家,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报