测试用例设计—自动售货机因果图分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测试用例设计—自动售货机因果图分析
实验三黑盒测试(二)
一、实验目的
通过本实验,掌握因果图法生成测试用例的步骤。
二、相关内容
利用因果图生成测试用例的基本步骤如下:
(1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
(2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。
(3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。
(4)把因果图转换为决策表。
(5)根据决策表中的每一列设计测试用例。
三、实验内容
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元
硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
编写程序实现之,然后用因果图法对自动售货机设计测试用例并测试之。
要求:
1、编写程序,实现上述自动售货过程。(任选一种自己熟悉的语言,有无界面均可,实现相应的功能即可。)
2、用因果图法设计测试用例。
(1)正确画出因果图。(2)画出决策表。(3)给出测试用例。
提示:可按如下步骤进行:
1)分析这一段说明,列出原因和结果。
2)画出因果图。(所有原因结点列在左边,所有结果点列在右边。可以考虑建立中间结点,表示处理的中间状态。比如,可设如下几种中间状态:该找5角,可找5角,按下按钮、钱已付清)
3)画出决策表。
4)给出测试用例。
四、实验报告
实验报告提交内容:源程序清单、因果图、决策表。(测
试用例有时间就设计,没有时间可以不设计)
一,因果图;
因果图-画条件
和结果
有零钱
选橙汁
选啤酒
投5角
投1元
红灯亮
出橙汁
出啤酒
找5角
找1元
出橙汁
出啤酒
找5角
找1元
E E
因果图-应该找零钱
有零钱
选橙汁
选啤酒投5角
投1元
红灯亮
出橙汁
出啤酒
找5角
找1元
E
E 选商品
钱付清
V
V
V
应该找零钱
V
出橙汁
出啤酒
找5角
找1元
E
E
有零钱
选橙汁
选啤酒投5角
投1元
红灯亮
出橙汁
出啤酒
找5角
找1元
E
E 选商品
钱付清
V
V
V
应该找零钱V
能够找零钱
V
因果图-5角钱付清
红灯亮
出橙汁
出啤酒
找5角
找1元
E
E
因果图-退还1元
有零钱
选橙汁
选啤酒投5角
投1元
红灯亮
出橙汁
出啤酒
找5角
找1元
E
E 选商品
钱付清
V
V
V
V
应该找零钱V
能够找零钱
V
V
判定表
去除无效用例
合并判定表
二,源程序:
#include
#include
main()
{ float a;
int b;
float LingQian=50;
system("graftabl 936");
clrscr();
B:
if(LingQian==0)
{
printf("\n零钱找完!红灯亮!\n");
}
printf("\n请投币:\n");
scanf("%f",&a);
if(LingQian==0&&a==1)
{printf("返回1元") ;
goto B;
};
if(a==0.5||a==1)
{
printf("请选择饮料:\n 1为可乐! 2为啤酒!\n");
scanf("%d",&b);
if(a==1&&b==1)
{
printf("\n可乐 \n 找零:0.5元\n"); LingQian=LingQian-0.5;
}
else if(a==1&&b==2)
{
printf("\n啤酒 \n 找零: 0.5元\n"); LingQian=LingQian-0.5;
}
else if(a==0.5&&b==1)
{
printf("\n可乐\n");
LingQian=LingQian+0.5;
}
else if(a==0.5&&b==2)
{
printf("\n啤酒 \n");
LingQian=LingQian+0.5;
}
}