用例设计方法:判定表驱动法实践

1.判定表的简介

判定表是黑盒测试的方法之一,判定表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。

因此,利用判定表能够设计出完整的测试用例集合

 

2.判定表组成:

判定表通常有以下四个部分组成:

条件桩

条件项

动作桩

动作项

  • 条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。
  • 动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
  • 条件项(Condition Entry):列出针对它左列条件的取值。针对条件桩给出的条件列出所有可能的取值
  • 动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。

将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则。

3.判定表的优点和缺点

优点:它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。

缺点:不能表达重复执行的动作,例如循环结构。

4.判定表的适用条件

B. Beizer 指出了适合使用判定表设计测试用例的条件:

  • 规格说明以判定表形式给出,或很容易转换成判定表。
  • 条件的排列顺序不会也不影响执行哪些操作。
  • 规则的排列顺序不会也不影响执行哪些操作。
  • 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
  • 如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。

B. Beizer提出这5个必要条件的目的是为了使操作的执行完全依赖于条件的组合。其实对于某些不满足这几条的判定表,同样可以借以设计测试用例,只不过尚需增加其它的测试用例罢了。

5.判定表的建立步骤:

  • 确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有 clip_image006种规则。
  • 列出所有的条件桩和动作桩。
  • 填入条件项。
  • 填入动作项。得到初始判定表。
  • 简化判定表(合并相似规则(相同动作)),如下表所示,左侧的两列均可以合并为右侧一列

规则

选项

1

2

合并1、2

3

4

合并3、4

条件1

Y

Y

Y

Y

Y

Y

条件2

Y

N

-

Y

-

-

条件3

N

N

N

N

N

N

动作4

6.示例1

给出三个任意正数a、b、c判断其能否构成三角形及三角形按边分类的类型

1、 确定规则的个数,先定义条件个数,如下:

三角形按照边分为:等腰三角形、等边三角形、一般三角形

根据分析,确定条件如下:

a<b+c、b<a+c、c<a+b、a=b、b=c、c=a,故规则的个数有2的6次方64个

2、初始判定表

 

1~32

33~48

49~56

57

58

59

60

61

62

63

64

a<b+c

N

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

b<a+c

-

N

Y

Y

Y

Y

Y

Y

Y

Y

Y

c<a+b

-

-

N

Y

Y

Y

Y

Y

Y

Y

Y

a=b

-

-

-

N

N

N

N

Y

Y

Y

Y

b=c

-

-

-

N

N

Y

Y

N

N

Y

Y

a=c

-

-

-

N

Y

N

Y

N

Y

N

Y

一般三角形

     

             

等腰三角形

       

 

     

等边三角形

                   

非三角形

               

不成立

           

 

 

上述判定表已经是合并相同规则后的表格,经过简化后(去除不可能条件)得到最终判定表如下:

 

1~32

33~48

49~56

57

58

59

61

64

a<b+c

N

Y

Y

Y

Y

Y

Y

Y

b<a+c

-

N

Y

Y

Y

Y

Y

Y

c<a+b

-

-

N

Y

Y

Y

Y

Y

a=b

-

-

-

N

N

N

Y

Y

b=c

-

-

-

N

N

Y

N

Y

a=c

-

-

-

N

Y

N

N

Y

一般三角形

     

       

等腰三角形

       

 

等边三角形

             

非三角形

         

不成立

               

根据上述判定表,得到用例如下:

用例编号

a

b

c

预期结果

T01

4

1

2

非三角形

T02

1

4

2

非三角形

T03

1

2

4

非三角形

T04

3

4

6

一般三角形

T05

3

4

3

等腰三角形

T06

4

3

3

等腰三角形

T07

3

3

4

等腰三角形

T08

3

3

3

等边三角形

7.示例2

主持人对甲、乙、丙三人说:“这里有三顶红帽子,两顶白帽子。现在用布蒙上你们的眼睛,给你们每人戴上一顶帽子,然后请你们依次睁开眼睛,能正确说出自己所戴帽子的颜色者有奖。”

带完帽子后,甲拿下布后看了其他两人的帽子说:“我不知道。”

然后,乙解开布看了其他两人的帽子后说:“我不知道。”

轮到丙时,他没有拿下布就正确地说出了自己所戴帽子的颜色。

试问:丙戴的是什么帽子?他是怎样得出结论的?

 

1

2

3

4

5

6

7

clip_image008

clip_image008[1]

clip_image008[2]

clip_image008[3]

clip_image010

clip_image010[1]

clip_image010[2]

clip_image008[4]

clip_image008[5]

clip_image011

clip_image011[1]

clip_image008[6]

clip_image008[7]

clip_image011[2]

clip_image008[8]

clip_image010[3]

clip_image008[9]

clip_image011[3]

clip_image008[10]

clip_image011[4]

clip_image008[11]

甲不知

×

×

×

×

×

×

乙不知

×

×

 

×

×

 

 

 

由上述判定表可知,所有符合题干假设的,只有1、3、5、7满足条件,而满足条件的所有组合中,丙均为红色帽子,故而得出结论

posted @ 2015-12-02 16:19  leo博客  阅读(4073)  评论(2编辑  收藏