黑盒测试用例设计方法

上一篇 / 下一篇  2012-11-08 17:34:21 / 个人分类:测试基础知识

【1】等价类划分
等价类划分法是把所有可能的输入数据,即程序的输入域划分为若干部分,然后从每一部分的子集选取少量具有代表性的数据作为测试用例。可以划分为:有效等价类,无效等价类。
划分的原则:
1.在输入条件规定的取值范围,确立一个有效等价和两个无效等价
2.在输入条件规定“必须如何”的条件下,确立一个有效等价和一个无效等价
3.输入布尔量的条件下,确立一个有效类和一个无效类
4.在输入条件规定输入数据的一组值,并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
5.在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类和若干个无效等价类。
6.在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应在将该等价类进一步的划分为更小的等价类。
#include<stdio.h>
#include<stdlib.h>
void main()
{
   int n;
   char str[10];
   scanf("%s",str);  
   n=atoi(str);
   printf("string=%s,integer=%d\n",str,n);
}
测试用例设计如下:
外部条件 编号 有效等价类 编号 无效等价类
输入字符串
做为参数 Y01 整数  
 Y02 带小数的实数 W01 非数字字符
   W02 空字符串
【2】边界值分析法
是一种补充等价类划分的测试用例设计技术。边界值是一种很实用的黑盒测试方法。具有很强的发现错误的能力。它的测试用例来源于等价类的边界值。实践证明,大量的故障往往发生在输入定义域或输出值域的边界上,而非内部。
遵循的原则:
1) 如果输入条件对取值范围进行了界定,则应以边界内部以及刚超出范围边界外的值作为测试用例。若范围的下界为x, 上界为y, 则测试用例应当包含x, y,以及稍小于x和稍大于y的值。
2) 如果对取值的个数进行了界定,则应当分别以最大、最小个数及稍小于最小,稍大于最大个数作为测试用例。
3) 对于输出条件,前两条规则同样适应。
4) 如果程序规格说明书中指明输入或者输出域是一个有序的集合,就应当选择集合中的第一个和最后一个元素作为测试用例。
如:
    规定输入值范围为-1~+1, 则测试用例设计为:+1, -1, +1.01, -1.01
    规定输入的记录可容纳1~255条,则测试用例设计为:0, 1, 255, 256。
【3】因果图法
前面的输入法只考虑输入条件,没有考虑输入条件的联系。因此,必须考虑一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。
因果图法最终生成的就是判定表,适合于检查程序输入条件的各种组合情况。
因果图是一种形式语言,用自然语言描述的规格说明可以转换为因果图。因果图实际上是一种数字逻辑电路。
利用因果图生成测试用例的基本步骤如下:
1. 分析软件规格说明描述中,哪些是原因,哪些是结果,并给每个原因和结果赋予一个标示符。
2. 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系,画出因果图。
3. 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊的情况,在因果图上用一些记号表明约束或限制条件。
4. 把因果图转换为判定表
5. 把判定表的每一列拿出来作为依据,设计测试用例。
在因果图中,才Ci表示原因,Ej表示结果。基本符号如下图(其中,各结点如下图,可取值“0”或“1”,“0”表示某状态不出现,“1”表示某状态出现):
  恒等。 若原因出现,则结果出现,若原因不出现,则结果也不出现。
  非(~):若原因出现,则结果不出现,若原因不出现,则结果出现。
  或(V):若几个原因中的一个出现,则结果出现;若原因都没出现,则结果不出现。
  与(∧):若几个原因出现,结果才出现。
用因果图表示如下:
 
原因与原因之间的约束条件,有:
  E(互斥):a,b两个原因不能同时成立,两个中最多只能一个成立
  I(包含):表示a,b,c三个原因中至少有一个必须成立
  O(唯一):表示a和b当中必须有且只有一个成立
  R(要求):表示当a出现的时候,b也必须出现
  M(屏蔽):表示当a是I时,b必须是O。而当a为O时,b的值不定。
【4】错误推测法

基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。

错误推测方法的基本思想,列举出程序中所有可能的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如:在单元测试时曾列出的许多在模块中常见的错误。以前产品中曾经发现的错误等。这些都是错误的总结。还有,输入数据和输出数据为零的情况,输入表格为空格或输入表格只有一行。这些都是容易产生错误的情况。

【5】场景分析法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成场景,而同一事件不同的触发顺序和处理结果就形成了事件流。这种软件设计方面的思想也可以引入到测试中来。

 
 

TAG:

 

评分:0

我来说两句

Open Toolbar