决策表测试

(1)决策表元素

在上图给出的决策表中,如果 C1、C2 和 C3 都为真,则采取行动 A1 和 A2 。如果 C1 和 C2 都为真而 C3 为假,则采取行动 A1 和 A3

在 C1 为真 C2 为假条件下,规则中的 C3 条目叫做“不关心”条目。不关心条目由两种主要解释:条件无关或条件不适用。

如果有二叉条件( 真 / 假,是 / 否,0 / 1 ),则决策表的条件部分类似于真值表,n 个条件的组合有 2 ^ n 。( 两个二叉条件的组合:2 ^ 2 => 00、01、10、11 )

所有条件都是二叉条件的决策表叫做有限条目决策表。如果条件可以有多个值,则对应的决策表叫做扩展条件

决策表结构能够保证我们考虑所有可能的条件值组合。如果使用决策表设计测试用例,那么决策表的这种完备性质能够保证一种完备的测试

为了使用决策表标识测试用例,我们把条件解释为输入,把行动解释为输出


 

(2)三角形问题的决策表

对于决策表而言,条件的选择可以大大地扩展(压缩)决策表的规模。

条件 C1 扩展为三角形特性的三个不等式。则改进后的三角形问题表如下:

根据三角形问题的决策表,可得到如下的 11 个功能性测试用例:3 个不可能测试用例,3 个非三角形测试用例,1 个测试用例可得到等边三角形,1 个测试用例可得到不等边三角形,3 个测试用例可得到等腰三角形。


 

(3)NextDate 问题的决策表

选择 NextDate 函数,因为它可以说明输入定义域中的依赖性问题。而决策表可以突出这种依赖关系。 

如果变量确实是独立的,则使用类的笛卡尔积是有意义的。如果变量之间在输入定义域中存在逻辑依赖关系,则这些依赖关系在笛卡尔积中就会丢失

决策表通过使用“不可能行动”概念表示条件的不可能组合,使我们能强调这种依赖关系。( 注意“不可能”与“非法输入”之间的区别 )

1)第一次尝试:有限条目决策表

首先,可以从等价类集合开始。

如果我们希望突出不可能的组合,则可以建立条件和行动的有限条目决策表。在这个决策表中会有 256 条( 2 ^ 8 ,Y1 和 Y2 写作一条 )规则,其中很多是不可能的。

考虑到月份变量相互排斥,可以写作:

对于以上的决策表( 有限条目决策表 ),如果有 n 个条件,则有 2 ^ n 条规则。( 类似于真值表 00、01、10、11 )

没有不关心条目的规则则统计为 1 条规则;规则中每出现一个不关心条目,它实际包含的规则数乘 2 。( 一个不关心条目可能是 T / F ,因此一个规则中每出现一个不关心条目,就要乘以 2 )

对于 3 个条件,我们得到的规则条数就为 12 条,但实际上,有 3 个条件,则应该有 8 条规则( 2×2×2 )。为了找到问题所在,我们扩展了含有不关心条目的规则:

有点懵,所以说用有限条目决策法的定义来套 NextDate 问题是行不通的。

2)第二次尝试:扩展条目决策法

在构建扩展条目决策表时,必须保证等价类构成输入定义域的真划分。如果规则条目之间存在“重叠”,则会存在冗余情况,使得多个规则都能够满足。

3)第三次尝试


 

(4)指导方针


 

 

posted @ 2021-12-16 19:32  HanselHuang  阅读(2078)  评论(0编辑  收藏  举报