决策表是一张大概长得像下面这样的二维表(未化简):

决策表法也叫判定表法,是软件黑盒测试理论中基于组合及其优化的方法之一,也是功能测试方法中最严格的。本文简要介绍决策表的概念、决策表测试的步骤以及应试中如何解题。

目录

一、决策表

1、概念要点

2、决策表的结构

3、决策表的化简

(1)化简的前提条件

(2)示例

二、手把手画决策表

1、五步骤

2、新例题-1

3、新例题-2

三、练习


一、决策表

1、概念要点

  1. 决策表以等价类为基础,是功能性测试方法中最严格的。
  2. 决策表法的目标:在特定条件消除等价类测试的冗余
  3. 基本思想:基于强组合等价类测试(是一种测试设计方法,通过将多个输入条件的所有等价类进行全面组合,确保测试覆盖所有可能的交互情况)得到有效域上完整的测试用例集合,并通过合并与化简来消除用例间的冗余。
  4. 因此,决策表具有完备性,并遵循独立性假设(即假设输入的变量彼此之间都是独立的、互不相干的)。

注意:

  • 若输入条件之间不存在相关性,则不需要使用决策表测试。
  • 决策表测试法不处理无效等价类,不需要遵循单缺陷假设。

2、决策表的结构

术语:

  • 条件桩:问题的所有输入条件。
  • 条件项:针对条件桩给出的条件,列出所有可能的取值。
  • 动作桩:问题规定可能采取的操作。
  • 动作项:在条件项的各组取值情况下,应采取的动作。
  • 规则:任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中,贯穿条件项和动作项的一列就是一条规则。可根据每个合法输入组合的规则设计测试用例。

“条件”和“动作”的关系也可以理解为“问题”和“建议”“条件”和“结果”,“输入”和“输出”,“条件”和“响应”的关系。

格式如图(决策表模型就长下面这个样子):

看起来有点难懂也没有关系,接下来给出示例:

对应的决策表如下:

解释:

  • 条件桩(粉色方框):就是题干里给出的所有的条件,上图中“是否疲倦”“是否感兴趣”“是否糊涂”都是题干中提及的条件,全部列在这里就构成了“条件桩”。题干中提示条件的词语有:“如果”,“对于”,“输入”等。
  • 动作桩(红色方框):就是题干里给出的所有可能的结果,比如“重读”“继续读”“跳下一章”“停止阅读”。
  • 条件项(绿色方框):条件所有可能的取值,可以从题干中获取。可以用真/假、Y/N、0/1、T/F等符号表示。最上一行是条件组合的编号,上图中编号是1、2、...7、8,说明一共有8种条件组合。
  • 动作项(蓝色方框):在某一条件组合下,输出的结果。也可以从题干获取。
  • 规则:决策表中从上到下竖着的一列,包括了条件以及相应的动作。上面的决策表中一共有8条规则。

3、决策表的化简

化简原则:若决策表中某条件桩任意取值对动作桩无影响时,可根据实际情况进行合并。

(1)化简的前提条件

输出相同:欲化简的多个规则输出结果完全相同。
输入相似:欲化简的多个规则仅有一个输入条件取值不同,其他输入条件的取值应完全相同。
化简的结果:使得某个输入条件的取值对规则的输出无影响。

(2)示例

对于上述关于“读书”的示例,可以初步得到未化简的决策表为:

但观察上图,我们会发现,(1)与(2)这两条规则的条件项中,只有“是否糊涂”这一条不同;而二者的结果项完全相同(都是“跳到下一章”)。这就说明“是否糊涂”这个条件对于(1)和(2)而言是无效的,那么就可以将(1)和(2)进行合并。这个过程就是化简决策表的过程。

同理,{(3)、(7)},{(4)、(8)},{(5)、(6)}也都可以进行合并,合并后的结果如下:

由上图可知,化简合并减少了规则数,但容易遗漏分支从而产生漏测风险,所以一般规则数量不多时尽量不化简。 


二、手把手画决策表

1、五步骤

还是以这道题为例:

1.找出题干中提到的所有的条件和动作,像下面这样列出来:

2.在题干中找出所有的条件组合,一一填到上面这张图的右上侧,同时记得在第一行标号:

3. 重回题干,找出每一个标号下条件对应的结果:

直到把整个决策表都填满。

4.如果有化简的要求,再进行化简。找结果相同的两个规则,并判断是否符合化简的前提条件:

5.画出化简后的结果,并自行验证是否画对:

2、新例题-1

题干:

……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理。

化简、合并前的决策表:

化简、合并后的决策表:

3、新例题-2

题干:三角形问题

由题干可知,输出的等价类(即动作桩or输出的结果)为能否构成三角形,以及三角形的种类。可以推导出,条件应当是三角形a、b、c三条边的长度情况。可以得到如下决策表:

由于不满足化简的前提条件,故而不用化简。


三、练习

练习1:

练习2:

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐