UML软件工程组织

黑盒测试的测试用例设计方法

目前黑盒测试的测试用例设计方法有5种:

  1. 等价类划分
  2. 边界值分析
  3. 错误推测法
  4. 因果图
  5. 功能图

一、等价类划分

等价列划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。

等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试。

等价类划分有两种不同的情况:有效等价类和无效等价类。设计时要同时考虑这两种等价类。

下面给出6条确定等价类的原则:

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

在确立了等价类后,可建立等价类表,列出所有划分出的等价类。然后从划分出的

等价类中按以下的3个原则设计测试用例:

  • 为每一个等价类规定一个唯一的编号
  • 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
  • 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

例:程序规定;输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。

解:设a、b、c代表三角形的三条边。

1)分析题目中给出的和隐含的对输入条件的要求:

a) 整数
b) 3个数
c) 非零数
d) 正数
e) 两边之和大于第三边
f) 等腰
g) 等边

2)列出等价类表并编号



3)列出覆盖上述等价类的测试用例,如下表:

二、边界值分析法

使用边界值分析方法设计测试用例,首先:应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。其次,应但选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
基于边界值分析方法选择测试用例的原则:

  1. 如果输入条件规定了值的范围,应取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入的数据。
  2. 如果输入条件规定了值的个数,应用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试输入的数据。
  3. 根据规格说明的每个输出条件,使用前面的原则1。
  4. 根据规格说明的每个输出条件,使用前面的原则2。
  5. 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例数据。
  6. 如果程序中使用了一个内部数据结构,应当选择这个内部数据结构边界上的值作为测试用例。
  7. 分析规格说明,找出其他可能的边界条件。

三、错误推测法

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

基本思路:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如:输入数据和输出数据为0的情况。

例:现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,所有记录分为3组,如图:



1、标题:改组只有一个记录,其内容是成绩报告的名字。

2、各题的标准答案:每个记录均在第80个字符处标以数字2。该组的记录:

第一个记录:第1~3个字符为试题数(1~999)。第10~59个字符是1~50题的标准答案(每个合法字符表示一个答案)。

第二个记录:是第51~100题的标准答案。

…….

3、学生的答案:每个记录均在第80个字符处标以数字3。每个学生的答卷在若干个记录中给出。

学号:1~9个字符

1~50题的答案:10~59。当大于50题时,在第二、三、……个记录中给出。

学生人数不超过200,试题数不超过999。

程序的输出有4个报告:

a)按学号排列的成绩单,列出每个学生的成绩、名次。
b)按学生成绩排序的成绩单。
c)平均分数及标准偏差的报告
d)试题分析报告。按试题号排序,列出各题学生答对的百分比。

解答一:采用边界值分析方法,分析和设计测试用例。分别考虑输入条件和输出条件,以及边界条件。下表列出了输入条件及相应的测试用例。

下表为输出条件及相应的测试用例表。



解答二:采用错误推测法还可补充设计一些测试用例:

  1. 程序是否把空格作为回答
  2. 在回答记录中混有标准答案记录
  3. 除了标题记录外,还有一些的记录最后一个字符即不是2也不是3
  4. 有两个学生的学号相同
  5. 试题数是负数。

四、 因果图法

因果图法是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的测试用例设计方法。

利用因果图生成测试用例的基本步骤:

  1.  分析软件规格说明描述中那些是原因,那些是结果,并给每个原因和结果赋予一个标识符。
  2. 分析软件规格说明描述的语义。找出原因和结果之间、原因和原因之间的关系,根据这些关系,画出因果图。
  3.  在因果图上用一些记号表明约束或限制条件。
  4. 把因果图转换为判定表。
  5. 把判定表的每一列拿出来作为依据,设计测试用例。

例:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。

解1、画出因果关系表和因果图。

2、根据因果图建立判定表。

按条件的各种组合情况产生对应的动作。原因1和原因2不能同时成立,故可排除这种情况。
从判定表可设计出测试用例:6个测试用例是所需的数据。



版权所有:UML软件工程组织