什么是判定表法
判定表是分析和表达多种输入条件下系统执行不同动作的工具。在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。判定表通常由四个部分组成,如下图:
1. 条件桩:列出了系统的所有输入,列出的输入次序无关紧要
2. 动作桩:列出了系统可能采取的操作,这些操作的排列顺序没有约束
3. 条件项:列出针对它左列输入的取值,在所有可能情况下的真假值
4. 动作项:列出在输入项的各种取值情况下应该采取的动作
5. 动作项和条件项一起,指出了在条件项的各种取值情况下应该采取的动作,在判定表中贯穿条件项和动作项的一列就是一条规则,可以针对每个合法输入组合的规则设计用例进行测试。
对于判定表可以进行化简工作,化简工作是以合并相似规则为目标的。如果表中有两条或多条规则具有相同的动作,并且其条件项之间存在极为相似的关系,我们便可以将其合并。
如何使用判定表法
本方法具体的实施步骤如下:
步骤1:标识输入和输出
逐项分析测试子项的测试规格,找出其中的输入和输出并标识出来,其中要注意以下几点:
1.输入需要包括外部消息输入、内部预置的用户状态、数据配置等所有对系统输出有影响的因素;
2.输入和输出项只涉及2种取值的,可以只做为一个标识出来。如果输入项涉及多种取值的,每个取值需要做为一个输入标识出来;
3.标识符可以自己确定,但输入与输出需要独立标识。
步骤2:构造判定表
将标识的输入填入条件桩部分,将标识的输出填入动作桩部分。条件项部分的列数为2的n次方列,n为输入数。并从最右列到最左列逐列从“NN…..N”到“YY….Y”填入条件项的所有组合。
步骤3:逐列分析条件项组合,填入其动作项
分析每列的条件项取值情况,根据输入和输出逻辑关系,得到该列的输出值为“Y”或“N”,填入该列动作项,得到一条规则。如果该列条件项取值组合不合法,则动作项填入“X”。
步骤4:简化判定表(可选)
简化判定表是将相似规则(即表中的列)进行合并,以简少测试用例,当然它是以牺牲测试用例充分性为代价的。
简化的过程为:找到判定表中输出完全相同的两列,观察它们的输入是否相似,例如只有一个输入不同时,说明不管该输入取何值,输出都是一样的,也就是说该输入对输出是无影响的,因此可以将这两列合并为一列。
下面是两个规则(列)简化为一个规划的示例图:
步骤5:生成测试用例
简化后的判定表的每一列可以规划为一个测试用例,它的输入和输出都已经非常明确。