51Testing软件测试论坛

标题: 对于饮料自动售卖机的测试用例的疑问 [打印本页]

作者: 离离糖漂流记    时间: 2009-9-3 16:05
标题: 对于饮料自动售卖机的测试用例的疑问
在CSDN博客上看到一个讲因果图判定表的例子,以饮料自动售卖机的问题为例。以下是需求内容:


有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。


1) 因果图法第一步 -- 分析这一段说明,列出原因和结果
原因:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
21.售货机〖零钱找完〗灯亮   
22.退还1元硬币
23.退还5角硬币              
24.送出橙汁饮料
25.送出啤酒饮料


问题: 在分析出来的判定表的第10列和第26列,所列举的测试用例条件和结果组合为:“1.售货机有零钱找 3.投入5角硬币 4.押下橙汁按钮 24.送出橙汁饮料” 和:“售货机没有零钱找 3.投入5角硬币 4.押下橙汁按钮 24.送出橙汁饮料”,我想知道的问题是“1.售货机有零钱找”的条件在投入5角硬币的情况下是没有任何影响的,为什么还要做为两个测试用例?而不是写成一个用例“3.投入5角硬币 4.押下橙汁按钮 24.送出橙汁饮料” ”?  在另外一个因果图的介绍文档当中,有一个多加的步骤是说,把判定表中有效的组合条件再做筛选,以本例来说,因为条件1是否为真对结果不存在影响,所以可以把这个条件去掉,并且把测试用例合并成一个。那么,到底哪一种是比较合理的做法呢?

个人感觉一个比较类似的问题是在网站的注册页面,如果这个页面包含有 Email, UserName, Password,Comfirm Password这四个输入框,当我要测试UserName重复时是否有相应报错信息出现的时候,难道还需要加上Email是否为空,或者Confirm Password是否准确的组合条件吗?

[ 本帖最后由 离离糖漂流记 于 2009-9-3 18:18 编辑 ]
作者: 离离糖漂流记    时间: 2009-9-8 11:30
标题: 为什么没有人答呢

作者: larryyang    时间: 2012-4-28 13:45
这个问题竟然遗留了几年没人回答,那我来回答一下吧,
你说的第10列和第26列
10列:(“1.售货机有零钱找 3.投入5角硬币 4.押下橙汁按钮 24.送出橙汁饮料” 和:“售货机没有零钱找 )
26列:(3.投入5角硬币 4.押下橙汁按钮 24.送出橙汁饮料”)
1.售货机有零钱找”的条件在投入5角硬币的情况下是没有任何影响的,这个你只注意了输出条件中的一个《出饮料》,而没有考虑到另外一个受输入影响的输出条件《21.售货机〖零钱找完〗灯亮》,
所以,如果把这两个条件合并之后,就忽略了检查灯亮的问题,这个售货机的灯亮是显式的结果,如果是隐式的结果,那恐怕就难覆盖到。
这个是我的理解。如果有疑问可以再讨论,有问题讨论才是好的。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2