黑盒测试是软件评测师上午场和下午场考试中每年必考的知识点,并且以黑盒测试用例设计的知识点进行考察。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法和场景法等。应该说,这些方法是比较实用的,但采用什么方法,在使用时自然要针对开发项目的特点对方法加以适当的选择。下面我们讨论几种常用的方法。
一、等价类划分法
把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表。
等价类划分有两种不同的情况:有效等价类和无效等价类。
(1)有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
(2)无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。
(3)下面给出6条确定等价类的原则:
①在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可
以确立一个有效等价类和一个无效等价类。
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
⑥在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。
二、边界值分析法
人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上的,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
边界值分析是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。实践证明,为检验边界附近的处理专门设计测试用例,常常取得良好的测试效果。边界值分析法不仅重视输入条件边界,而且也适用于输出域测试用例。
对边界值设计测试用例,应遵循以下几条原则:
①如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
②如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。
③根据规格说明的每个输出条件,应用前面的原则①。
④根据规格说明的每个输出条件,应用前面的原则②。
⑤如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
⑥如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。
⑦分析规格说明,找出其他可能的边界条件。
三、错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误,有针对性地设计测试用例的方法。错误推测法的基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。
四、因果图法
从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。
前面介绍的等价类划分方法和边界值分析法都是着重考虑输入条件,并没有考虑到输入情况的各种组合,也没考虑到各个输入情况之间的相互制约关系。如果在测试时必须考虑输入条件的各种组合,可能的组合数将是天文数字。因此必须考虑描述多种条件的组合,相应地产生多个动作的形式来考虑设计测试用例,这就需要利用因果图。
利用因果图导出测试用例需要经过以下几个步骤:
①分析程序规格说明的描述中,哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类,而结果是输出条件。
②分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”。
③标明约束条件。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用若千个标准的符号标明约束条件。
④把因果图转换成判定表。
⑤为判定表中每一列表示的情况设计测试用例。
五、判定表驱动法(又叫做决策表法)
前面因果图方法中已经用到了判定表,判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。它可以把复杂的逻辑关系和多种条件组合的情况表达得较明确,判定表通常由4个部分组成:
①条件桩:列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
②动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
③条件项:列出针对它所列条件的取值,在所有可能情况下的真假值。
④动作项:列出在条件项的各种取值情况下应该采取的动作。
判定表的建立应该依据软件规格说明,步骤如下:
①确定规则的个数。假如有n个条件,每个条件有两个取值(0,1), 故有2的n次方种规则。
②列出所有的条件桩和动作桩。
③填入条件项。
④填入动作项。制定初始判定表。
⑤简化。合并相似规则或者相同动作。
六、正交实验法
正交试验设计方法是从大量的试验数据中挑选适量的、有代表性的点,从而合理地安排测试的一种科学的试验设计方法。就是使用已经造好了的表格——正交表来安排试验并进行数据分析的一种方法。它简单易行并且计算表格化,应用性较好。
利用正交试验设计方法设计测试用例,与使用等价类划分、边界值分析、因果图等方法相比,有以下优点:
①节省测试工作工时;
②可控制生成的测试用例的数量;
③测试用例具有一定的覆盖率。
正交试验法在软件测试中是一种有效的方法,例如在平台参数配置方面,我们要选择哪种组合方式是最好的,每个参数可能就一个因子,参数的不同取值就是水平,这样我们可以采用正交试验法设计出最少的测试组合,达到有效的测试目的。
七、功能图法
用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成。
(1)状态迁移图:用于表示输入数据序列以及相应的输出数据。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。
(2)逻辑功能模型:用于表示在状态中输入条件和输出条件之间的对应关系。逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。
八、场景法
从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。通过运用场景来对系统的功能点或业务流程进行描述,从而提高测试效果。此时我们需要理解几个概念:
(1)场景:由一系列相关活动组成,且场景中的活动还能由一系列场景组成。
(2)基本流:是经过用例的最简单的路径,无任何差错,程序从开始直接执行到结束。
(3)备选流:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不再加入到基本流中。
场景法设计用例的步骤:
①根据需求规格说明,描述出程序基本流和备选流;
②根据基本流和各项备选流生成不同的场景;
③对每一个场景生成相应的测试用例,可以采用矩阵或决策表来确定和管理测试用例;
④审核用例,去掉冗余或等价的测试用例,给用例确定测试数据值。
九、测试用例设计方法选择的策略
测试用例的设计方法不是单独存在的,具体到每个测试项目里都会用到多种方法,每种类型的软件有各自的特点,每种测试用例设计的方法也有各自的特点,针对不同软件如何利用这些黑盒方法是非常重要的,在实际测试中,往往是综合使用各种方法才能有效地提高测试效率和测试覆盖度,这就需要认真掌握这些方法的原理,积累更多的测试经验,以有效地提高测试水平。
以下是各种测试用例设计方法选择的综合策略:
①首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。
②在任何情况下都必须使用边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。
③可以用错误推测法追加一些测试用例, 这需要依靠测试工程师的智慧和经验。
④对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。
⑤如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法。
⑥对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。
⑦功能图法也是很好的测试用例设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据。
⑧对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。
下面是近几年对黑盒测试考察过的真题,近几年在上午场和下午场考试都会出题,以后仍是考试出题的重点,大家要重视起来。
【2017年59题】根据输入输出等价类边界上的取值来设计用例的黑盒测试方法是( )
A、等价类划分法
B、因果图法
C、边界值分析法
D、场景法
解析:本题考查黑盒测试方法的基础知识。
边界值分析法是在等价类的基础上,根据输入输出等价类边界上的取值来设计测试用例。
故正确答案为:C
【2017年60题】以下关于判定表测试法的叙述中,不正确的是( )
A、判定表由条件桩、动作桩、条件项和动作项组成
B、判定表依据软件规格说明建立
C、判定表需要合并相似规则
D、n 个条件可以得到最多n的2次方个规则的判定表
解析:本题考查黑盒测试方法的基础知识。
判定表:依据软件规格说明建立,由条件桩、动作桩、条件项和动作项组成,然后确定规则的个数,用来为规则编号。若有n个原因,且每个原因的可取值为0或者1,那么将会有2的n次方个规则。然后完成所有条件项的填写。完成所有的动作项的填写,得到初始判定表。最后合并相似规则,用以对初始判断表进行简化。
故正确答案为:D
【2017年63题】以下关于黑盒测试的测试方法选择策略的叙述中,不正确的是( )
A、首先进行等价类划分,因为这是提高测试效率最有效的方法
B、任何情况下都必须使用边界值分析,因为这种方法发现错误能力最强
C、如果程序功能说明含有输入条件组合,则一开始就需要错误推测法
D、如果没有达到要求的覆盖准则,则应该补充一些测试用例
解析:本题考查黑盒测试方法的基础知识。
如果程序功能说明含有输入条件组合,则一开始就需要应使用因果图法或者判定表驱动法。而不是错误推测法,一般用错误推测法追加一些测试用例时使用。
故正确答案为:C
【2018年60题】以下关于因果图法测试的叙述中,不正确的是( )。
A、因果图法是从自然语言书写的程序规格说明中找出因和果
B、因果图法不一定需要把因果图转成判定表
C、为了去掉不可能出现的因果组合,需要标明约束条件
D、如果设计阶段就采用了判定表,则不必再画因果图
解析:本题考查黑盒测试方法的基础知识。
因果图法需要转换成判定表,然后再设计测试用例。
故正确答案为:B
【2018年70题】通过遍历用例的路径上基本流和备选流的黑盒测试方法是( ) 。
A、等价类划分法
B、因果图法
C、边界值分析法
D、场景法
解析:本题考查黑盒测试方法的基础知识。
场景法从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景;通过运用场景来对系统的功能点或业务流程进行描述,从而提高测试效果:场景法=基本流+备用流。
故正确答案为:D
【2019年60题】以下关于边界值分析法的叙述中,不正确的是( ) 。
A、大量错误发生在输入或输出的边界取值上
B、边界值分析法是在决策表法基础上进行的
C、需要考虑程序的内部边界条件
D、需要同时考虑输入条件和输出条件
解析:本题考查黑盒测试方法的基础知识。
边界值分析法是在等价类划分法的基础上进行的。
故正确答案为:B
作者唯一官方个人微信公众号(昊洋与你一起成长):HYJY20180101
写于2021年8月6日
作者:昊洋讲师
版权所有,侵权必究




