测试用例设计—自动售货机因果图分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

}

相关文档
最新文档