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

合集下载

软件测试题目及其答案

软件测试题目及其答案

1.动手实践题。

火车票退款业务流包括多个业务环节,其中比较重要的一个环节就是退票金额的计算。

请先熟悉下面的退票业务需求。

退票业务需求描述:(1)对开车前15天(不含)以上退票的,不收取退票费。

(2)票面乘车站开车前48小时以上的,退票时收取票价5%的退票费。

(3)开车前24小时以上、不足48小时的,退票时收取票价10%的退票费。

(4)开车前不足24小时的,退票时收取票价20%的退票费。

(5)上述计算的尾数以5角为单位,尾数小于2.5角的舍去、2.5角以上且小于7.5角的计为5角、7.5角以上的进为1元。

(6)开车前2小时并且没有打印纸质车票,可以在网上退票,晚于开车前2小时或者已经打印了车票,只能在车站退票窗口办理。

假设用户张三购买了一张2019年6月30日上午07:52(2019-06-30-07)的火车票,请尝试运用场景法设计该用户退票流程的测试用例。

订单参见图6-26。

图6-26 火车票订单答案:用场景法设计测试用例。

2.动手实践题。

某程序有4个输入因子A,B,C,D,其水平分别为: A: A1,A2 B: B1,B2,B3 C: C1,C2,C3,C4 D: D1,D2,D3 试用PICT工具为该程序设计测试用例。

答案:创建test1.txt文件,保存到PICT安装目录下,文件内容如下示:打开CMD命令控制台,切换到PICT安装目录,运行PICT命令生成测试用例,如下图所示:最终生成的测试用例如下图所示:3.动手实践题。

设有3个独立的查询条件,根据这些查询条件可以获得特定员工的个人信息。

员工号(ID)员工姓名(Name)员工邮件地址(Email)每个查询条件包括3种情况:不填、填上正确的内容、填上错误的内容。

请用正交试验法为其设计测试用例。

答案:员工号(ID):1001、NULL、A!员工姓名(Name):Alice、NULL、A!001员工邮件地址(Email):************、NULL、A!001选择正交表L9(34),共9条测试用例,如下表示。

白盒测试之基本路径测试法

白盒测试之基本路径测试法

白盒测试之基本路径测试法白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。

其中运用最为广泛的是基本路径测试法。

基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。

设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。

在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。

包括以下4个步骤和一个工具方法:1. 程序的控制流图:描述程序控制流的一种图示方法。

2. 程序圈复杂度:McCabe复杂性度量。

从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。

3. 导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。

4. 准备测试用例:确保基本路径集中的每一条路径的执行。

工具方法:图形矩阵。

是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。

程序的控制流图:描述程序控制流的一种图示方法。

圆圈称为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句流图只有二种图形符号:图中的每一个圆称为流图的结点,代表一条或多条语句。

流图中的箭头称为边或连接,代表控制流任何过程设计都要被翻译成控制流图。

如何根据程序流程图画出控制流程图?在将程序流程图简化成控制流图时,应注意:●在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。

●边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。

如下页图所示独立路径:至少沿一条新的边移动的路径基本路径测试法的步骤:第一步:画出控制流图流程图用来描述程序控制结构。

可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。

在流图中,每一个圆,称为流图的结点,代表一个或多个语句。

测试答案

测试答案
C.证明软件正确D.发现软件错误
9黑盒测试法是根据产品的(A)来设计测试用例的。
A.功能B.输入数据C.应用范围D.内部逻辑
10V模型描述了软件基本的开发过程和测试行为,描述了不同测试阶段与开发过程各阶段的对应关系。其中,集成测试阶段对应的开发阶段是(C)。
A.需求分析阶段B.概要设计阶段
C.详细设计阶段D.编码阶段
1.利用等价类划分方法
输入三个整数作为三边的边长构成三角形。构造测试用例进行测试(注:三角形可能为一般三角形、等腰三角形、等边三角形等)。
测试用例
2.给出判定表和设计测试用例
假设一个中国的航空公司规定:
中国去欧美的航线所有座位都有食物供应。每个座位都可以播放电影。
中国去非欧美的国外航线都有食物供应,只有商务舱可以播放电影。
A.12 B.8 C.6 D.4
20软件测试使用各种术语描述软件出现的问题,以下叙述正确的是(A)。
A.软件错误(error)是指在软件生命周期内的不希望或不可接受的人为错误,其结果是导致软件故障的产生
B.软件缺陷(defect)是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差
C.软件故障(fault)是指软件运行过程中出现的一种不希望或不可接受的外部状态
D.试图证明软件在软件生命周期各个阶段以及阶段间的逻辑协调性、完备性和正确性
12与设计测试用例无关的文档是(A)。
A.项目开发计划B.需求规格说明书
C.设计说明书D.源程序
13(B)不是正确的软件测试目的。
A.尽最大的可能找出最多的错误
B.设计一个好的测试用例对用户需求的覆盖度达到100%
C.对软件质量进行度量和评估,以提高软件的质量
7用边界值分析法,假定10≤X≤100,那么X在测试中应该取的边界值是__B____。

EDA实验报告---自动售货机

EDA实验报告---自动售货机

自动售货机的设计一.实验内容:本自动售货机系统,结合EDA技术,采用ALTERA公司可编程逻辑器件(CPLD)EPM7128SLC84-15芯片作为控制核心,再配以必要的外围电路从而实现只销售两种饮料,售价均为15元,可以找零和退币等功能的EDA应用系统。

芯片的设计是以MAX_PLUS II 作为开发平台,VHDL语言作为开发语言,使用掌宇公司CIC_310 CPLD/FPGA数字开发系统完成软件测试。

自己制作下载板与外围电路。

二.实验分析:本自动售货机只销售两种罐装饮料。

售价均为15元。

顾客可以由两个不同投币孔分别投入3个5元硬币或2个10元硬币。

一次交易只能买一罐,且自动找零。

只要按下取消键就会马上无条件退币。

本设计的硬件电路用2个按键电路代替2个投币孔,以LED点亮的数量显示各币种的投入数量,在以4Hz闪烁的LED来显示退币种类与数量。

因为投币是计次电路,应先经过抖动消除电路处理。

本设计采用1000Hz的系统时钟信号来控制所有买卖行为。

系统中设计的复位键为管理人员所用,并未在用户界面中设计。

三.系统设计流程图:四.自动售货机外观图:(为指示灯)五.电路原理图六.PCB图:根据PROTEL99画的系统原理图,成生PCB图。

然后进行布局与布线。

注意:布线时将晶振这种易产生噪声的器件的输出端与芯片时钟输入端的连线尽量布为直线;将电源与地线的宽度定为30mil到100mil之间。

本系统的电流不是很大,所以不用将板子的两面分别布成电源与地。

七.系统实物图:八.软件系统框图九.源程序:1.产生系统频率和退币信号电路首先要根据硬件电路的晶振频率确定分频系数,先产生系统频率,在进一步分频产生退币信号。

由于掌宇公司的开发系统上的晶振频率为20MHz,所以要分频系数分别为20000(COUNT)和250(COUNT1)。

(注:由于在自制的下载板上使用了1MHz的有源晶振,所以把程序中的COUNT的范围改为0到1000即可。

自动售货机实验报告

自动售货机实验报告

自动售货机实验报告自动售货机实验报告引言:自动售货机是一种现代化的商业销售设备,它通过自动化技术实现商品销售和支付功能,为消费者提供了便利和选择。

本实验旨在探究自动售货机的工作原理、销售模式以及对消费者行为的影响。

一、自动售货机的工作原理自动售货机通过内部的电子系统和机械结构实现商品的储存、选择、售卖和支付等功能。

其工作原理主要包括以下几个步骤:1. 商品储存:自动售货机内部设置有多个货道,每个货道可以储存一种商品。

商品通过传送带或弹簧等装置储存在货道中,保持整齐有序。

2. 商品选择:消费者通过触摸屏或按键选择所需商品。

自动售货机内部的电子系统会根据消费者的选择信号,控制相应货道的开关门,将商品送至取货口。

3. 商品售卖:当消费者选择的商品位于取货口时,自动售货机会打开门,消费者可以取走商品。

部分自动售货机还配备了自动找零功能,方便消费者支付。

4. 支付方式:自动售货机通常支持多种支付方式,如硬币、纸币、银行卡、移动支付等。

消费者可以根据自己的需求选择适合的支付方式。

二、自动售货机的销售模式自动售货机的销售模式主要分为自动售卖和自助选购两种。

1. 自动售卖:在这种模式下,自动售货机会事先设定好商品的价格,并通过内部的计算机系统实时监测库存和销售情况。

当商品售罄或库存不足时,自动售货机会停止销售并显示相应信息。

这种模式适用于一些固定价格和库存较少的商品,如饮料、零食等。

2. 自助选购:在这种模式下,自动售货机提供了更多的选择和定制化服务。

消费者可以根据自己的需求选择商品的种类、数量和价格等,并通过自动售货机完成支付。

这种模式适用于一些需要个性化定制的商品,如鲜花、礼品等。

三、自动售货机对消费者行为的影响自动售货机的出现改变了传统的购物方式,对消费者行为产生了一定的影响。

1. 购物便利性:自动售货机的24小时不间断运营,为消费者提供了更加便捷的购物体验。

消费者可以在任何时间和地点购买所需商品,无需排队等待。

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

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

实验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.完整填写以下表格:5.编写JUnit测试用例,并运行程序,保证所有测试用例通过测试;6.使用EclEmma检测测试用例覆盖率,保证覆盖率达到100%。

四、实验结果检查与评定●提交时间:2013年4月24日之前/2013年5月1日22:00之前●提交地址:学习委员邮箱●文档命名方式:12软件专升本X班_0907052XXX_张三_实验04.doc实验报告实验序号:实验项目名称:附录问题描述自动售货机程序:●若投入5角钱或1元钱的硬币,按下“橙汁”或“啤酒”按钮,则相应的饮料就送出来;●若售货机没有零钱找,则显示“零钱找完”的红灯亮,这是再投入一元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;●若有零钱找,则显示“零钱找完”的红灯灭,在送出饮料的同时退还5角硬币。

程序流程图实验源代码(有缺陷的源代码)public class Sale Mac hine {priv ate in t c ount OfB eer, c o untO fOr ang eJu ice, co unt OfF i veCe nts, c oun tOfO neD oll ar;priv ate St rin g[] typ eOf Goo d s = {"B eer", "Ora nge Jui ce"};priv ate St rin g re sul tOf Dea l;publ ic Sal eMa chin e(){init ial();}publ ic voi d i niti al(){coun tOfBee r = 6;coun tOfOra nge Juic e = 6;coun tOfFiv eCe nts= 6;coun tOfOne Dol lar = 6;}publ ic Sal eMa chin e(i nt fiv e Cent s, int on eDol lar, i nt n umOf Bee r, int num OfO ran ge) //便于测试的初始化函数{coun tOfFiv eCe nts= f ive Cen t s;coun tOfOne Dol lar = o neD oll a r;countOf Bee r = num OfB eer;coun tOfOra nge Juic e = nu mOf O rang e;}publ ic Str ing cur ren tSt ate(){Stri ng sta te = "C urr ent St a te\n" +"Be er: "+ c oun tOf Bee r +"\n"+"Or ang e J uic e: " +co unt Of Oran geJ uic e +"\n" +"5 Cen ts: "+ c oun tOf Fiv eC ents + "\n" +"1 Dol lar: " + cou ntO fOn eD olla r;retu rn sta te;}publ ic Str ing ope rat ion(St r ing typ e, Str ing mon ey)//ty pe是用户选择的产品,m one y是用户投币种类{if(m oney.e qua lsIg nor eCa se("5C")) //如果用户投入5角钱{if(t ype.eq ual s(ty peO fGo ods[0]))//如果用户选择啤酒{if(c oun tOf Bee r>0)//如果还有啤酒{coun tOf Bee r--;coun tOf Fiv eCe nts++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"Ty pe: Be er; Mo ney: 5 Ce nt s; C han ge: 0\n\n" + currentSta te();retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "B eer Sh ort a ge";retu rn res ult OfDe al;}}else if (t ype.equ als(ty peO f Good s[1]))//用户选择橙汁{if(c oun tOf Ora ngeJ uic e > 0){coun tOf Ora nge Juic e--;coun tOf Fiv eCe nts++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"Ty pe: Or ang eJu ice; M one y: 5 C ent s; Cha nge: 0\n\n" + currentSta te();retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}else if(mo ney.equ als Ign ore C ase("1D"))//如果用户投入一元钱{if(c oun tOf Fiv eCen ts>0) //如果用户投入一元钱{if(c oun tOf Fiv eCen ts> 0) //如果用户有零钱{if(t ype.eq ual s(ty peO fGo ods[0])&&co unt OfB eer>0)//如果用户选择啤酒而且还有啤酒{coun tOf Bee r--;coun tOf Fiv eCe nts--;coun tOf One Dol lar++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"yp e: Bee r; M one y: 1 Do lla r; Ch ang e: 5 Ce nts\n\n"+ currentSta te();retu rn res ult OfDe al;}else if (t ype.equ als(ty peO f Good s[1]))//如果用户选择橙汁而且还有橙汁{coun tOf Ora nge Juic e --;coun tOf Fiv eCe nts--;coun tOf One Dol lar ++;resu ltO fDe al= "I npu t I nfo r mati on: \n" +"Ty pe: Or ang eJu ice; M one y: 1 D oll ar; Ch ange: 5 Cents\n\n" + curr ent Sta te();retu rn res ult OfDe al;}else{if(t ype.eq ual s(ty peO fGo ods[0])&&co unt OfO rang eJu ice<=0){resu ltO fDe al= "F ail ue Inf o rmat ion \n" +"Be er Sho rta g e";retu rn res ult OfDe al;}else if(ty pe.equa ls(typ eOf G oods[1])&&cou ntOf Ora nge Jui c e<=0){resu ltO fDe al= "Fai lur e Info r mati on \n"+"O ran geJ uice S hor tage";retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "C han ge Sho r tage";retu rn res ult OfDe al;}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "M one y E rro r";retu rn res ult OfDe al;}}resu ltOfDe al = "F ail ure In f orma tio n \n"+ "M one y E rro r";retu rn res ult OfDe al;}}测试用例示例代码:import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class SaleMachineTest {SaleMachine saleMachine = new SaleMachine();@Beforepublic void setUp() throws Exception {}@Testpublic void testOperation1() {String expectedResult = "Input Information \n" +"Type: OrangeJuice; Money: 5 Cents; Change: 0\n\n" +"Current State\n" +"Beer: 6\n" +"Orange Juice: 5\n" +"5 Cents: 7\n" +"1 Dollar: 6";assertEquals(expectedResult,saleMachine.operation("OrangeJuice", "5C"));}}。

自动售货机测试用例

自动售货机测试用例

题目:有一个处理单价为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元硬币,售货机“零钱找完”灯亮。

《软件测试技术》 实验一 实验报告

《软件测试技术》 实验一 实验报告

《软件测试技术》实验报告实验一单元测试专业:班级:学号:姓名:完成时间:2020年月日实验一单元测试(4学时)实验类别:基本实验实验目的:1、掌握黑盒测试技术,并能应用黑盒测试技术设计测试用例。

2、掌握白盒测试技术,并能应用白盒测试技术设计测试用例。

3、掌握对测试用例进行优化设计方法。

4、掌握单元测试技术,并按单元测试的要求设计测试用例。

5、掌握一种单元测试工具的使用。

实验内容:一、黑盒测试题目:选择1个完成。

1.题目一:电话号码问题某城市电话号码由三部分组成。

它们的名称和内容分别是:(1)地区码:空白或三位数字;(2)前缀:非'0'或'1'的三位数字;(3)后缀:4位数字。

假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。

根据该程序的规格说明,作等价类的划分,并设计测试方案。

2.题目二:三角形问题根据下面给出的规格说明,利用边界值测试的方法,给出足够的测试用例。

“一个程序读入三个整数。

把此三个数值看成是一个三角形的三个边。

这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。

”3.题目三:日期问题用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、day 和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。

例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。

(1) 分析各种输入情况,列出为输入变量month 、day 、year 划分的有效等价类。

(2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。

(3) 根据(1) 和(2) ,画出简化后的决策表。

4.题目四:自动售货机问题向自动售货机中投入1元或5角硬币,并按下【橙汁】或【可口可乐】按钮,则相应饮料送出来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
实验序号:04 实验项目名称:使用基本路径测试法求解“自动售货机”问题
步骤:
1、解压eclemma软件包,并放到eclipse安装目录的dropins文件夹下:
2、重新启动eclipse软件,菜单栏会出现新的图标:
3、查看Windows的Customize perspective项中的Command Groups Availabiity 多了Coverage项:
4、编写待测试类SaleMachine.jav a文件和测试Junit Test Case文件SaleMachineTest.jav a:
5、先点击运行看看,覆盖了33.1%:
6、分析:红色代表未执行、黄色代表条件没有全部执行、绿色代表执行过了:
7、继续修改测试代码,直到覆盖率达到100%:
共编写了12个测试用例,使待测试代码100%被覆盖,运行如图:
四、实验结果与数据处理
a、最终待测试代码如下:
public class SaleMachine {
private int countOfBeer, countOfOrangeJuice, countOfFiveCents, countOfOneDollar;
private String[] typeOfGoods = {"Beer", "OrangeJuice"};
private String resultOfDeal;
public SaleMachine()
{
initial();
}
public void initial()
{
countOfBeer = 6;
countOfOrangeJuice = 6;
countOfFiveCents = 6;
countOfOneDollar = 6;
}
public SaleMachine(int fiveCents, int oneDollar, int numOfBeer, int。

相关文档
最新文档