测试用例设计 自动售货机因果图分析
- 格式:docx
- 大小:65.15 KB
- 文档页数:7
一、测试项要求如下:有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱灯是亮的,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红二、分析以上要求,得出原因和结果:原因:1、售货机有零钱找2、投入1元钱3、投入5角钱4、选择橙汁5、选择啤酒结果:21、售货机“零钱找完”灯亮22、退还1元钱23、找回5角钱24、送出橙汁饮料25、送出啤酒饮料三、因果图如下:思路:逐个分析条件,看它与其它哪些条件之间有制约关系,都会影响哪些结果,把这种制约影响关系画出四个角度着手画因果图。
又由于条件1为真和为假时导致的结果不同,所以为真和为假两种情况下的因果图都要画出来,否因果图中出现的中间节点为:11、需要找回5角钱12、选择了橙汁或啤酒13、售货机能够找出5角钱14、钱已结清,可以送出饮料四、根据因果图画出判定表1、条件2、3不能同时为1123456789101有零钱找1111111111四、根据状态图完成判定表12=or(4,5)11=and(2,12)13=and(1,11)14=or(3,13)21=not(1)22=and(11,not(1))23=1324=and(4,14)五、将这16条规则分别转化测试用例其它用例略1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
当售货机没有零钱找,则一个显示〖零零钱找,则显示〖零钱找完〗的红灯不会亮,在送出饮料的同时退还5角硬币。
系画出来,直到所有条件都被分析、所有结果都被覆盖。
本例中,条件1、2、4;1、2、5;3,4;3,5之间存在情况下的因果图都要画出来,否则覆盖不到所有结果。
1234567892012345678111111000000000000示〖零钱找完〗的红间存在制约关系,从这。
测试用例设计—自动售货机因果图分析命题设计了一个自动售货机软件测试用例,用于处理单价为50美分的饮料。
规格如下:如果你放入50美分或1元硬币,并按下按钮[橙汁]或[啤酒],相应的饮料将交付如果自动售货机没有零钱,红灯将显示[零钱已经被换了],然后在放入1元硬币并按下按钮后,饮料将不会被递送,并且1元硬币将退出。
如果有零钱,显示“换出”的红灯将熄灭,50美分将在饮料交付时返还。
分析根据这个命题,我们可以分析自动售货机业务中存在5个条件和5个结果。
条件如下:1。
自动售货机有零钱。
投入1元硬币3。
投入50美分硬币4。
按下橙汁按钮5。
按下啤酒按钮结果:1。
自动售货机[换出]灯亮着。
当自动售货机没有变化时,会出现红灯2。
当硬币投入1元并且自动售货机没有零钱时,返还1元硬币。
3.当硬币投入1元时,返还50美分。
当自动售货机4有变化时。
发送橙汁饮料5。
发送啤酒饮料因果图-绘制条件和结果有变化红灯亮1元1元50美分,啤酒50美分,橙汁因果图-绘制简单关系在绘制空白条件和结果后,我们可以标记1为主题中最直接和最简单的因果条件。
条件“有变化”和结果“红灯亮”之间的关系是“没有”。
当“有零钱”时,红灯不亮,而当自动售货机“没有零钱”时,红灯必须亮。
2年,有条件的“投1元”和有条件的“投50分”是一种“E”关系。
这两个动作不能同时发生,即1元钱和50美分(不能同时发生);但是,我们允许“没有1元钱”和“没有50美分”(同时可能是假的)3,“啤酒选择”条件和“橙汁选择”条件为“e”关系,这两个动作不能同时发生,即“啤酒选择”和“橙汁选择”(不能同时为真);但是我们允许“不喝啤酒”和“不喝橙汁”(这可能同时是错误的)4,条件“啤酒选择”和条件“橙汁选择”相当于程序处理过程,即价格和系统处理方法都是相同的,因此这两个条件可以组合成一个中间节点此外,在两个条件之间使用“或”的关系5。
请注意,有条件的“1元”和有条件的“50美分”不是等价关系。
题目:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。
其规格说明如下:若投入1元5角钱硬币,押下〖可乐〗或〖雪碧〗或〖红茶〗的按钮,则相应的饮料就送出来。
若投入的2元硬币,在送出饮料的同时退还5角硬币。
1.分析这一段说明,列出原因和结果
原因:
1.投入1元5角硬币
2.投入2元硬币
3.押下可乐按钮
4.押下雪碧按钮
5.押下红茶按钮
结果:
21.退还5角硬币
22. 送出可乐饮料
23. 送出雪碧饮料
24.送出红茶饮料
2.画出因果图
如图所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
中间结点:
11. 已投币
12. 押下〖可乐〗或〖雪碧〗或〖红茶〗的按钮
(1) 因果图
3.转换成判定表:
4.设计测试用例
1)只押下可乐按钮不投币,系统不做任何处理。
2)只押下雪碧按钮不投币,系统不做任何处理。
3)只押下红茶按钮不投币,系统不做任何处理。
4)只投入2元硬币不按钮,系统不做任何处理。
5)投入2元硬币并押下红茶按钮,找回5角硬币并送出红茶饮料。
6)投入2元硬币并押下雪碧按钮,找回5角硬币并送出雪碧饮料。
7)投入2元硬币并押下可乐按钮,找回5角硬币并送出可乐饮料。
8)只投入1元5角硬币不按钮,系统不做任何处理。
9)只投入1元5角硬币并押下红茶按钮,送出红茶饮料。
10)只投入1元5角硬币并押下雪碧按钮,送出雪碧饮料。
11)只投入1元5角硬币并押下可乐按钮,送出可乐饮料。
1.某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:1)根据题意,原因和结果如下:原因:1——第一列字符是A;2——第一列字符是B;3——第二列字符是一数字。
结果:21——修改文件;22 ——给出信息L;23——给出信息M。
2)其对应的因果图如下:11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E 约束。
3)根据因果图建立判定表。
表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。
表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。
2.有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
1)分析这一段说明,列出原因和结果原因:1——售货机有零钱找2——投入1元硬币3——投入5角硬币4——押下橙汁按钮5——.押下啤酒按钮结果:21——售货机〖零钱找完〗灯亮22——退还1元硬币23——退还5角硬币24——送出橙汁饮料25——送出啤酒饮料2)画出因果图,如图所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
中间结点:11——投入1元硬币且押下饮料按钮12——押下〖橙汁〗或〖啤酒〗的按钮13——应当找5角零钱并且售货机有零钱找14——钱已付清3)转换成判定表:4)在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16列与第32列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。
题目:有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
1.分析这一段说明,列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮结果:21.售货机〖零钱找完〗灯亮22.退还1元硬币23.退还5角硬币24.送出橙汁饮料25.送出啤酒饮料2.画出因果图如图所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
中间结点:11. 投入1元硬币且押下饮料按钮12. 押下〖橙汁〗或〖啤酒〗的按钮13. 应当找5角零钱并且售货机有零钱找14. 钱已付清3.转换成判定表:4.设计测试用例1)在售货机有零钱找的情况下,投入1元硬币,押下橙汁按钮,找回5角硬币并送出橙汁饮料。
2)在售货机有零钱找的情况下,投入1元硬币,押下啤酒按钮,找回5角硬币并送出啤酒饮料。
3)在售货机有零钱找的情况下,投入1元硬币,系统不做任何处理。
4)在售货机有零钱找的情况下,投入5角硬币,押下橙汁按钮,送出橙汁饮料。
5)在售货机有零钱找的情况下,投入5角硬币,押下啤酒按钮,送出啤酒饮料。
6)在售货机有零钱找的情况下,投入5角硬币,系统不做任何处理。
7)在售货机有零钱找的情况下,押下橙汁按钮,系统不做任何处理。
8)在售货机有零钱找的情况下,押下啤酒按钮,系统不做任何处理。
9)在售货机没有零钱找的情况下,投入1元硬币,押下橙汁按钮,售货机“零钱找完”灯亮,并退还1元硬币。
10)在售货机没有零钱找的情况下,投入1元硬币,押下啤酒按钮,售货机“零钱找完”灯亮,并退还1元硬币。
11)在售货机没有零钱找的情况下,投入1元硬币,售货机“零钱找完”灯亮。
【例】有一个处理单价未5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明为:若投入5角钱或1元钱的硬币,押下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示【零钱找完】的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示【零钱找完】的红灯灭,在送出饮料的同时退还5角硬币。
1) 分析这一段说明,列出原因和结果
原因结果
1. 售货机有零钱找 21. 售货机【零钱找完】灯亮
2. 投入1元硬币 22. 退还1元硬币
3. 投入5角硬币 23. 退还5角硬币
4. 押下橙汁按钮 24. 送出橙汁饮料
5. 押下啤酒按钮 25. 送出啤酒饮料
2) 画出因果图,如图8.19所示。
所有原因结点列在左边,所有结果结点列在右边。
建立四个中间结点,表示处理的中间状态。
中间结点:11. 投入1元硬币且押下饮料按钮
12. 押下【橙汁】或【啤酒】的按钮
13. 应当找5角零钱并且售货机有零钱找
14. 钱已付清
投入1元硬币退还1元硬币
E
投入5角硬币找回5角硬币
押下橙汁按钮送出橙汁饮料
押下啤酒按钮送出啤酒饮料
图8.19 因果图
3) 由于2与3,4与5不能同时发生,分别加上约束条件E。
4) 因果图。
5) 转换成判定表。
图8.20 由因果图得到的判定表。
实验三黑盒测试(二)
一、实验目的
通过本实验,掌握因果图法生成测试用例的步骤。
二、相关内容
利用因果图生成测试用例的基本步骤如下:
(1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
(2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。
(3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。
为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。
(4)把因果图转换为决策表。
(5)根据决策表中的每一列设计测试用例。
三、实验内容
有一个处理单价为5 角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5 角钱或1 元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1 元硬币并押下按钮后,饮料不送出来而且1 元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5 角硬币。
编写程序实现之,然后用因果图法对自动售货机设计测试用例并测试之。
要求:
1、编写程序,实现上述自动售货过程。
(任选一种自己熟悉的语言,有无界面均可,实现相应的功能即可。
)
2、用因果图法设计测试用例。
(1)正确画出因果图。
(2)画出决策表。
(3)给出测试用例。
提示:可按如下步骤进行:
1)分析这一段说明,列出原因和结果。
2)画出因果图。
(所有原因结点列在左边,所有结果点列在右边。
可以考虑建立中间结点,表示处理的中间状态。
比如,可设如下几种中间状态:该找5 角,可找5 角,按下按钮、钱已付清)
3)画出决策表。
4)给出测试用例。
四、实验报告
实验报告提交内容:源程序清单、因果图、决策表。
(测试用例有时间就设计,没有时间可以不设计)
一,因果图;
有零钱
因果图-画条件和结果
红灯亮
投1元
找1元
投5角
找5角
选啤酒
出啤酒
选橙汁
出橙汁
有零钱
红灯亮
找1元
E
找5角
出啤酒
出橙汁
因果图-应该找零钱
投1元 投5角
选商品
钱付清
选啤酒
V
E 选橙汁
找1元
找5角
出啤酒
出橙汁
红灯亮
找1元
找5角
出啤酒
出橙汁
投1元
E 应该找 零钱
投5角
选商品
钱付清
选啤酒
V
E 选橙汁
有零钱
投1元
E 应该找 零钱
能够找 零钱
投5角
选商品
钱付清
选啤酒
V
E 选橙汁
找1元
找5角
出啤酒
出橙汁
因果图-5 角钱付清
红灯亮
找1元
找5角
出啤酒
出橙汁
投1元
E 应该找 零钱
能够找 零钱
投5角
选商品
钱付清
选啤酒
V
E 选橙汁
有零钱
投1元
E 应该找 零钱
能够找 零钱
投5角
V
选商品
钱付清
选啤酒
V
E 选橙汁
因果图-退还 1 元
红灯亮
找1元
找5角
出啤酒
出橙汁判定表
去除无效用例
有零钱
投1元
E应该找
零钱
能够找
零钱投5角V
选商品钱付清选啤酒
V
E
选橙汁。