前言

有关软件测试中判定表的学习笔记,特此记录

判定表

定义

判定表的定义:(摘自百度百科)
判定表(Decision table)是另一种表达逻辑判断的工具。与结构化语言和判断树相比,判断表的优点是能把所有条件组合充分地表达出来

判定表元素

  1. 条件桩:列出问题的所有条件(可能会出现的问题)
  2. 条件项:列出所列条件的具体赋值(可能出现的问题的组合)
  3. 动作桩:列出可能针对问题所采取的操作(问题所对应的操作)
  4. 动作项:列出在条件项(各种赋值)组合情况下应该采取的动作(不同组合的问题所应当执行的操作)

规则和简化

规则:由不同的条件导致不同的动作就成为规则,在判定表中体现为不同的条件项得到不同的动作项。在判定表中贯穿条件项和动作项的一列就是一条规则。
化简:因为初始化判定表包括条件的所有组合,这时有些组合可能是不能实现的,有些动作可能是由一些相似的条件组成的,这时就需要按照等价类划分的原则进行化简。

步骤

  1. 确定条件桩
  2. 确定动作桩
  3. 将条件桩进行组合
  4. 确定每个条件桩所对应的动作桩
  5. 设计测试用例

示例

打印机与打印文件
条件桩:

  • A1:驱动程序是否正确?
  • A2:是否有纸张
  • A3:是否有墨

动作桩

  • B1:打印内容
  • B2:提示驱动程序出错
  • B3:提示没有纸
  • B4:提示没有墨

因为有3个条件桩,所以应有通过表明判断表是否存在 java 判断表的内容是_驱动程序列,(1为是,0为否)

1

2

3

4

5

6

7

8

问题

A1

1

0

1

1

0

0

1

0

问题

A2

1

1

0

1

0

1

0

0

问题

A3

1

1

1

0

1

0

0

0

建议

B1

1

0

0

0

0

0

0

0

建议

B2

0

1

0

0

0

0

0

0

建议

B3

0

0

1

0

1

0

1

1

建议

B4

0

0

0

1

0

1

0

0

继而再进行简化(优化)

1

2

4/6

3/5/7/8

问题

A1

1

0

-

-

问题

A2

1

1

1

0

问题

A3

1

1

0

-

建议

B1

1

0

0

0

建议

B2

0

1

0

0

建议

B3

0

0

0

1

建议

B4

0

0

1

0

解释

以列名为1,2,4/6所在的列为例:

  1. 如果驱动程序正确(A1),有纸张(A2),有墨(A3) 就能进行打印(B1)
  2. 如果驱动程序不正确(A1),有纸张(A2),有墨(A3)就会提示驱动程序错误
  3. 无论驱动程序是否正确(A1),有纸张(A2),没有墨(A3)就会提示没有墨