◆版权声明:本文出自胖喵~的博客,转载必须注明出处。
转载请注明出处:http://www.cnblogs.com/by-dream/p/5336918.html
前言
在程序设计过程中,经常会出现多层逻辑控制的嵌套,而这样的嵌套关系往往会导致我们不能直观的看出程序的逻辑关系,这会导致在测试过程中比较容易出现遗漏。因此我们需要引入决策表、决策树,其中决策表就是设计逻辑控制时十分重要的一个工具。
决策表
先看看定义(虽然并且没多少人能一眼看懂),但我还是决定先列在这里,等你阅读了后面例子之后就会明白。 概念:决策表是分析和表达多逻辑条件下执行不同操作的工具。
其次我们来看看决策表的构成:
条件桩——列出问题的所有条件
条件项——针对条件桩给出的条件列出所有可能的取值
动作桩——列出问题规定的可能采取的操作
动作项——支出在条件项的各组取值情况下应采取的动作
规则——任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。
这里我们用一个例子来看看:
一个Party的收费标准:
1、一般男士收费为 1000
2、一般女士收费为 800
3、大于30岁的人士收费为 500
4、月收入超过5w的男士收取 200
首先根据上面的信息我们可以抽取出如下条件:
一个完整的决策表建立步骤应该是:
1、确定规则个数
2、列出所有的条件桩和动作桩
3、填入条件项
4、填入动作桩和动作项,得到初始决策表
5、化简,合并相似规则
6、依据决策表,选择测试数据,设计测试用例
最终生成的决策表样例如下图:
这里需要说明一下:我们在看这个表的时候,需要看条件项的列,一列条件项对应一个动作项的结果,也就是一个测试case。
当然决策表也可以是这个样子的:
当构建完决策表后,我们可能会担心遗漏一些内容,这个时候就需要用决策树来验证一下。
决策树
判断是否有遗漏就是每个子节点的根需要将其叶子节点的所有结果都画出来,然后检验一下是否有遗漏即可。