软件测试用例设计(二)——因果图和判定表的完美结合

因果图法和判定表法的结合使用


这个系列没有(一),等价类和边界值比较常用,错误推断法也是
关键是要明白为什么要等价和边界值,有时候面试会问到。
等价类分为:
(1)有效等价类
(2)无效等价类
引入集合的观点,同一等价内的用例对测试结果的暴露程度是一样的,就是说你测试了等价中的任一一条用例,相当于执行了整个等价类中的用例。

——别在傻傻的用场景法了

因果图法:

关键点是找出事物之间的因果关系
我们将事物之间的这种关系划分为三种情形:
(1)输入条件
(2)中间节点的状态变化
(3)输出条件
其中输入条件是因,输出条件是果

判定表法:

将表中的1表示满足条件,0表示不满足

例题

【基础例题1】
有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。为自动售卖机涉及测试用例。

【一般思路】
我们测试经常使用的方法是场景法,但这个题目不适合用场景法,因为你找不到一个作为基准的基本流,因为单单考虑投入硬币1元5的基本流就不止一个,同时你要考虑还有不同的结果影响。运用场景法显然已经不是一个正确的思路了。
引入因果图的方法,就是分清楚测试对象有多少个输入条件以及输入条件的组合情况对输出条件的影响。
因此,因果图的实质是是一种有因果关系的枚举法。需要枚举输入条件和输出条件,然后再考虑它们的组合。

【思路点拨1】
输入1:① 投入1元5角硬币; ② 投入2元硬币;
输入2:①按“可乐”按钮; ② 按“雪碧”按钮;③ 按“红茶”按钮。

中间状态1:① 已投币;
中间状态2: ② 已按钮;
输出1: ① 送出“可乐”饮料;② 送出“雪碧”饮料; ③ 送出“红茶”饮料。
输出2: ①不找零;② 退还5角硬币;③退还1元5;④退还2元
在这里插入图片描述

【扩展例题1】
如图所示是一个自动饮料售卖机,共有橙汁和苹果汁两种饮料,价格均为大杯1元,小杯5角。L1,L2,L3为指示灯,B1和B2分别是橙汁的大杯和小杯按钮,B3和B4分别是苹果汁的大杯和小杯按钮。售货机只能使用1元和5角的硬币,投入硬币并按下响应按钮可送出饮料并找零。其它接收类型的硬币则从出币口退还。对售货机一次只能投入一次硬币,若多投,则后投的硬币自动退出。如果售货机无零钱可找,则L1灯亮,若此时进行需要找零的购买则不能送出饮料并退还硬币。L2和L3分别只是橙汁和苹果汁是否有货,如无货则灯亮。如两种饮料都无货则自动退还投入的硬币。购买橙汁或苹果汁若金额不足或无货会退还硬币。试对此售货机设计测试用例。

在这里插入图片描述在这里插入图片描述
标注:黑色部分是无所谓的地方

用例设计步骤

1、找出所有的输入条件
2、找出所有的输出条件(结果)
3、明确输入条件和输出条件的因果关系
(中间状态可不要,但要理清所有的输入条件和输出条件)
4、画出判定表,用1表示满足输入输出条件,用0表示不满足,用-表示不相关,能梳理出来的用例起码是整洁的
5、删除冗余的用例

扩展

你们发现我并没有梳理完所有的场景,这是因为题目中没有提到,测试只是尽可能的发现错误,而不是所有错误。

总结

总结:
因果图是一种思维方式,侧重理清事情之间的因果关系
判定表是一种表达形式,侧重表达,对于用例的梳理比场景法更直观
面试出现类似题型的话,用判定表给人耳目一新的感觉

因果图和判定表的结合使用就像是现实主义者和理想主义者结合在一起创造新世界的感觉。

如果你还在劳累的用场景来梳理,那么是时候转换一下思维方式了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章