文档库 最新最全的文档下载
当前位置:文档库 › 测试用例设计自动售货机因果图分析

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

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

实验三黑盒测试(二)

一、实验目的

通过本实验,掌握因果图法生成测试用例的步骤。

二、相关内容

利用因果图生成测试用例的基本步骤如下:

(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元

E

E

红灯亮

出橙汁

出啤酒

找5角

找1元

E

E

出橙汁

出啤酒

找5角

找1元

E

E

因果图-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;

}

}

else

{goto B;}

goto B;

}

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

实验三黑盒测试(二) 一、实验目的 通过本实验,掌握因果图法生成测试用例的步骤。 二、相关内容 利用因果图生成测试用例的基本步骤如下: (1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。 (2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。 (3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。 (4)把因果图转换为决策表。 (5)根据决策表中的每一列设计测试用例。 三、实验内容 有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。 编写程序实现之,然后用因果图法对自动售货机设计测试用例并测试之。 要求: 1、编写程序,实现上述自动售货过程。(任选一种自己熟悉的语言,有无界面均可,实现相应的功能即可。) 2、用因果图法设计测试用例。 (1)正确画出因果图。(2)画出决策表。(3)给出测试用例。 提示:可按如下步骤进行: 1)分析这一段说明,列出原因和结果。 2)画出因果图。(所有原因结点列在左边,所有结果点列在右边。可以考虑建立中间结点,表示处理的中间状态。比如,可设如下几种中间状态:该找5角,可找5角,按下按钮、钱已付清) 3)画出决策表。 4)给出测试用例。 四、实验报告 实验报告提交内容:源程序清单、因果图、决策表。(测试用例有时间就设计,没有时间可以不设计) 一,因果图; 因果图-画条件和结果

因果图测试用例

1.引言 等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。 因果图(Cause-Effect Graphing)提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。 因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。 2.因果图介绍 2.1图例说明 1、4种符号分别表示了规格说明中向4种因果关系。如图2-1所示。 图2-1 因果图关系 2、因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。 3、ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。 2.2因果图概念 1、关系(图2-1 因果图关系) ①恒等:若ci是1,则ei也是1;否则ei为0。 ②非:若ci是1,则ei是0;否则ei是1。

③或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。 ④与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。 2、约束 输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。如图2-2所示。 图2-2因果图约束 .输入条件的约束有以下4类: ①E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。 ②I约束(或):a、b和c中至少有一个必须是1,即a、b 和c不能同时为0。 ③O约束(唯一);a和b必须有一个,且仅有1个为1。 ④R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。 B.输出条件约束类型 输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。 2.3因果图法设计测试用例步骤 1、分析待测得系统规格,找出原因与结果 分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。 2、画出因果图

软件工程课程设计(自动售货机)

《软件工程》课程设计报告

一、问题描述 (一)关于自动售货机 自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。 (二)自动售货机的设计 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、一角币、五分币和一分币。其它货币都被认为是假币。机器拒收假币,并将其从退币孔退出。当机器接收了有效的硬币之后,将之送入硬币储藏器。顾客支付的货币根据硬币的面值进行累加。 自动售货机装有货物分配器,每个分配器中包含0 个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果有货,且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将找零返回到退币孔。如果无货,则和顾客支付的货币值相等的硬币将被送到退币孔。如果顾客支付的货币值小于所选货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的硬币将从退币孔中退出。 二、需求分析 (一)UML自动售货机系统功能需求: 自动售货机系统是一种无一元等3个硬币投币口。顾客确认购货后,售货机可根据硬币的面值进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过

选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送加到退币孔。如果顾客支付的货币值少于所选择的分配器中的货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,将所投硬币从退币孔退出。 (二)UML自动售货机系统控制要求: 根据售货机自动控制系统的流程可以知道自动售货机的主要系统包括:计币系统、比较系统、选择系统、饮料供应系统、退币系统和报警系统。 1.计币系统: 当有顾额色买饮料时,投入的钱币经过感应器,感应器记忆投币的个数关且传送到检测系统(即电子天平)和计币系统。只有当电子天平测量的重量少于误差值时,允许计币系统进行叠加钱币,叠加的钱币数据存放在数据寄存器中。如果不正确时,认为是假币。既定出投币,既定出系统,等待新顾客。 2.比较系统: 投入完毕后,系统会把钱币数据和可以购买饮料的价格进行区间比较,当投入的钱币小于2元时,指示灯亮,显示投入的钱币不足。此时可以再投币或选择退币。当投稿的钱币在2~3元之间时,汔水选择指示灯长亮。当大于3元时,汔水和咖啡的指示灯同时长亮。此时可以选择饮料或选择退币。 3.选择系统: 比较电路完成后选择电路指示灯是长亮的,当按下汽水或咖啡选择时,相应的选择指示灯由长亮转为以1秒为周期闪烁。当饮料供应完毕时,闪烁同时停止。

测试用例设计方法之因果图法

测试用例设计方法之因果图法 (一)因果图法的来源 大家熟悉的等价类划分法和边界值分析法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等; 但是,如考虑所输入条件之间的相互组合,会由于组合情况数目相当大,需要大量的测试用例; 因果图法,是一种帮助人们系统地选择一组高效率测试用例的方法。(二)因果图法的特点 考虑输入条件间的组合关系; 考虑输出条件对输入条件的信赖关系,即因果关系; 测试用例发现错误的效率高; 能检查出功能说明中的某些不一致或遗漏; 因果图方法最终生产的就是判定表,它适合于检查程序输入条件和各种组合情况。 (三)因果图法基本步骤 1.分割功能说明书 对于规模比较大的程序来说,由于输入条件的组合数太大,所以很难整体上使用一个因果图。我们可以把它划分为若干部分,然后分别对每个部分使用因果图。例如,测试编译程序时,可以把每个语句作为一个部分。 2.识别出“原因”和“结果”,并加以编号 所谓原因,是指输入条件或输入条件的等价类;而结果则是指输出条件或输出条件的等价类。每个原因或结果都对应于因果图中的一个节点。当原因或结果成立(或出现)时,相应的节点取值为1,否则为0。 例如,有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下: 若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

分析这一段说明,我们可以列出原因和结果。 原因如下: ?投入1元硬币; ?投入5角硬币; ?按下“橙汁”按钮; ?按下“啤酒”按钮 结果 ?退还5角钱; ?送出“橙汁”饮料; ?送出“啤酒”饮料 3.根据功能说明书中规定的原因和结果之间的关系画出因果图 因果图的基本符号如图1所示: 1.因果图的基本符号 图中左边的节点表示原因,右边的节点表示结果。恒等、非、或、与的含义: ?恒等:若a=1,则b=1;若a=0,则b=0; ?非:若a=1,则b=0,若a=0,则b=1; ?或:若a=1或b=1或c=1,则d=1;若a= b= c=0,则d=0; ?与:若a= b= c=1,则d=1;若a=0或b=0或c=0,则d=0。 画因果图时,原因在左,结果在右,由上而下排列,并根据功能说明书中规定的原因和结果之间的关系,用上述基本符号连接起来。在因果图中还可以引入一些中间节点。

基于自动售货机的软件工程

面向对象分析实践大作业(40%) 下面是自动售货机系统的需求陈述,请 你: 1.编写分析和设计报告; 2.报告分需求分析、系统设计和对象设计三部分编撰,各部分应按相应的格式编写,并包含用例图、顺序图、类图、业务流程图、系统结构图等; 3.大作业的结构为: A项目需求说明 B需求分析报告 C系统设计报告 D对象设计报告 E分析设计过程说明:这部分介绍分析

和设计过程中使用了什么技术 需求陈述: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值 进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。如果分

配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。 参考资料:《软件工程》张海藩清华大学出版社 2009年第一版 下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模 型: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏

自动售货机测试用例

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

2 4."送出橙汁饮料 2 5."送出啤酒饮料 2.画出因果图 如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点: 1 1."投入1元硬币且押下饮料按钮 1 2."押下〖橙汁〗或〖啤酒〗的按钮 1 3."应当找5角零钱并且售货机有零钱找 1 4."钱已付清 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元硬币,售货机“零钱找完”灯亮。 12)在售货机没有零钱找的情况下,投入5角硬币,押下橙汁按钮,售货机“零钱找完”灯亮,并送出橙汁饮料。 13)在售货机没有零钱找的情况下,投入5角硬币,押下啤酒按钮,售货机“零钱找完”灯亮,并送出啤酒饮料。 14)在售货机没有零钱找的情况下,投入5角硬币,售货机“零钱找完”灯亮。 15)在售货机没有零钱找的情况下,押下橙汁按钮,售货机“零钱找完”灯亮。 16)在售货机没有零钱找的情况下,押下啤酒按钮,售货机“零钱找完”灯亮。

饮料自动售货机系统的分析与设计样本

饮料自动售货机系统的分析与设计 1.系统的分析 1.1 需求分析描述 自动售货机像磁卡电话、银行柜员机一样, 以方便、新颖、文明、昼夜服务等特点, 成为便民配套设施。如今的自动售货机能够为顾客提供多种服务。顾客能够根据自己的需要选择商品并投入钱币, 售货机接收钱币, 售出商品。 自动售货机是一种无人售货系统。售货时, 顾客投入硬币, 售货机进行真假币的检查, 若是假币拒绝接收, 若是有效硬币则进行累加。售货机装有若干个含有相同价格货物的货物分配器。顾客能够经过货物分配器选择货物, 如果有被选货物, 而且顾客支付的货币值不小于货物的价格, 货物将被传送给顾客, 同时余额返回到退币口。如果货币值小于货物价格, 则等待投币, 此时如果顾客取消本次活动, 那么之前所投的货币将从退币口中退出, 返回给顾客。 1.2 系统功能结构图

图1 体统功能结构图 1.3 用例图 图2 饮料自动售货系统用例图 1.4 系统类图的建立 系统的类图揭示了系统的整个结构。分析时先产生问题域中的对

象, 再抽象出类。在本系统中, 类有: 自动售货机、顾客、货币、货币累加器、货物、货物分配器、显示屏、取消按钮、选择按钮、事务、更新。 货币顾客 图3 饮料自动售货系统类图 1.5 动态模型的建立 从系统模型的角度, 静态模型定义了系统的结构和组成。任何实际的系统都是活动的, 都经过系统元素间的互动来实现系统。面向对象的许多方法在建立动态模型时首先写各种情况时的交互行为脚本, 经过对脚本的分析描绘动态模型。脚本是用例的一次具体执行过程, 一般包括正常情况脚本和异常情况脚本。系统的卖货物用例中, 顾客投入硬币, 系统检查硬币的有效性, 然后对有效硬币进行累加, 顾客选择货物及其数量, 系统送出货物; 这系列步骤

实验04.使用基本路径测试法求解“自动售货机”问题

实验报告 实验序号:04 实验项目名称:使用基本路径测试法求解“自动售货机”问题 一、实验目的及要求 理解基本路径覆盖测试法的概念和方法; 掌握使用Eclipse+JUnit+EclEmma进行基本路径覆盖测试的方法。二、实验设备(环境)及要求 开发环境:Eclipse 及以上版本;JUnit 及以上版本;文本编辑软件。 硬件要求:CPU PIV 以上,256M 内存,1G 硬盘空间。 系统要求:Windows98/Me/XP/NT/2000,IE 5 以上。 三、实验内容步骤 1.下载并安装Eclipse+JUnit+EclEmma实验环境; 2.通读自动售货机程序,并在Eclipse环境下运行该程序; 3.使用基本路径测试法设计测试用例,完成以下表格; 编号输入值 Type 输入值 money 状态预期输出实际情 况 001Beer5C各资 源剩 余Input Information Type: Beer; Money: 5 Cents; Change: 0 Current State Beer: 5 Orange Juice: 6 5 Cents: 7 1 Dollar: 6 002Orange Juice 5C各资 源剩 余 Input Information Type: OrangeJuice; Money: 5 Cents; Change: 0 Current State Beer: 6

Orange Juice: 5 5 Cents: 7 1 Dollar: 6 003Beer1D没有 啤酒Failure Information Beer Shortage 步骤: 1、解压eclemma软件包,并放到eclipse安装目录的dropins文件夹下: 2、重新启动eclipse软件,菜单栏会出现新的图标: 3、查看Windows的Customize perspective项中的Command Groups Availabiity 多了Coverage 项: 4、编写待测试类文件和测试Junit Test Case文件:

以中国象棋中走马的测试用例设计为例学习因果图的使用方法

以中国象棋中走马的测试用例设计为例学习因果图的使用方法。 分析中国象棋中走马的实际情况(下面未注明的均指的是对马的说明) 1如果落点在棋盘外,则不移动棋子; 2、如果落点与起点不构成日字型,则不移动棋子; 3、如果落点处有自己方棋子,则不移动棋子; 4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子; 5、如果不属于1-4条,且落点处无棋子,则移动棋子; 6、如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子; 7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。原因:结果: 1、落点在棋盘上; 2、落点与起点构成日字; 3、落点处为自己方棋子; 4、落点方向的邻近交叉点无棋子; 5、落点处无棋子; 6、洛点处为对方棋子(非老将); 7、洛点处为对方老将。21、不移动棋子; 22、移动棋子; 23、移动棋子,并除去对方棋子; 24、移动棋子,并提示战胜对方,结束游戏。 L2345678 111110000 2]101I00 3L3101c10 11111100 2200001 2101000 23(.1010] 测试 用例 A3 A8 AR A? R5 B4 RN ur Cl X6 SD PS 考虑结果不能同时发生,所以对其施加唯一约束施加异约束E。 根据因果图建立判定表:(分为两表)0。原因5、6、7不能同时发生,所以对其 添加中间节点11,目的是作为导出结果的进一步原因,简化因果图导出的判定表

注:1、以上判定表中由于表格大小限制没有列出最后所选的测试用例;2、第2表中部分列被合并表示不可能发生的现象;3、通过中间节点将用例的判定表简化为两个小表。减少工 作量。 四、根据判定表写测试用例表(略)

饮料自动售货机系统

百度文库- 让每个人平等地提升自我 南华大学 计算机科学与技术学院实验报告 (2012 ~2013学年度第2学期) 课程名称现代软件工程 实验名称饮料自动售货机系统 姓名Xx 学号Xx 班级软卓01班教师Xx 2013年5月

目录 实验目的...................................................................................................................................... - 0 -实验题目...................................................................................................................................... - 0 -饮料自动售货机系统.......................................................................................................... - 0 -实验结果...................................................................................................................................... - 0 -1.用例图.......................................................................................................................... - 0 -2.类图.............................................................................................................................. - 1 -3.时序图.......................................................................................................................... - 1 -4.活动图.......................................................................................................................... - 2 -放置货物活动图.......................................................................................................... - 3 - 计算金额活动图.......................................................................................................... - 4 - 给出饮料活动图.......................................................................................................... - 5 - 取消交易活动图.......................................................................................................... - 5 - 投掷硬币活动图.......................................................................................................... - 6 -

测试用例八大设计方法和实例

测试用例设计方法 1等价类划分 1.1 理论知识 等价类划分是一种典型的黑盒测试方法。这一方法完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。 等价类合理地假设:某个等价类的代表值,与该等价类的其他值,对于测试来说是等价的。 因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。 等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 1) 分类: 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能. 无效等价类:与有效等价类的定义恰巧相反. 设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性. 2)划分等价类的方法: 下面给出六条确定等价类的原则: ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效

基于自动售货机的软件工程(精)

面向对象分析实践大作业(40% 下面是自动售货机系统的需求陈述,请你: 1. 编写分析和设计报告; 2. 报告分需求分析、系统设计和对象设计三部分编撰, 各部分应按相应的格式编写,并包含用例图、顺序图、类图、业务流程图、系统结构图等; 3. 大作业的结构为: A 项目需求说明 B 需求分析报告 C 系统设计报告 D 对象设计报告 E 分析设计过程说明:这部分介绍分析 和设计过程中使用了什么技术 需求陈述: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币, 并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客

支付的货币值不小于该货物的价格, 货物将被分配到货物传送孔送给顾客, 并将适当的零钱返还到退币孔。如果分 配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物, 他投放进的货币将从退币孔中退出。 参考资料:《软件工程》张海藩清华大学出版社 2009年第一版 下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币, 并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏 器中。顾客支付的货币根据硬币的面值进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格, 货物将被分配到货物传送孔送给顾客, 并将适当的零钱返还到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物, 他投放进的货币将从退币孔中退出。 参考资料:《软件工程》张海藩清华大学出版社 2009年第一版 面向对象的分析 面向对象分析方法的核心思想是利用面向对象概念和方法为软件需求构造一组相关模型(对象模型,动态模型和功能模型 ,来获得关于问题域的全面认识。

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

测试用例设计—自动售货机因果图分析 命题 设计了一个自动售货机软件测试用例,用于处理单价为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美分”不是等价关系。从表面上看,他们都是“钱”,这似乎是相似的。然而,程序的处理是完全不同的。在“50美分”(因为标题规定所有商品都是50美分)之后,完全没有必要判断当前的自动售货机是否有任何变化,但是“1元”不是 有小变化,红灯亮,1元E投50美分选择商品,1元找50美分选择啤酒E选择橙汁V给啤酒给橙汁

饮料自动售货机系统的分析与设计

饮料自动售货机系统的分析与设计 1. 系统的分析 1.1 需求分析描述 自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。 自动售货机是一种无人售货系统。售货时,顾客投入硬币,售货机进行真假币的检查,若是假币拒绝接收,若是有效硬币则进行累加。售货机装有若干个含有相同价格货物的货物分配器。顾客可以通过货物分配器选择货物,如果有被选货物,并且顾客支付的货币值不小于货物的价格,货物将被传送给顾客,同时余额返回到退币口。如果货币值小于货物价格,则等待投币,此时如果顾客取消本次活动,那么之前所投的货币将从退币口中退出,返回给顾客。 1.2 系统功能结构图 系统 顾客供货人查看价格 购 买饮料 查看饮料 添加饮料 查看钱币 取走钱币 图1 体统功能结构图 1.3 用例图

买货物 货币处理 货币检查 货币累加 提供货物 提取货款 选购货物 顾客 送货人 货币 收银人 系统 <> <> <> <> <> <> <> <> 图2 饮料自动售货系统用例图 1.4 系统类图的建立 系统的类图揭示了系统的整个结构。分析时先产生问题域中的对象,再抽象出类。在本系统中,类有:自动售货机、顾客、货币、货币累加器、货物、货物分配器、显示屏、取消按钮、选择按钮、事务、更新。 -金额 更新-时期-时间 事物 -金额 货币累加器-序号 自动售货机 -金额 -货物价格 显示屏 -金额 退币口取消按钮 -号码 选择按钮 -序号 -货物名称-货物价格 货物分配 -名称-价格 货物货币顾客 组成 1.n 修改 显示 1 1 1 1.n 1.n 处理 1.n 产生 0.n 保存 确认 选择 取消 返还 保管 1.n 1 图3 饮料自动售货系统类图

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

命题 有一个处理单价为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、条件“有零钱”和结果“红灯亮”是一个“非”的关系,当“有零钱”的时候,红灯是不亮的,而当售货机中“没有零钱”的时候,红灯必须要亮的。 2、条件“投1元”和条件“投5角”是一个“E”的关系,这两个动作不可能同时发生,即同时投入1元钱和5角钱(不能同时为真);但是我们允许即“不投入1元钱”也“不投入5角钱”(可以同时为假)。 3、条件“选啤酒”和条件“选橙汁”是一个“E”的关系,这两个动作不可能同时发生,即同时“选择啤酒”和“选择橙汁”(不能同时为真);但是我们允许即“不选择啤酒”也“不选择橙汁”(可以同时为假)。 4、条件“选啤酒”和条件“选橙汁”对于程序处理过程是等价的,即二者无论是价格还是系统的处理方法都是相同的,因此这两个条件可以合并为一个中间节点。而且这两个条件之间使用“或”的关系。 5、注意,条件“投1元”和条件“投5角”不是等价关系,表面上看,他们都是“钱”,好像差不多,但是对于程序的处理过程确实完全不同的,“投5角”后完全不用判断当前售货机中是否有零钱(因为题目中规定所有的商品都是5角钱),而“投1元”就不行了。 因果图-送出商品 现在我们从结果的角度考虑,要想“出啤酒”或者“出橙汁”,从现实买卖中分析必须要有什么先决条件呢?是的,就是“你的钱要付清”,而且你一定要选择了“啤酒”或者“橙汁”才行。而在上面的已有因果图中,我们无法找到“钱付清”的因素,因此这时候我们可以试着再加一个中间节点,就叫“钱付清”吧。 要想获得选中的商品,则条件“钱付清”和条件“选啤酒/选橙汁”必须要同时成立,因此是“与”的关系。 因果图-应该找零钱 根据题意,当投入1元钱,而且又选中了某一种商品的时候,系统是需要找零钱的。而现有条件和结果中并没有涉及到“应该找零钱”这种情况,因此我们还需要增加一个中间节点“应该找零钱”。

实验使用基本路径测试法求解“自动售货机”问题

实验使用基本路径测试法求解“自动售货机”问题

————————————————————————————————作者:————————————————————————————————日期:

实验04:使用基本路径测试法求解“自动售货机”问题实验学时:2 实验类型:设计 实验要求:必修 一、实验目的 ●理解并掌握基本路径覆盖测试法,能够实际运用; ●使用Eclipse+JUnit+EclEmma进行单元测试。 二、实验要求 ●开发环境:Eclipse v3.7及以上版本;JUnit v4.10及以上版本;文本编辑 软件。 ●硬件要求:CPU PIV 以上,256M 内存,1G 硬盘空间。 ●系统要求:Windows98/Me/XP/NT/2000,IE 5 以上。 三、实验内容 1.下载并安装Eclipse+JUnit+EclEmma实验环境; 2.通读自动售货机程序,并在Eclipse环境下运行该程序; 3.使用基本路径测试法设计测试用例; ?绘制程序控制流图; ?计算环路复杂度; ?确定基本路径; ?设计测试用例。 4.完整填写以下表格: 编号输入值 Type 输入值 money 状态预期输出实际情 况 001 Beer 5C 各资 源剩 余Input Information Type: Beer; Money: 5 Cents; Change: 0

Current State Beer: 5 Orange Juice: 6 5 Cents: 7 1 Dollar: 6 002 OrangeJ uice 5C 各资 源剩 余 Input Information Type: OrangeJuice; Money: 5 Cents; Change: 0 Current State Beer: 6 Orange Juice: 5 5 Cents: 7 1 Dollar: 6 003 Beer 1D 没有 啤酒Failure Information Beer Shortage … … 5.编写JUnit测试用例,并运行程序,保证所有测试用例通过测试; 6.使用EclEmma检测测试用例覆盖率,保证覆盖率达到100%。 四、实验结果检查与评定 ●提交时间:2013年4月24日之前/2013年5月1日22:00之前 ●提交地址:学习委员邮箱 ●文档命名方式:12软件专升本X班_0907052XXX_张三_实验04.doc

软件工程饮料自动售货机系统

软件工程饮料自动售货机系统

软件工程课程大作业饮料自动售货机系统 姓名:班级 学号: 专业: 二零一一年十一月二十九日

一、饮料自动售货机描述 1.1关于饮料自动售货机 自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。 1.2饮料自动售货机的设计 该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、找零钱等功能。与系

统交涉的人有两类:送货员和顾客。送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况,并根据计划适当添加饮料、钱币或取走适当的钱币。同时送货员也可以根据需要增加饮料的种类或修改饮料的价格。顾客根据需要选择饮料,投入钱币,并等待售货机的响应。售货机(所设计的系统)所做的响应:如果售货机中没有该种饮料,则退回顾客所投钱币,交易失败。否则,如果售货机中有该种饮料,则判断顾客所投钱币是否足够,如果不够,则提示顾客交易失败,并退回钱币。如果顾客所投的钱币刚好够(不需要找零钱),则售出饮料,交易结束。如果需要找零钱,则判断是否有适当的零钱可以找,如果有,则售出饮料,找出零钱,交易结束。否则,退回钱币,交易失败。当然,实际生活中的售货机可能有更加强大的功能和更完善的处理,这里只模拟一个售货机系统,所以只实现其核心原理,并练习和提高分析问题能力和编程能力。

二、需求分析 2.1 饮料自动售货机系统功能需求: 自动售货机系统是一种无一元等3个硬币投 币口。顾客确认购货后,售货机可根据硬币的面值进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送加到 退币孔。如果顾客支付的货币值少于所选择的分配器中的货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,将所投硬币从退币孔退出。 2.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.设计测试用例 1)在售货机有零钱找的情况下,投入1元硬币,押下橙汁按钮,找回5角硬币并送出橙汁 饮料。 2)在售货机有零钱找的情况下,投入1元硬币,押下啤酒按钮,找回5角硬币并送出啤酒 饮料。 3)在售货机有零钱找的情况下,投入1元硬币,系统不做任何处理。 4)在售货机有零钱找的情况下,投入5角硬币,押下橙汁按钮,送出橙汁饮料。 5)在售货机有零钱找的情况下,投入5角硬币,押下啤酒按钮,送出啤酒饮料。 6)在售货机有零钱找的情况下,投入5角硬币,系统不做任何处理。 7)在售货机有零钱找的情况下,押下橙汁按钮,系统不做任何处理。 8)在售货机有零钱找的情况下,押下啤酒按钮,系统不做任何处理。 9)在售货机没有零钱找的情况下,投入1元硬币,押下橙汁按钮,售货机“零钱找完”灯 亮,并退还1元硬币。 10)在售货机没有零钱找的情况下,投入1元硬币,押下啤酒按钮,售货机“零钱找完”灯 亮,并退还1元硬币。 11)在售货机没有零钱找的情况下,投入1元硬币,售货机“零钱找完”灯亮。 12)在售货机没有零钱找的情况下,投入5角硬币,押下橙汁按钮,售货机“零钱找完”灯 亮,并送出橙汁饮料。 13)在售货机没有零钱找的情况下,投入5角硬币,押下啤酒按钮,售货机“零钱找完”灯 亮,并送出啤酒饮料。 14)在售货机没有零钱找的情况下,投入5角硬币,售货机“零钱找完”灯亮。 15)在售货机没有零钱找的情况下,押下橙汁按钮,售货机“零钱找完”灯亮。 16)在售货机没有零钱找的情况下,押下啤酒按钮,售货机“零钱找完”灯亮。

相关文档
相关文档 最新文档