1、黑盒测试实验报告黑盒测试实验报告1 软件测试技术实验报告2 实验序号:04实验项目名称:黑盒测试3 一、实验目的及要求 掌握用等价类、边界值分析法、因果图的方法设计测试用例 二、实验设备(环境)及要求 实验在计算机系的机房进行,安装了 VC6.0,Java SDK,TurboC 等软件,学生能采用 C 语言,C,或 Java 语言进行编程。三、实验内容与步骤 任务一:佣金问题 问题描述如下:一酒水销售公司指派销售员销售各种酒水。白酒卖 168 元/瓶,红酒卖 120元/瓶,啤酒卖 5 元/瓶。白酒每月的供应量为 5000 瓶,红酒为 3000 瓶,啤酒为30000 瓶,各个销售员每月至少要售出
2、白酒 50 瓶,红酒 30 瓶,啤酒 300 瓶。月末,每个销售员上报他所在区域的销售业绩。这样酒水销售公司就知道了当月的销售情况,并根据销售额计算佣金提成如下:2 万以下(含):4%; 2 万(不含)4.5 万(含):1% 4.5 万以上(不含):0.5% 这样,佣金程序生成月份销售报告,汇总售出的白酒、红酒和啤酒总数,销售公司的总销售额和各个销售员的佣金。这个问题分为三个不同的部分:输入数据部分,用来处理输入数据的有效性; 销售额计算部分; 佣金(提成)计算部分.1、充分考虑输入有效性校验,编写佣金问题的代码; 2、按照等价类划分的思想,设计等价类测试用例; 1)佣金问题中,首先分析输入和
3、输出,注意分析佣金问题中给出和隐含的对输入条件的要求:2)针对输入进行等价类划分,形成等价类列表,并为每一个等价类编号;3)从等价类划分的表格中设计测试用例:为有效等价类设计测试用例,为每一个无效等价类至少设计一个测试用例 3、执行测试,记录发现的问题。任务二:下一天问题 1、对于 Ne_tDate 问题,分析它的输入限制;2、从输入限制的边界设计测试用例;3、执行测试,记录结果。任务三:自动售货机问题 有一个处理单价为 5 角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入 5 角钱或 1 元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料酒送出来。若售货机没有零钱找,则一个显示零
4、钱找完的红灯亮,这时再投入 1 元硬币并押下按钮后,饮料不送出来而且 1 元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还 5 角硬币。1、分析这一段说明,列出原因和结果2、画出因果图。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:1)投入 1 元硬币且押下饮料按钮2) 押下橙汁或啤酒的按钮3) 应当找 5 角零钱并且售货机有零钱找4)钱已付清3、转换成判定表4、在判定表中,把不可能出现的情况删去。5、最后根据判定表中剩下的列作为确定测试用例的依据,设计测试用例。6、实验报告要求及记录、格式 四、程序调试与结果 1、佣金问题 1
5、)划分等价类并编号,下表等价类划分的结果输入等价类 有效等价类 无效等价类 白酒数量 1 在 505000 之间 2 在 049 之间 3 在 5000 以上不包括5000 红酒数量 4 在 303000 之间 5 在 029 之间 6 在 3000 以上不包括3000啤酒数量 7 在 30030000 之间 8 在 0299 之间 9 在 30000 以上不包括30000 2)设计测试用例,以便覆盖所有的有效等价类在表中列出了 3 个有效等价类,编号分别为、4 、7 ,设计的测试用例如下:测试数据 期望结果 覆盖的有效等价类(55,40,400)输入有效 、4 、73)为每一个无效等价类设计
6、一个测试用例,设计结果如下:测试数据 期望结果 覆盖的无效等价类 (30,40,400)输入无效 2 (5500,40,400)输入无效 3 (55,25,400)输入无效 5 (55,4000,400)输入无效 6 (55,75,250)输入无效 8 (55,75,33000)输入无效 94) 测试结果:所有测试都成功,且测试的覆盖率为百分百2、Ne_tDate 问题1)分析它的输入限制Ne_tDate 是一个有三个变量(月份、日期和年)的函数。函数返回输入日期后面的那个日期。变量月份、日期和年都是整数值,并满足以下条件:c1:1=月份=12 c2:1=日期=31 c3:1812=年=50;
7、spirit=30;redwine=300;beer=30000) 4243spiritsales=spiritprice_totalspirit; 44redwinesales=redwineprice_totalredwine; 45beersales=beerprice_totalbeer; 46sales=spiritsales+redwinesales+beersales; 47 if(sales20_00;sales=45000) 50mission=20_00_0.04+(sales-20_00)_0.01; 51else 52mission=45000_0.01+(sales-
8、45000)_0.005; 53resultSales=“Current Staten” + 54“白酒销售量: ” + totalspirit + “n” + 55“红酒销售量: ” + totalredwine + “n” + 56“啤酒销售量: ” + totalbeer + “n” + 57“公司总销售额: ” + sales+“n”+ 58“本月获得佣金:”+mission; 59 60else if(beer30000) 66 67resultSales=“Monthly supply of 30000 bottles of beer”; 68 69 70else if(redwi
9、ne3000) 76 77resultSales=“Monthly supply of 3000 bottles of red wine”; 78 79 80else if(spirit5000) 86 87resultSales=“Monthly supply of 5000 bottles of spirit”; 88 89return resultSales; 90 91 92 测试代码:93 package test4; 9495 import test3.SaleMachine; 96 import junit.framework.TestCase; 9798 public clas
10、s Testmission e_tends TestCase 99public void testOperation1 100 mission saleMan1 = new mission(55,40,400); 102String e_pectedResult = “Current Staten” + 103“白酒销售量: ” + 55.0 + “n” + 104“红酒销售量: ” + 40.0 + “n” + 105“啤酒销售量: ” + 400.0 + “n” + 106“公司总销售额: ” + 16040.0+“n”+ 107“本月获得佣金:”+641.6; 108assertEqua
11、ls(e_pectedResult, saleMan1.operation(55,40,400); 109 110public void testOperation2 111 112mission saleMan2 = new mission(30,40,400); 113String e_pectedResult = “You did not plete the panys sales inde_,at least a 114 month to sell 50 bottles of spirit.”; 115assertEquals(e_pectedResult, saleMan2.oper
12、ation(30,40,400); 116 117public void testOperation3 118 119mission saleMan3 = new mission(5500,40,400); 120String e_pectedResult = “Monthly supply of 5000 bottles of spirit”; 121assertEquals(e_pectedResult, saleMan3.operation(5500,40,400); 122 123public void testOperation4 124 125mission saleMan4 =
13、new mission(55,25,400); 126String e_pectedResult =“You did not plete the panys sales inde_,at least a 127 month to sell 30 bottles of red wine.”; 128assertEquals(e_pectedResult, saleMan4.operation(55,25,400); 129 130public void testOperation5 131 132mission saleMan5 = new mission(55,4000,400); 133St
14、ring e_pectedResult = “Monthly supply of 3000 bottles of red wine”; 134assertEquals(e_pectedResult, saleMan5.operation(55,4000,400); 135 136public void testOperation6 137 138mission saleMan6 = new mission(55,75,250); 139String e_pectedResult =“You did not plete the panys sales inde_,at least a 140 m
15、onth to sell 300 bottles of beer.”; 141assertEquals(e_pectedResult, saleMan6.operation(55,75,250); 142 143public void testOperation7 144 145mission saleMan7 = new mission(55,75,33000); 146String e_pectedResult = “Monthly supply of 30000 bottles of beer”; 147assertEquals(e_pectedResult, saleMan7.oper
16、ation(55,75,33000); 148 149public void testOperation8 150 151mission saleMan8 = new mission(100,150,1000); 152String e_pectedResult = “Current Staten” + 153“白酒销售量: ” + 100.0 + “n” + 154“红酒销售量: ” + 150.0 + “n” + 155“啤酒销售量: ” + 1000.0 + “n” + 156“公司总销售额: ” + 39800.0+“n”+ 157“本月获得佣金:”+998.0; 158assertE
17、quals(e_pectedResult, saleMan8.operation(100,150,1000); 159 160public void testOperation9 161 162mission saleMan9 = new mission(250,1000,5000); 163String e_pectedResult = “Current Staten” + 164“白酒销售量: ” + 250.0 + “n” + 165“红酒销售量: ” + 1000.0 + “n” + 166“啤酒销售量: ” + 5000.0 + “n” + 167“公司总销售额: ” + 18700
18、0.0+“n”+ 168“本月获得佣金:”+1160.0; 169assertEquals(e_pectedResult, saleMan9.operation(250,1000,5000); 170 171 172173 2、 Ne_tDate 问题174 实现代码:175 package test4; 176177178 public class Ne_tDay 179 180int year; 181int month; 182int day; 183int ne_tday; 184int ne_tmonth; 185int ne_tyear; 186String resultDate;
19、 187188public Ne_tDay(int year,int month,int day) 189 190ne_tday = day; 191ne_tmonth=month; 192ne_tyear=year; 193 194public String operation(int year,int month,int day) 195 196if(1month | month12) 197 198resultDate=“This month not between 1 and 12”; 199 20_if(1day | day31) 201 202resultDate=“This day not between 1 and 31”; 203 204else 205switch(month) 206 207case (1): 208case (3): 209case (5): 210case (7): 211case (8): 212case (10): 213if(day31) 214
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1