1、黑盒测试的测试用例设计方法:等价类划分方法边界值分析方法错误推测方法因果图方法判定表驱动分析方法正交实验设计方法功能图分析方法等价类划分方法含义:在很多时候,某些数据输入后得到的输出结果是相同或者相似的,而与其他一些数据输入后的到的结果不相近,从而我们可以把输入数据划分成若干个集合,称之为有效等价类。从每一个集合中选取代表性的数据作为测试用例使用数据,从而减少了输入数据量提高了效率。划分的等价类集合可以分为有效等价类和无效等价类。有效等价类就是将有效的符合逻辑的正确数据进行划分。无效等价类反之。划分集合的方法有:1)在限定取值范围或个数时,可以划分一个有效等价类和两个无效等价类;2)在规定了输
2、入值集合或必须是“XX类型”时,可以划分一个有效等价类和一个无效等价类;3)在输入值为布尔类型时,可以划分一个有效等价类和一个无效等价类;4)在输入一组(n个)值且伴有判断情况(m种)时,可划分n或m个有效等价类和一个无效等价类;5)在输入规定正则表达式时,可以划分一个有效等价类和若干个无效等价类;设计测试用例:为每个等价类规定一个唯一的编号;设计一个新的测试用例,尽最大可能引入未被引入的有效等价类。反复建立新用例,直到所有等价类被使用。设计一个新的测试用例,仅仅引入一个未被引入的无效等价类。反复建立新用例,直到所有等价类被使用。边界值分析方法含义:边界值分析方法是等价类划分方法的有力补充。由
3、于在后者输入中,我们选择的是一些代表性的数据而不是全部数据进行输入,所以难免会有些会引起错误的特殊数据未被选择。由于这类数据往往集中在各个划分好的等价类的边界值附近,所以称之为边界值分析法。而且,在这种方法中,不单要考虑输入域也要考虑输出域。选值方法:一般原则是应当选择刚好等于,稍微大于和小于边界值的值进行测试。1)当输入域为一个值的范围时,选择范围的边界值和略微超越边界值的值;2)当输入域规定了值的个数时,选择max,max1,min,min1;3)当输出域判断为一个值的范围时,使用1)方法;4)当输出域判断为限定个数的值时,使用2)方法;5)当输入输出域判断依据一个有序列时,选择有序列的第
4、一个和最后一个元素;6)当输入输出域判断依据一个内部数据结构时,使用改数据结构的边界值;7)除了规定的范围,考虑会存在的其他未明示的可能;设计测试用例:对每个边界值建立一个新的用例。错误推测方法含义:有些点虽然不是一个主要的输入输出接口,但是很容易出现错误,或者在产品的以前版本中某个点会反复出现错误。针对这些情况,设定一些测试用例来监视这些容易出错的地方,能够有效的提高错误产生点的判断效率。这种方法是一种预推测,一般都是经验的总结。设计测试用例:按照会发生错误的情况去书写测试用例,这样就能主动监测那些容易出错的点。因果图方法含义:仅仅将值输入,是不断验证单个数据的情况。有时候,我们需要将各个数
5、据联系在一起考虑,从而引申出多种组合,这时候有些单个数据完好的功能就可能出现错误。组合数据,主要就是根据他们之间的逻辑关系,使用同一组数据搭配不同的线路,来测试不同的路径。设计测试用例:第一步,分析软件说明,将输入和输出分别列出,并赋予一个唯一的标志符;第二步,分析语义和设计,将输入和输出之间的对应关系和各自之间的联系列出来,画出因果图;第三步,根据逻辑分析,从因果图中将不可能出现的情况移除;添加约束和限定条件;第四步,将因果图转换为判定表;第五步,根据判定表的每一列,设计一个新用例。说明:从因果图生成测试用例,包括了所有输入数据的取false和取true的情况,生成的测试用例数目达到最少。测
6、试用例的数目是随着输入数据量的增加而增加。判定表驱动分析方法含义:因果图可以生成判定表,但是也可以直接使用判定表。判定表(Decision Table)是列举和分析复合逻辑条件下多个路径的工具。主要是通过一个二维表格一目了然的将负责的逻辑结构和多种条件组合的情况表达出来。组成:条件桩(Condition Stub),列出所有条件。通常认为条件的次序是无关的。动作桩(Action Stub),列出所有可能采取的动作,这些操作是没有次序约束的。条件项(Condition Entry),列出针对它左列条件的取值。在所有坑能情况下的真假值。动作项(Action Entry),列出在条件项的各种取值情况
7、下应该采取的动作。规则:就是任何一个条件组合的特定取值及其相应要执行的操作。在判定表中,贯穿条件项和动作项的一列就是一条规则。判定表的建立步骤:第一步,确定规则的个数,例如:有n个条件,每个条件可取值为0和1,则有2n个规则。第二步,列出所有的条件桩和动作桩。第三步,填入条件项。第四步,填入动作项。得到初始判定表。第五步,简化合并详细规则。可以使用判定表的条件:1)软件说明本身就是以判定表形式给出的。2)条件的排列顺序步影响执行那些操作。3)规则的排列顺序不影响执行哪些操作。4)每当某一规则的条件满足,即可确定要执行操作,不受其他规则影响。5)如果某一个规则的条件得到满足需要执行多个操作,这些操作的顺序应该是无关的。