案例分析(给出分析过程和测试点):
有一个饮料自动售货机(处理单价为5角钱)软件。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
按照“因果图测试法”给出的思路,具体如下:
- 分析需求,列出原因和结果
原因:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
1.售货机〖零钱找完〗灯亮
2.退还1元硬币
3.退还5角硬币
4.送出橙汁饮料
5.送出啤酒饮料
2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:
- 投入1元硬币且押下饮料按钮
- 押下〖橙汁〗或〖啤酒〗的按钮
- 应当找5角零钱并且售货机有零钱找
- 钱已付清
3)转换成判定表:
- 在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。第16列与第32列因什么动作也没做,也删去。最后可根据剩下的16列作为确定测试用例的依据。
我的看法:
当初的作者是用这道题来介绍“因果图测试法”,是为了使用这个需求来训练测试方法的使用。但如果抛开这个限制,我们是否有其他思考方式呢