对“合并简化判定表”的质疑
在测试的教科书中可以看到判定表的应用,在作出判定表后,经常还要合并判定表,以简化之。举例如下:订购单的检查。如果金额超过500元,又未过期,则发出批准单和提货单;如果金额超过500元,但过期了,则不发批准单;如果金额低于500元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。
将这段需求进行判定表分析,可以得到如下判定表。
a b c d
金额 >500 >500 <=500 <=500
状态 未过期 已过期 未过期 已过期
发出批准单 O O O
发出提货单 O O O
发出通知单 O
我们需要对其进行简化。如果表中有两条或多条规则具有相同的动作,并且其条件项之间存在极为相似的关系,我们就可以将其合并。比如表中,条件:>500、未过期;<=500、未过期。这两个条件项导致的结果是一样的,并且条件项之间很相似,我们就可以将它们合并。结果如下:
金额 >500 <=500
状态 未过期 已过期 已过期
发出批准单 O O
发出提货单 O O
发出通知单 O
---------------------------------------------------------------------------------------
我的疑问是: 当我们测试人员将a,c 合并的时候, 恰恰忽略了一种可能, 那就是程序员可能正是用a,b,c,d,四种情况做判断条件而编写程序的,同时他的c情况的编程恰出了错。 而我们合并后用a的数据写出测试用例。 这样不是正好漏掉了测出bug的机会了吗?
望大家指点!
的确是这样的,但是设计测试用例的时候,不能只采用一种方法或者思路。像这个例子,你已经知道了500是一个分界值。那么肯定还得按照边界值的思想,再次补充几个不同的输入。
页:
[1]