黑盒测试实验报告.docx
- 文档编号:9100727
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:33
- 大小:22.93KB
黑盒测试实验报告.docx
《黑盒测试实验报告.docx》由会员分享,可在线阅读,更多相关《黑盒测试实验报告.docx(33页珍藏版)》请在冰豆网上搜索。
黑盒测试实验报告
黑盒测试实验报告
1《软件测试技术
》实验报告
2实验序号:
04
实验项目名称:
黑盒测试
3一、实验目的及要求掌握用等价类、边界值分析法、因果图的方法设计测试用例二、实验设备(环境)及要求实验在计算机系的机房进行,安装了VC6.0,JavaSDK,TurboC等软件,学生能采用C语言,C++,或Java语言进行编程。
三、实验内容与步骤任务一:
佣金问题问题描述如下:
一酒水销售公司指派销售员销售各种酒水。
白酒卖168元/瓶,红酒卖120元/瓶,啤酒卖5元/瓶。
白酒每月的供应量为5000瓶,红酒为3000瓶,啤酒为30000瓶,各个销售员每月至少要售出白酒50瓶,红酒30瓶,啤酒300瓶。
月末,每个销售员上报他所在区域的销售业绩。
这样酒水销售公司就知道了当月的销售情况,并根据销售额计算佣金提成如下:
2万以下(含):
4%;2万(不含)~4.5万(含):
1%4.5万以上(不含):
0.5%这样,佣金程序生成月份销售报告,汇总售出的白酒、红酒和啤酒总数,销售公司的总销售额和各个销售员的佣金。
这个问题分为三个不同的部分:
输入数据部分,用来处理输入数据的有效性;销售额计算部分;佣金(提成)计算部分.
1、充分考虑输入有效性校验,编写佣金问题的代码;2、按照等价类划分的思想,设计等价类测试用例;1)佣金问题中,首先分析输入和输出,注意分析佣金问题中给出和隐含的
对输入条件的要求:
2)针对输入进行等价类划分,形成等价类列表,并为每一个等价类编号; 3)从等价类划分的表格中设计测试用例:
为有效等价类设计测试用例,为每一个无效等价类至少设计一个测试用例3、执行测试,记录发现的问题。
任务二:
下一天问题1、对于Ne_tDate问题,分析它的输入限制; 2、从输入限制的边界设计测试用例; 3、执行测试,记录结果。
任务三:
自动售货机问题有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:
若投入5角钱或1元钱的硬币,押下[橙汁]或[啤酒]的按钮,则相应的饮料酒送出来。
若售货机没有零钱找,则一个显示[零钱找完]的红灯亮,这时再投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示[零钱找完]的红灯灭,在送出饮料的同时退还5角硬币。
1、分析这一段说明,列出原因和结果
2、画出因果图。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
中间结点:
1)投入1元硬币且押下饮料按钮
2)押下〖橙汁〗或〖啤酒〗的按钮
3)应当找5角零钱并且售货机有零钱找
4)钱已付清
3、转换成判定表
4、在判定表中,把不可能出现的情况删去。
5、最后根据判定表中剩下的列作为确定测试用例的依据,设计测试用例。
6、实验报告要求及记录、格式四、程序调试与结果1、佣金问题
1)划分等价类并编号,下表等价类划分的结果
输入等价类有效等价类无效等价类白酒数量○1在50~5000之间○2在0~49之间○3在5000以上不包括5000红酒数量○4在30~3000之间○5在0~29之间○6在3000以上不包括3000
啤酒数量○7在300~30000之间○8在0~299之间○9在30000以上不包括300002)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、○4、○7,设计的测试用例如下:
测试数据期望结果覆盖的有效等价类
(55,40,400)
输入有效①、○4、○7
3)为每一个无效等价类设计一个测试用例,设计结果如下:
测试数据期望结果覆盖的无效等价类(30,40,400)
输入无效○2(5500,40,400)
输入无效○3(55,25,400)
输入无效○5
(55,4000,400)
输入无效○6(55,75,250)
输入无效○8(55,75,33000)
输入无效○9
4)测试结果:
所有测试都成功,且测试的覆盖率为百分百
2、Ne_tDate问题
1)分析它的输入限制
Ne_tDate是一个有三个变量(月份、日期和年)的函数。
函数返回输入日期后面的那个日期。
变量月份、日期和年都是整数值,并满足以下条件:
c1:
1<=月份<=12c2:
1<=日期<=31c3:
1812<=年<=20__
2)边界值测试设计编号输入期望输出YearMonthDay0011993-115Month不在1~12中0021993015Month不在1~12中00319931151993年1月16日004199311151993年11月16日
005199312151993年12月16日00619931315Month不在1~12中
00719936-1Day不在1~31中008199360Day不在1~31中0091993611993年6月2日01019936151993年6月16日01119936291992年6月30日01219936301992年7月1日0131993631Day不在1~30中01419932-1Day不在1~29中015199320Day不在1~29中0161993211993年2月2日01719932151993年2月16日01819922281993年2月29日02919932281993年3月1日01919922291993年3月1日0201993229平年2月没有29号0211993230Day不在1~31中0221993231Day不在1~31中023199312-1Day不在1~31中0241993120Day不在1~31中02519931211993年12月2日026199312301993年12月31日027199312311994年1月1日02819931232Day不在1~31中03019931-1Day不在1~31中031199310Day不在1~31中0321993111993年1月2日03319931301993年1月31日
03419931311993年2月1日0351993132Day不在1~31中3)测试结果:
所有测试都成功,且测试的覆盖率为百分百
3、自动售货机问题1)分析自动售货机中一共存在5个条件和5个结果:
条件:
C1、售货机有零钱找
C2、投入1元硬币
C3、投入5角硬币
C4、按下橙汁按钮
C5、按下啤酒按钮结果:
E1、售货机“零钱找完”灯亮
E2、退还1元硬币
E3、退还5角硬币
E4、送出橙汁饮料
E5、送出啤酒饮料2)因果图的分析结果
有零钱选橙汁选啤酒投5角投1元红灯亮出橙汁出啤酒找5角找1元EE选商品钱付清VVVV应该找零钱V能够找零钱VV4)有效的条件组合构成的判定表
输入C10000000011111111C21110000011100000C30001110000011100C40100101001001010C50010010100100101
结果E11110000000000000E21110000000000000E30001000001100000E40000100001001000E500000100001001005)测试用例编号输入值状态期望值001(cola,1D)
有零钱TypeError002(OrangeJuice,1D)
有零钱送出橙汁,退5角003(Beer,1D)
有零钱送出啤酒,退5角004(cola,5C)
有零钱TypeError005(OrangeJuice,5C)
有零钱送出橙汁
006(Beer,5C)
有零钱送出啤酒007(OrangeJuice,4C)
有零钱MoneyError008(Beer,4C)
有零钱MoneyError009(cola,1D)
无零钱红灯亮,退1元010(OrangeJuice,1D)
无零钱红灯亮,退1元011(Beer,1D)
无零钱红灯亮,退1元012(cola,5C)
无零钱退5角013(OrangeJuice,5C)
无零钱送出橙汁014(Beer,5C)
无零钱送出啤酒015(OrangeJuice,4C)
无零钱MoneyError016(Beer,4C)
无零钱MoneyError6)测试结果:
所有测试都成功,且测试的覆盖率为百分百
五、分析与讨论该实验借助了Eclipse+JUnit+EclEmma进行了测试。
可以将代码实现的功能过一遍。
更快捷的找到自己的测试用例的不足。
六、教师评语
签名____:
日期:
成绩
附件:
41、佣金问题5实现代码:
6packagetest4;7
8importjava.util.Scanner;9
10publicclassmission{11
12
doubletotalspirit=0;//白酒总销售量13
doubletotalredwine=0;//红酒总销售量14
doubletotalbeer=0;//啤酒总销售量15
16
doublespiritprice=168;//白酒的单价17
doubleredwineprice=120;//红酒的单价18
doublebeerprice=5;//啤酒的单价19
20
doublespiritsales;21
doubleredwinesales;22
doublebeersales;23
doublesales;24
25
doublemission;//佣金26
StringresultSales;27
28
29
publicmission(doublespirit,doubleredwine,doublebeer)30
{31
totalspirit+=spirit;32
totalredwine=+redwine;33
totalbeer+=beer;34
}35
publicStringoperation(doublespirit,doubleredwine,doublebeer)36
{37
if(spirit>=50;;spirit<=5000)38
{39
if(redwine>=30;;redwine<=3000)40
{41
if(beer>=300;;beer<=30000)42
{
43
spiritsales=spiritprice_totalspirit;44
redwinesales=redwineprice_totalredwine;45
beersales=beerprice_totalbeer;46
sales=spiritsales+redwinesales+beersales;47
if(sales<=20__00)48
mission=sales_0.04;49
elseif(sales>20__00;;sales<=45000)50
mission=20__00_0.04+(sales-20__00)_0.01;51
else52
mission=45000_0.01+(sales-45000)_0.005;53
resultSales=“CurrentState\n”+54
“白酒销售量:
”+totalspirit+“\n”+55
“红酒销售量:
”+totalredwine+“\n”+56
“啤酒销售量:
”+totalbeer+“\n”+57
“公司总销售额:
”+sales+“\n”+58
“本月获得佣金:
”+mission;59
}60
elseif(beer<300)61
{62
resultSales=“Youdidnotpletethepany"ssales63inde_,atleastamonthtosell300bottlesofbeer.”;64
}65
elseif(beer>30000)66
{67
resultSales=“Monthlysupplyof30000bottlesofbeer”;68
}69
}70
elseif(redwine<30)71
{72
resultSales=“Youdidnotpletethepany"ssales73inde_,atleastamonthtosell30bottlesofredwine.”;74
}75
elseif(redwine>3000)76
{77
resultSales=“Monthlysupplyof3000bottlesofredwine”;78
}79
}80
elseif(spirit<50)81
{82
resultSales=“Youdidnotpletethepany"ssalesinde_,at83leastamonthtosell50bottlesofspirit.”;84
}85
elseif(spirit>5000)86
{87
resultSales=“Monthlysupplyof5000bottlesofspirit”;88
}89
returnresultSales;90
}91
}
92测试代码:
93packagetest4;94
95importtest3.SaleMachine;96importjunit.framework.TestCase;97
98publicclassTestmissione_tendsTestCase{99
publicvoidtestOperation1100
{
missionsaleMan1=newmission(55,40,400);102
Stringe_pectedResult=“CurrentState\n”+103
“白酒销售量:
”+55.0+“\n”+104
“红酒销售量:
”+40.0+“\n”+105
“啤酒销售量:
”+400.0+“\n”+106
“公司总销售额:
”+16040.0+“\n”+107
“本月获得佣金:
”+641.6;108
assertEquals(e_pectedResult,saleMan1.operation(55,40,400));109
}110
publicvoidtestOperation2111
{112
missionsaleMan2=newmission(30,40,400);113
Stringe_pectedResult=“Youdidnotpletethepany"ssalesinde_,atleasta114monthtosell50bottlesofspirit.”;115
assertEquals(e_pectedResult,saleMan2.operation(30,40,400));116
}117
publicvoidtestOperation3118
{119
missionsaleMan3=newmission(5500,40,400);120
Stringe_pectedResult=“Monthlysupplyof5000bottlesofspirit”;121
assertEquals(e_pectedResult,saleMan3.operation(5500,40,400));122
}123
publicvoidtestOperation4124
{125
missionsaleMan4=newmission(55,25,400);126
Stringe_pectedResult=“Youdidnotpletethepany"ssalesinde_,atleasta127monthtosell30bottlesofredwine.”;128
assertEquals(e_pectedResult,saleMan4.operation(55,25,400));129
}130
publicvoidtestOperation5131
{132
missionsaleMan5=newmission(55,4000,400);133
Stringe_pectedResult=“Monthlysupplyof3000bottlesofredwine”;134
assertEquals(e_pectedResult,saleMan5.operation(55,4000,400));135
}136
publicvoidtestOperation6137
{138
missionsaleMan6=newmission(55,75,250);139
Stringe_pectedResult=“Youdidnotpletethepany"ssalesinde_,atleasta140monthtosell300bottlesofbeer.”;141
assertEquals(e_pectedResult,saleMan6.operation(55,75,250));142
}143
publicvoidtestOperation7144
{145
missionsaleMan7=newmission(55,75,33000);146
Stringe_pectedResult=“Monthlysupplyof30000bottlesofbeer”;147
assertEquals(e_pectedResult,saleMan7.operation(55,75,33000));148
}149
publicvoidtestOperation8150
{151
missionsaleMan8=newmission(100,150,1000);152
Stringe_pectedResult=“CurrentState\n”+153
“白酒销售量:
”+100.0+“\n”+154
“红酒销售量:
”+150.0+“\n”+155
“啤酒销售量:
”+1000.0+“\n”+156
“公司总销售额:
”+39800.0+“\n”+157
“本月获得佣金:
”+998.0;158
assertEquals(e_pectedResult,saleMan8.operation(100,150,1000));159
}160
publicvoidtestOperation9161
{162
missionsaleMan9=newmission(250,1000,5000);163
Stringe_pectedResult=“CurrentState\n”+164
“白酒销售量:
”+250.0+“\n”+165
“红酒销售量:
”+1000.0+“\n”+166
“啤酒销售量:
”+5000.0+“\n”+167
“公司总销售额:
”+187000.0+“\n”+168
“本月获得佣金:
”+1160.0;169
assertEquals(e_pectedResult,saleMan9.operation(250,1000,5000));170
}171}172
1732、Ne_tDate问题
174实现代码:
175packagetest4;176
177
178publicclassNe_tDay{179
180
intyear;181
intmonth;182
intday;183
intne_tday;184
intne_tmonth;185
intne_tyear;186
StringresultDate;187
188
publicNe_tDay(intyear,intmonth,intday)189
{190
ne_tday=day;191
ne_tmonth=month;192
ne_tyear=year;193
}194
publicStringoperation(intyear,intmonth,intday)195
{196
if(1>month||month>12)197
{198
resultDate=“Thismonthnotbetween1and12”;199
}20__
if(1>day||day>31)201
{202
resultDate=“Thisdaynotbetween1and31”;203
}204
else{205
switch(month)206
{207
case
(1):
208
case(3):
209
case(5):
210
case(7):
211
case(8):
212
case(10):
213
if(day<31)214
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 黑盒 测试 实验 报告