实验使用基本路径测试法求解“自动售货机”问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验使用基本路径测试法求解“自动售货机”问题
————————————————————————————————作者:————————————————————————————————日期:
实验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
实验报告
实验序号:实验项目名称:
学号姓名专业、班
实验地点指导教师实验时间
一、实验目的及要求
二、实验设备(环境)及要求
三、实验内容与步骤
四、实验结果与数据处理
五、分析与讨论
六、教师评语
成绩
签名:
日期:
附录
问题描述
自动售货机程序:
●若投入5角钱或1元钱的硬币,按下“橙汁”或“啤酒”按钮,则相应
的饮料就送出来;
●若售货机没有零钱找,则显示“零钱找完”的红灯亮,这是再投入一元
硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;
●若有零钱找,则显示“零钱找完”的红灯灭,在送出饮料的同时退还5
角硬币。
程序流程图
实验源代码(有缺陷的源代码)
public class Sale Mac hin e {
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;
coun tOfBee 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角钱