简述用决策表设计测试用例的步骤_软件测试(14)–黑盒测试案例设计技术–基于决策表的测试…

下表所示决策表给出了有关表示方法的另一种考虑:条件的选择可以大大地扩展决策表的规模。这里将原来的条件(C1:a、b、c构成三角形扩展为

三角形特性的三个不等式的详细表示。如果有一个不等式不成立,则三个整数就不能构成三角形。我们还可以进一步扩展,因为不等式不成立有两种方式:一条边等

于另外两条边的和,或严格大于另外两条边的和。

不关心条目的使用,对完整决策树的识别方式有微妙的影响。对于有限项决策表,如果有n个条件,则必须有2的n次方条规则。如果不关心项实际地表明条

件是不相关的,则可以按以下方法统计规则数。没有不关心项的规则统计为1条规则;规则中每出现一个不关心项,则该规则数乘一次2。下表所示决策表的规则条

数统计。请注意,规则总数是64(正好是应该得到的规则条数)。

应该只有8条规则,所以显然有问题。为了找出问题所在,我们扩展所有三条规则,用可能的T或F代替“-”,如下图所示:

这种识别(和开发)完备决策表的能力,使我们在解决冗余性和不一致性方面处于很有利的地位。下表给出的决策表是冗余的,因为有3个条件和9条规则。(规则9和规则4相同。)

如果上表所示的决策表被用来处理事务,其中C1是真,C2和C3都是假,则规则4和规则9都适用。我们可以观察到两点:

①规则4和规则9是不一致的。

②决策表是非确定的。

规则4和规则9是不一致的,因为行为集合是不同的。整个决策表是不确定的,因为不能确定是应用规则4还是应用规则9。测试人员的基本原则是在决策表中小心使用不关心动作项。

三角形问题的测试用例

使用上面修改的三角形问题决策表,可得到11个功能性测试用例:3个不可能测试用例,3个测试用例违反三角形性质,1个测试用例可得到等边三角

形,1个测试用例可得到不等边三角形,3个测试用例可得到等腰三角形。如果扩展决策表以显示两种违反三角形性质的方式,可以再选三个测试用例(一条边正好

等于另外两条边的和)。做到这一点需要一定的判断,否则规则会呈指数级增长。在这种情况下,最终会再得到很多不关心项和不可能的规则。

这个决策表会有256条规则,其中很多是不可能的。如果要显示为什么这些规则是不可能的,可将动作修改为:

a1:月份中的天数太多;a2:不能出现在非闰年中;a3:计算NextDate。

第二次尝试

如果我们将注意力集中到NextDate函数的闰年问题上,则可以修改已有的等价类集合。为了说明另一种决策表表示方法,这一次采用扩展项决策表开

发,并更仔细地研究动作桩。在构建扩展项决策表时,必须保证等价类构成输入定义域的真划分。如果规则项之间存在“重叠”,则会存在冗余情况,使得多个规则

都能够满足。这里,Y2是一组1812~2012之间的年份,并除以4,2000除外。

M1 = {月份:每月有30天}; M2 = {月份:每月有31天};M3 = {月份:此月是2月}

D1 = {日期:1≤日期≤28};D2 = {日期:日期=29};D3 = {日期=30};D4 = {日期=31}

Y1 = {年:年=2000};Y2 = {年:年是闰年};Y3 = {年:年是平年}

从某种意义上说,我们采用的是“灰盒”技术,因为更仔细地研究了NextDate函数。为了产生给定日期的NextDate,能够使用的操作只有五种:日期和月份的增1和复位,年的增1。(我们不允许通过复位年来回退时间。)

这些条件可以产生有对应等价类笛卡尔积的36个规则的决策表(自己可以分析一下)。结合不关心项,可得到下表所示的

17条规则的决策表。仍然存在逻辑不可能的规则,但是这个表有助于我们标识测试用例的扩展输出。如果填满这个决策表的动作项,就会发现12月有一些麻烦的

问题(规则8)。我们下面解决这些问题。

上表所示的决策表是NextDate函数源代码的基础。这个例子从另一个方面说明测试如何能够很好地改进程序设计。所有决策表分析都应该在NextDate函数的详细设计期间完成。

我们可以使用决策表代数进一步化简这22个测试用例。如果决策表中两个规则的动作集合相同,则一定至少有一个条件能够把两条规则用不关心条目合并。

这正体现出决策表等价于用于标识等价类的“相同处理”方针。在某种意义上,我们就是在标识规则的等价类。例如,规则1、2和3涉及有30天的月份日期类

D1、D2和D3。类似地,有31天的月份的日期类D1、D2、D3和D4也可以合并,2月的D4和D5也可以合并。所得到的结果如下表所示:

总结

与其他测试技术一样,基于决策表的测试对于某些应用程序(例如NextDate函数)很有效,但是对另外一些应用程序就不值得费这么大的事。毫不奇

怪,基于决策表所适用的情况都是要发生大量决策(例如三角形问题),以及在输入变量之间存在重要的逻辑关系的情况(例如NextDate函数)。

①决策表技术适用于具有以下特征的应用程序:

●if-then-else逻辑很突出。

●输入变量之间存在逻辑关系。

●涉及输入变量子集的计算。

●输入与输出之间存在因果关系。

●很高的圈(McCabe)复杂度。(路径测试中会详细讲解)

②决策表不能很好地伸缩(有n个条件的有限项决策表有2的n次方条规则)。有多种方法可以解决这个问题—使用扩展项决策表、代数化简表,将大表“分解”为小表,查找条件项的重复模式。

③与其他技术一样,迭代会有所帮助。第一次标识的条件和动作可能不那么令人满意。把第一次得到的结果作为铺路石,逐渐改进,直到得到满意的决策表。

相关资源:凯歌软件安装管理器1.0-其它文档类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月15日
下一篇 2021年1月15日

相关推荐