一.什么是判定表:
判定表,也叫决策表。是对多种输入条件下软件系统执行不同动作的分析工具,它可以把复杂的逻辑关系和多种组合的情况表达得具体明确。
二.判定表的组成元素:
1.判定表通常由条件桩、条件项、动作桩、动作项组成。
2.条件桩: 被测对象的所有输入。
3.条件项:被测对象的输入取值。
4.动作桩:被测对象可能采取的操作/表现。
5.动作项:在各个条件项的组合下,被测对象所采取的动作/表现。
例:三好学生中,思想品质、身体、学习对应的是条件桩。成为三好学生和没成为三好学生 便是动作桩。
判定表参考模板:
三.判定表的优缺点及适用范围:
1.优点:
能够把复杂的问题简单化,按照功能的各个条件进行组合,便于分析。
2.缺点:
无法对循环体结构类型进行分析;
随着条件的变多,判定表会变得异常庞大(规则数为条件的可选数量乘积),实战性不高。
3.适用范围:
条件的排列顺序不影响执行操作;
规则的排列顺序不影响执行操作;
每当某一个规则的条件已经满足,并确定要执行的操作后,不必检验别的规则;
如果某一个规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。
四. 判定表设计用例步骤:
1.确定规则的个数,在判定表里的规则是指,条件桩进行排列组合后的集合,对应到判定表右侧的所有列,每一列都可以对应一个测试用例。如果有3个条件,每个条件有2个取值,则有 2 x 2 x 2 = 8种规则,判定表中则有8列;
2.列出所有的条件桩和动作桩;
3.填入条件项;
4.填入动作桩和动作项;
5.化简,合并相似规则;
6.将每条规则转化为用例。
五.判定表步骤解析:
1.判定表的化简与合并:
1.1. 化简工作是以合并相似规则为目标。如果表中有两条或多条规则具有相同的动作,并且其条件项之间存在极为相似的关系,即可将其合并。下图中,E1的取值都是 X,且C1 和 C2的取值相同,C3 的取值不同,那么可以得出,只要C1 和C2 取值为 Y/N,无论C3 怎么取值,结果都是 X。
1.2. 下图中E1 的取值为X,C1和C3 的取值相同,且第一列的C2 取值包含了第二列的 C2的取值范围,所以第二列是重复的,可以去掉第二列:
六.判定表实例:
1.打印机:
1.1. 在日常工作中,我们经常会使用到打印机。那么如何才能正常使用打印机呢?按照正常流程,我们需要确保电脑有打印机的驱动,打印机正常工作、打印机的纸张充足、打印机墨粉充足才能满足打印。
1.2. 得到条件桩和动作桩:
1.3. 生成判定表:
1.4. 化简:
a. 列 5/ 9/ 10/ 11/ 12/ 13/ 15/ 16 中,结果都是E2 = 1,且不管C2/C3/C4 的值是什么,只要C1=0,所以可以合并这几列;
b. 列 4/ 7/ 8/ 15中,结果都是 E3=1,不管C3和C4 取什么值,只要 C1=1和C2=0,所以合并这几列;
c. 列 3/6 中,结果都是 E4=1, 不管 C4取什么值,只要 C1=1、C2=1和 C3=0,所以这两列可以合并。
七.小结:
在实际的工作中,也许我们很难把这种方法运用起来(因为判定表实在难以运用),但是其中的思想值得我们去学习。