黑盒测试的方法 黑盒测试的方法及说明
等价类划分法。
边界值分析法。
因果图法。
判定表驱动测试。
场景法。
功能图法。
错误推测法。
正交试验设计法。
在实际测试工作中,往往是综合使用各种方法才能有效地提高测试效率和测试覆盖率,这就需要认真掌握这些方法的原理,积累更多的测试经验,以有效地提高测试水平和测试效率。下面就将主要介绍这8种设计黑盒测试用例的方法。
等价类划分
等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。
由于等价类是在需求规格说明书的基础上进行划分的,并且等价类划分不仅可以用来确定测试用例中的数据的输入输出的精确取值范围,也可以用来准备中间值、状态和与时间相关的数据以及接口参数等,所以等价类可以用在系统测试、集成测试和组件测试中,在有明确的条件和限制的情况下,利用等价类划分技术可以设计出完备的测试用例。这种方法可以减少设计一些不必要的测试用例,因为这种测试用例一般使用相同的等价类数据,从而使测试对象得到同样的反映行为。对于等价类我们从以下几个方面讨论它的划分方法。
1、等价类划分
等价类可以划分为有效等价类和无效等价类。
(1)有效等价类
有效等价类指对于程序规格说明来说,是合理的、有意义的输入数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明预先规定的功能和性能。有效等价类可以是一个,也可以是多个,根据系统的输入域划分若干部分,然后从每个部分中选取少数有代表性数据当做数据测试的测试用例,等价类是输入域的集合。
(2)无效等价类
无效等价类和有效等价类相反,无效等价类是指对于软件规格说明而言,没有意义的、不合理的输入数据集合。利用无效等价类,可以找出程序异常说明情况,检查程序的功能和性能的实现是否有不符合规格说明要求的地方。
2、等价类划分的方法和原则
1)等价类划分的方法有:
按区间划分。
按数值划分。
按数值集合划分。
按限制条件或规划划分。
按处理方式划分。
2)等价类划分的原则如下:
在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。
在规定了输入数据的一组值中(假定有n个值),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。
在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类。
在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。
在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步地划分为更小的等价类。
3、等价类表的建立
等价类表的建立如表1所示。
表1是等价类表的基础,可依据表1确定测试用例。测试用例可按下列步骤来确定:
表1 等价类表1)在分析需求规格说明的基础上划分等价类,列出等价类表,为每一个等价类规定一个唯一的编号。
2)将程序可能的输入数据分成若干个子集,从每个子集中选取一个有代表性的数据作为测试用例。等价类是某个输入域的子集,在该子集中的每个输入数据的作用都是等效的。
3)设计新的测试用例,使其尽可能多地覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖为止。
4)设计新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,按照这一步骤重复进行,直到所有的无效等价类都被覆盖为止。
4、等价类表与测试用例的关系
等价类表与测试用例的关系如表2所示。
表2等价类表与测试用例的关系表
边界值分析法
边界值分析法(BVA,Boundary ValueAnalysis)是用于对输入或输出的边界值进行测试的一种黑盒测试方法。
在测试过程中,边界值分析法是作为对等价类划分法的补充,专注于每个等价类的边界值,两者的区别在于前者在等价类中随机选取一个测试点。边界值分析法采用一到多个测试用例来测试一个边界,不仅重视输入条件边界值,而且重视输出域中导出的测试用例。边界值分析法比较简单,仅用于考察正处于等价划分边界或边界附近的状态,考虑输出域边界产生的测试情况,针对各种边界情况设计测试用例,发现更多的错误。边界值分析法的测试用例是由等价类的边界值产生的,根据输入输出等价类,选取稍高于边界值或稍低于边界值等特定情况作为测试用例。下面介绍边界值分析方法需要注意的问题。
1、选择边界值测试原则
选择边界值测试主要考虑以下几条原则:
1)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数小一的数、比最大个数大一的数作为测试数据。
2)如果输入条件规定了值的范围,则应取刚达到这个范围边界的值,以及刚刚超过这个范围边界的值作为测试输入数据。
3)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
5)分析程序规格说明,找出其他可能的边界条件。
2、常见的边界值
常见的边界值通常表现在界面屏幕、数组、报表和循环等上,其表现方式如下:
1)屏幕上光标在最左上、最右下位置。
2)数组元素的第一个和最后一个。
3)报表的第一行和最后一行。
4)循环的第0次、第1次、倒数第2次和最后一次。
因果图法
因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出动作之间的因果关系,能帮助测试人员把注意力集中到与程序功能有关的输入组合上,比采用等价分类法的测试效率更高,但这种方法的操作步骤比较复杂。
因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。
下面介绍因果图的基本关系符号和约束。
1、关系符号
(1)恒等
恒等关系符号如图3-1所示。图3-1 恒等关系符号图
(2)非
非关系符号如图3-2所示。图3-2 非关系符号图
(3)或
或关系符号如图3-3所示。图3-3 或关系符号图
(4)与
与关系符号如图3-4所示。图3-4 与关系符号图
通常在因果图中,用Ci表示原因,ei表示结果,Ci和ei的状态可用0或1表示,0表示某状态不出现,1表示某状态出现。2、约束
输入状态还存在着某些依赖关系,这种关系称为约束。
约束符号如图3-5所示。图3-5 约束符号图
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约束(强制):若结果a为1,则结果b强制为0。
3、利用因果图导出测试用例的基本步骤
利用因果图导出测试用例一般要经过以下几个步骤:
1)分析软件规格说明的描述中哪些是原因,哪些是结果。原因是输入或输入条件的等价类,结果是输出条件。给每个原因和结果并赋予一个标识符,根据这些关系,画出因果图。
2)因果图上用一些记号表明约束条件或限制条件。
3)对需求加以分析并把它们表示为因果图之间的关系图。
4)把因果图转换成判定表。
5)将判定表的每一列作为依据,设计测试用例。
判定表驱动法
因果图方法中已经用到了判定表(DecisionTable),它是分析和表达多逻辑条件下执行不同操作的情况下的工具。在程序设计发展的初期,判定表就已被当做编写程序的辅助工具了。由于判定表测试严格,能够将复杂的逻辑关系和多种条件组合的情况表达得既具体又明确,针对不同的逻辑条件组合值,分别执行不同的操作,因此,使用判定表能够设计出完整的测试用例集合。判定表是一种针对存在条件、动作关系或者因果关系的特性测试的用例设计方法。1、判定表的组成
判定表通常由4个部分组成,如图3-6所示。
1)条件桩(Condition Stub):列出了问题的所有条件,列出条件的次序没有约束。
2)动作桩(Action Stub):列出问题规定可能采取的操作,这些操作的排列顺序无关紧要。
3)条件项(ConditionEntry):列出条件桩给出的条件并列出所有可能的取值。针对条件桩的条件和条件项的取值,判断在整个程序模块中的所有可能的情况下其结果的真假值。
4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
2、判定表的建立步骤
判定表的建立步骤如下:
1)确定规则的个数,例如,有n个条件,那么决策表中就有2n个规则(每个条件取真、假值)。
2)列出所有的条件桩和动作桩。
3)填入条件项。
4)填入动作项,得到初始判定表。
5)简化判定表,合并相似规则。
场景法
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,
有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
1、场景法的基本流和备选流
场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有的基本流和备选流,如图3-7所示。图3-7 场景法的基本流和备选流
图3-7中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单路径。下面三点给出了一个备选流的开始和结束的可能历程,它可以在某个特定条件下执行:
可能重新加入基本流中(如备选流1和3)。
也可能从另一个备选流(如备选流2)中引出。
或者终止用例而不再重新加入到某个流(如备选流2和4)。
2、场景法的设计步骤
场景法的设计步骤如下:
1)根据说明,描述出程序的基本流及各项备选流。
2)根据基本流和各项备选流生成不同的场景。
3)对每一个场景生成相应的测试用例。
4)对生成的所有测试用例重新审查,去掉多余的测试用例,确定测试用例后,为每一个测试用例确定测试数据值功能图法
功能图法是用功能图形象地表示程序的功能说明,由状态迁移图和布尔函数组成,同时需要依靠判定表或因果图表示逻辑功能,并机械地生成功能图的测试用例。功能图法是黑盒、白盒混合用例的设计方法。
功能图模型由状态迁移图和逻辑功能模型两部分构成。
状态迁移图:用于表示输入数据序列以及相应的输出数据,由输入数据和当前状态决定输出数据和后续状态。
逻辑功能模型:用于表示在状态中输入条件和输出条件的对应关系,由输入数据决定输出数据。此模型只适用于描述静态说明,输出数据由输入数据决定。
程序功能说明包括动态说明和静态说明:
动态说明:描述输入数据的次序或转移次序。
静态说明:描述输入条件和输出条件之间的对应关系。
生成功能图测试用例的步骤如下:
1)生成局部测试用例:在每个状态中,通过因果图生成局部测试用例。
2)生成测试路径:利用规则生成从初始状态到最后状态的测试路径。
3)合成测试用例:合成测试路径与功能图中每个状态的局部测试用例。其结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。
4)采用条件构造树测试用例的合成算法。
错误推测法
错误推测法是基于以往的经验和直觉,参照以往的软件系统出现的错误,推测程序中所有可能存在的各种缺陷和错误,从而有针对性地设计测试用例。
错误推测法的基本思路是:列举出程序中所有可能的错误和容易发生错误的特殊情况,根据可能出现的错误情况选择测试用例。
例如:
1)单元测试中列出许多在模块中常见的错误、以前产品测试中曾经发现的错误等。
2)输入数据为0或字符为空。
3)各种情况在产品说明中常常被忽视,也可能被程序员遗忘,但是在实际使用中却经常发生。测试人员要站在用户的角度,考虑他们要输入的信息,而不管这些信息看起来是合法的输入还是非法的输入。
正交试验设计法
正交试验设计法是通过正交试验理论来指导测试用例的选取,以便能够用较少的测试用例使测试充分,本方法在系统测试用例的设计中不常用。
正交试验设计法依据Galois理论,从大量的(实验)数据(测试用例)中挑选适量的、有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法。
该设计方法是使用已经建好的正交表格来安排试验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率。
利用正交试验设计测试用例的步骤如下:
1)提取功能说明,构造因子——状态表:
影响实验指标的条件称为因子,而影响实验因子的条件称为因子的状态。利用正交试验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把它们当做因子,而把各个因子的取值当做状态。对软件需求规格说明中的功能要求进行划分,把整体的概要性的功能要求进行逐层分解与展开,分解成具体的、相对独立的、基本的功能要求。这样就可以把被测软件中的所有因子都确定下来,并为确定每个因子的权值提供参考的依据。确定因子与状态是设计测试用例的关键,因此要求尽可能全面、正确地确定取值,以确保测试用例的设计完整、有效。
2)加权筛选,生成因素分析表:
对因子与状态的选择可按其重要程度分别加权,可根据各个因子及状态的作用大小、出现频率的大小以及测试的需要确定权值的大小。
3)利用正交表构造测试数据集:
提取功能说明,构造因子——状态表;
加权筛选,生成因素分析表;
利用正交表构造测试数据集。
更多阅读
莲子的作用及食用方法 石榴的功效与作用
莲子性味甘平,每500克莲子中含有热量1500大卡左右,莲子的功效主要有:化痰止咳,降血压血脂,还可以壮阳,补脑安神之功效。莲子的作用及食用方法——莲子的功效性平、味甘涩,入心、脾、肾经;补脾止泻,益肾涩清,养心安神。用于脾虚久泻,遗精带下,心
月季花的养殖方法及注意事项 蟹爪兰嫁接方法配图
月季花的养殖方法及注意事项——简介 月季花又称“长春花”,有“花中皇后”的美称,盛开在5月--11月间,因为其花质秀美,惹人喜爱,所以大家对月季花是相当情有独钟的,那么月季花的养殖方法及注意事项有哪些呢?一起来看看吧~月季花的养殖方
绿萝的繁殖方法及养殖注意事项 绿萝怎样修剪更茂盛
绿萝的繁殖方法及养殖注意事项——简介绿萝是常见的植被,可以净化刚装修的新房,同时又能美化环境。绿萝的养殖很简单,而且繁殖方法简单,可以放置在家里、办公室里,今天我们就了解下绿萝的繁殖方法和养殖注意事项。绿萝的繁殖方法及养殖
中暑的急救方法及注意事项 中暑症状及急救方法
中暑(heatstroke)是指在高温和热辐射的长时间作用下,机体体温调节障碍,水、电解质代谢紊乱及神经系统功能损害的症状的总称。夏季是中暑的高发期,中暑后不及时处理会引起不可预知的后果,必须及时治疗。中暑的急救方法及注意事项——中署表
解析橄榄油美容护肤的作用及方法 橄榄油护肤作用
解析橄榄油美容护肤的作用及方法——简介橄榄油的用途有很多,而最为让人津津乐道的便是它的美容作用。用橄榄油怎么护肤美容呢?橄榄油的作用有哪些呢?小编支招教你如何使用橄榄油护肤。解析橄榄油美容护肤的作用及方法——方法/步骤解