黑盒测试用例设计方法

来源:互联网 发布:干燥箱 加热棒 淘宝 编辑:程序博客网 时间:2024/04/29 01:33

黑盒测试用例设计包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图表法等

一、等价类划分法

等价类的划分有两种不同的情况:
1)有效等价类:
是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明书中所规定的功能和性能
2)无效等价类:
是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计

划分等价类的六大原则:

  1. 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100
  2. 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类
  3. 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类,布尔量是一个二值枚举类型,一个布尔量具有两种状态:true和false
    -在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类
    -在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
    -在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类

二、边界值分析法
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类达的边界
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于、刚刚大于或者刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据

三、错误推断法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例
如:
A.输入数据和输出数据为0的情况;输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况
B.程序是否把空格作为回答,在回答记录中混有标准答案记录,除了标题记录外还有一些记录最后一个字符既不是2也不是3,有两个学生的学号相同,试题数是负数
C.测试一个对线性表(比如数组)进行牌勋的程序,可推测出一下几项需要特别测试的情况:
输入的线性表为空表,表中只含有一个元素,输入表中所有元素已排好序,输入表已按逆序表排好,输入表中部分或全部元素相同
D.测试手机终端的通话功能,可以设计各种通话失败的情况:
无SIM卡插入时进行呼出,插入已欠费SIM卡进行呼出,射频器件损坏或无信号区域插入有效SIM卡呼出,网络正常插入有效SIM卡时呼出无效号码,网络正常插入有效SIM卡使用快速拨号功能呼出设置无效号码的数字

四、因果图法
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况

等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽略了
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种合适于描述多种条件的组合,相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)

采用因果图法设计测试用例的步骤:
1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符
2)分析软件规格说明描述中的语义,找出原因与结果之间对应的关系,根据这些关系,画出因果图
3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件
4)把因果图转为判定表
5)把判定表的每一列拿出来作为依据,设计测试用例

五、判定表驱动法
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具

判定表能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合

判定表通常由四个部分组成:
1)条件桩:列出了问题的所有条件,通常认为列出的条件的次序无关紧要
2)动作桩:列出问题规定可能采取的操作,这些操作的排列顺序没有约束
3)条件项:列出针对它左列条件的取值,在所有可能情况下的真假值
4)动作项:列出在条件项的各种取值情况下应采取的动作

判定表的建立步骤:
1)确定规则的个数,假如有n个条件,每个条件有两个取值(0,1),故有2n种规则
2)列出所有的条件桩和动作桩
3)填入条件项
4)填入动作项,得到初始判定表
5)简化合并想死规则(相似动作)

六、正交试验法
利用因果图来设计测试用例时,作为输入条件的原因和输出结果之间的因果关系,有时很难从软件需求规格说明中得到

利用正交试验设计测试用例的步骤:
1)提取功能说明,构造因子–状态表
把影响实验指标的条件成为因子,而影响实验因子条件叫因子的状态。利用正交试验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当做因子,而把各个因子的取值当做状态。对软件需求规格说明中的功能要求进行划分,把整体的概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的基本的功能要求。这样就把被测试软件中所有的因子都确定下来,并为确定个因子的权值提供参考的依据,确定因子与状态是设计测试用例的关键。因此要求尽可能全面的正确的确定取值,以确保测试用例的设计做到完整与有效
2)加权筛选,生成因素分析表
对因子与状态的选择可其重要程度分别加权,可根据各个因子及状态的作用大小,出现频率的大小以及测试的需要,确定权值的大小
3)利用正交表构造测试数据集
正交表的推导依据Galois理论

利用正交试验设计方法设计测试用例,比使用等价类划分、边界值分析、因果图等方法有以下优点:节省测试工时,可控制生成的测试用例数量,测试用例具有一定的覆盖率

八、功能图法
功能图由状态迁移图和布尔函数组成。状态迁移图用状态和迁移来描述,一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变。同时要依靠判定表或因果图表示的逻辑功能。

从功能图生成测试用例,得到的测试用例数是可接受的。问题的关键的是如何从状态迁移图中选取测试用例,若用节点代替状态,用弧线代替迁移,则状态迁移图就可以转化成一个程序的控制流程图形式,问题就转化为程序的路径测试问题

测试用例生成规则:
为了把状态迁移(测试路径)的测试用例与逻辑模型(局部测试用例)的测试用例组合起来,从功能图生成实用的测试用例,须定义下面的规则。在一个结构化的状态迁移(SST)中,定义三种形式的循环:顺序、选择和重复,但分辨一个状态迁移中的所有循环是有困难的

从功能图生成测试用例的过程:
1)生成局部测试用例
在每个状态中,从因果图生成局部测试用例,局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成
2)测试路径生成
利用上面的规则(三种)生成从初始状态到最后状态的测试路径
3)测试用例合成
合成测试用例路径与功能图中每个状态中的局部测试用例,结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合

测试用例的合成算法:
采用条件构造树

九、 场景法
现在的软件几乎都是事件触发来控制流程的,事件触发时的情景就形成了场景,而同一事件的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行

十、测试用例设计综合策略
使用各种测试方法的综合卷策略:
1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强
2)必要时用等价类划分方法补充一些测试用例
3)用错误推测法再追加一些测试用例
4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例
5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法

测试用例的设计步骤:
1)构造根据设计规格的基本功能测试用例
2)边界值测试用例
3)状态转换测试用例
4)错误猜测测试用例
5)异常测试用例
6)性能测试用例
7)压力测试用例

优化测试用例的方法:
1)利用设计测试用例的8种方法不断的对测试用例进行分解与合并
2)采用遗传算法理论进化测试用例
3)在测试时利用发散思维构造测试用例

0 0