• 12
  • 13
分享
  • 测试用例设计—自动售货机因果图分析——软件测试圈
  • 北极 2021-12-17 16:25:54 字数 2019 阅读 8912 收藏 13

命题

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

分析

根据命题可以分析出,自动售货机的业务中一共存在5个条件和5个结果,分别是:

条件:

  1. 售货机有零钱找

  2. 投入1元硬币

  3. 投入5角硬币 

  4. 押下橙汁按钮

  5. 押下啤酒按钮 

结果: 

  1. 售货机〖零钱找完〗灯亮    当售货机中没有零钱的时候就有亮红灯

  2. 退还1元硬币                      当投入1元,而且售货机中没有零钱可找的时候

  3. 退还5角硬币                      当投入1元,而且售货机中有零钱可找的时候

  4. 送出橙汁饮料

  5. 送出啤酒饮料

因果图-画条件和结果

1.png

因果图-画简单关系

在画完空白的条件和结果之后,可以将题目中最直接和简单的因果条件标出。

  1. 条件“有零钱”和结果“红灯亮”是一个“非”的关系,当“有零钱”的时候,红灯是不亮的,而当售货机中“没有零钱”的时候,红灯必须要亮的。

  2. 条件“投1元”和条件“投5角”是一个“E”的关系,这两个动作不可能同时发生,即同时投入1元钱和5角钱(不能同时为真);但是我们允许即“不投入1元钱”也“不投入5角钱”(可以同时为假)。

  3. 条件“选啤酒”和条件“选橙汁”是一个“E”的关系,这两个动作不可能同时发生,即同时“选择啤酒”和“选择橙汁”(不能同时为真);但是我们允许即“不选择啤酒”也“不选择橙汁”(可以同时为假)。

  4. 条件“选啤酒”和条件“选橙汁”对于程序处理过程是等价的,即二者无论是价格还是系统的处理方法都是相同的,因此这两个条件可以合并为一个中间节点。而且这两个条件之间使用“或”的关系。

  5. 注意,条件“投1元”和条件“投5角”不是等价关系,表面上看,他们都是“钱”,好像差不多,但是对于程序的处理过程确实完全不同的,“投5角”后完全不用判断当前售货机中是否有零钱(因为题目中规定所有的商品都是5角钱),而“投1元”就不行了。

2.png

因果图-送出商品

现在我们从结果的角度考虑,要想“出啤酒”或者“出橙汁”,从现实买卖中分析必须要有什么先决条件呢?是的,就是“你的钱要付清”,而且你一定要选择了“啤酒”或者“橙汁”才行。而在上面的已有因果图中,我们无法找到“钱付清”的因素,因此这时候我们可以试着再加一个中间节点,就叫“钱付清”吧。

要想获得选中的商品,则条件“钱付清”和条件“选啤酒/选橙汁”必须要同时成立,因此是“与”的关系。

3.png

因果图-应该找零钱

根据题意,当投入1元钱,而且又选中了某一种商品的时候,系统是需要找零钱的。而现有条件和结果中并没有涉及到“应该找零钱”这种情况,因此我们还需要增加一个中间节点“应该找零钱”。

条件“投1元”和条件(中间节点)“选商品”与结果(中间)“应该找零钱”是“与”的关系,即这两个条件必须同时满足。

4.png

因果图-能够找零钱

上面已经确定了“投入1元钱”并且“选商品”,系统应该找给客户5角钱,那么接下来就要看当前售货机中是否有零钱可找了,庆幸的是,存在“有零钱”的条件;

现在系统“应该找零钱”给客户,而且恰恰又“有零钱”找给客户,那么就可以确定系统“能够找零钱”给客户了,所以这里我们又可以增加一个中间节点“能够找零钱”。

条件“有零钱”和条件(中间节点)“应该找零钱”与结果“能够找零钱”之间是“与”的关系。

5.png

因果图-1元钱付清

现在已经确定客户“投入1元钱”并且“选商品”后,系统“有零钱”可找,那么紧接着就可以找钱给客户了。

条件“能够找零钱”和结果“找5角”是“恒等”的关系;

条件“能够找零钱”和结果(中间节点)“钱付清”也是“恒等”的关系;

6.png

因果图-5角钱付清

考虑完投入1元钱后系统的处理情况,我们再来看投入5角钱后系统是如何处理的。因为售货机中的全部商品都是5角钱的,因此就不存在找零的问题了,只要客户“投入5角”并且按下相应的商品选择按钮就好了。

所以,条件“投5角”和结果(中间节点)“钱付清”直接是“恒等”的关系。

另外,条件“投5角”和条件(中间节点)“能够找零钱”都代表金额的计算已经结束,即“钱付清”,因此条件“投5角”和条件(中间节点)“能够找零钱”与结果(中间节点)“钱付清”之间是“或”的关系。

7.png

因果图-退还1元

我们考虑完了投入5角钱及投入1元钱并找零后,最后在考虑一下退还1元钱的情况。毫无疑问,当投入1元钱,并且选择了某种商品的时候,如果当前售货机中没有零钱可找,那么只能退还用户这1元钱了。

因此,条件“没零钱”和条件“应该找零钱”与结果“找1元”之间应该是“与”的关系,而且我们的条件中关于零钱是用了肯定的描述,即“有零钱”,要想表示没有零钱,直接使用一个“非”关就可以了。

8.png

判定表

9.png

去除无效用例

10.png

合并判定表

11.png


文章来源:百度文库

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:我们公司的项目一个功能打一个版本分支,按理来说开发改问题的时候我们可以测其他功能的,但是开发又说不行。这样比较耽误测试时间,影响项目正常上线,不知道这是什么原因是造成的呢 ?阿常回答:建议增加一套开发环境通常每个开发会有自己的功能特性分支,然后有一个主分支是对应生产环境,另一个分支对应测试环境。猜测你们是缺少开发环境的,所以开发验功能只能在测试环境操作,这就耽误了测试人员验证其他功能。阿常碎碎念:以上问答始发于 2022/3/24 「软件测试圈」,来源于小布丁向阿常的提问
            0 0 1006
            分享
          •   看图说话:  界面  1、界面布局是否合理, 是否显示完整。  2、界面上方显示信息。     ·左上方显示"淘宝网"字样     · 右上方显示"登录页面改进"字样  3、图片展示。     · 是否清晰     · 大小设计是否合理     · 放置位置是否合理  4、界面文字。     · 是否有错别字     · 文字的大小,粗细, 样式, 放置...
            0 0 2737
            分享
          •   随着中国防疫措施优化调整,越来越多的跨国公司高管正计划前往中国拜访客户、参加活动。  2月13日,澎湃新闻记者从梅赛德斯-奔驰方面了解到,梅赛德斯-奔驰集团股份公司董事会主席康林松(Ola K?llenius)计划将访华。2022年,奔驰在全球范围内交付204.39万辆乘用车。其中,中国市场全年累计交付75.17万辆,同比下滑0.9%,新能源车型则同比增长143%。  此前据《华尔街日报》12日报道,跨国公司高管正在重返中国寻求商机。大众汽车公司的高管在1月底2月初访问了中国,梅赛德斯-奔驰公司的管理层人员也在近日有访问中国的计划,苹果公司CEO蒂姆·库克(Tim Cook)、辉瑞CEO艾...
            0 0 558
            分享
          • 前言:本篇讲堂是紧接【安全测试工具-进阶篇[XSS跨站点脚本漏洞(上)]】的内容。例牌,先说下安全测试工具的更新情况【工具地址:https://gitee.com/samllpig/SafeTool-51testing】1. 安全测试工具服务端增加前端脚本路由定位功能漏洞讲解:所属模块: (A7) Cross-Site Scripting (XSS) [跨站脚本漏洞]8.1.7 第七节主题:本节是个小测验,试试反射型XSS内容:测试XSS最重要的是确定可以注入的字段,并构造一段html标记和javascript代码,我们把它称之为有效载荷,将有效载荷注入到http请求中的所有可控参数...
            0 0 58
            分享
          •   大家测试过程中经常用的等价类划分、边界值分析、场景法等,并不能覆盖所有的需求,下面就来讲一种不经常用到但又非常重要的测试用例编写方法。  因果图  应用场景:页面上有多个控件(输入),控件(输入)之间存在不同的组合关系,不同组合之间又可以产生不同的输出结果,符合这个条件的页面可以使用因果图法。  通过应用场景我们发现,一个手机壳外形选择页面的用例就可以按照这种方法编写。  我们假设我们手机,品牌有品牌1和品牌2,品牌1对应的型号有型号1、型号2,品牌2对应的型号有型号3、型号4,我们所有的手机外形有外形1,外形2,但是外形1只能给品牌1的手机使用,外形2品牌2的手机使用;除固定选择外,还有...
            0 0 641
            分享
      • 51testing软件测试圈微信