2015—2016学年第2学期软件测试技术课程实验报告学院:计算机科学技术专业:软件工程班级:软件二班姓名:吴德宁学号:041340217任课教师:刘玉宝-1-实验日期:2016年5月9日实验题目实验2、黑盒测试:边界值分析方法及设计测试案例实验目的1、掌握边界值的概念2、掌握边界值分析法的测试用例设计方法。实验内容1、对于找零钱最佳组合问题运用边界值分析法设计测试用例,并执行测试,撰写实验报告。实验步骤:假设商品总价为T,顾客付款为P①分析边界值。分析输入情形:1.T无效:T=02.T有效:T0此种情况下考虑P:2_1.P无效:PT(款不够支付)2_2.P有效:P=T分析输出情形:考虑输出—找零个数这里是有效数据,关于“找给顾客值最少钱币张数”的有效值50:0/110:0/1/2/3/45:0/11:0/1/2/3/4分析规格中每一个决策情形:无效输入(不找零):T=0(商品总价小于等于0错误)-2-T0PT(付款不够支付)输出相应错误有效输入(找零)T0PT此时考虑的输出(Change=P-T假设计算正确,不考虑这种情况的无效输出)0=Change45=Change1010=Change5050=ChangeChange:0、1、4、5、9、10、49、50、99②运用健壮性边界条件法设计测试用例,得到测试用例表(测试用例表格式同实验1)。付款总价余额预期输出T1-150超出范围T2050不可能T310050501T410150超出范围T550-1超出范围T6500501T750100不可能T850101超出范围T95051不可能T10605911T117223499T128575101T13807195T14959051T15555144T16606000③执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。测试模块:找零钱计算模块开发者:比尔盖茨测试员:霍金测试日期:2016年5月9日软件缺陷列表缺陷ID缺陷详细信息Mistake1付款为-1,总价为50时,预期为超出范围,但输出为50的张数为:-1;10的张数为0;5的张数为:0;1的张数为:-1;总张数为:-2Mistake2付款为100,总价为50时,预期为:1,但输出为50的张数为:0;10的张数为0,5的张数为:0;1的张数为:0;总张数为:0Mistake3付款为50,总价为-1时,预期为超出范围,但输出为50的张数为:1;10的张数为0;5的张数为:0;1的张数为:1;总张数为:2Mistake4付款为50,总价为0时,预期为1,但输出为50的张数为:0;-3-的张数为0;5的张数为:0;1的张数为:0;总张数为:0Mistake5付款为50,总价为100时,预期为不可能,但输出为50的张数为:0;10的张数为0;5的张数为:0;1的张数为:0;总张数为:0Mistake6付款为50,总价为101时,预期为超出范围,但输出为50的张数为:-1;10的张数为0;5的张数为:0;1的张数为:-1;总张数为:-2Mistake7付款为50,总价为51时,预期为不可能,但输出为50的张数为:0;10的张数为0;5的张数为:0;1的张数为:-1;总张数为:-1Mistake8付款为72,总价为23时,预期为9,但输出为50的张数为:0;10的张数为4;5的张数为:2;1的张数为:4;总张数为:10Mistake9付款为85,总价为75时,预期为1,但输出为50的张数为:0;10的张数为0;5的张数为:0;1的张数为:0;总张数为:10Mistake10付款为80,总价为71时,预期为5,但输出为50的张数为:0;10的张数为0;5的张数为:2;1的张数为:4;总张数为:6测试代码:publicclassPayBackChange{/***模拟演示找零钱(钱币张数最少的解)*/publicstaticvoidmain(String[]args){intT,P;while(true){Scannerscan=newScanner(System.in);System.out.println(请输入商品总价:);T=scan.nextInt();System.out.println(请输入付款金额:);P=scan.nextInt();if(T0&&P0&&TP){ListIntegerlist=payBack(T,P);//输出找零结果System.out.println(------------------找零结果----------------------);for(inti=0;ilist.size();i++){if(i==0){System.out.println(50元【+list.get(i)+】张,);}if(i==1){System.out.println(10元【+list.get(i)+】张,);}if(i==2){System.out.println(5元【+list.get(i)+】张,);}if(i==3){-4-System.out.println(1元【+list.get(i)+】张);}}}else{System.out.println(请输入正整数或付款不足以抵商品总价);}}}publicstaticListIntegerpayBack(intT,intP){intchange=P-T;ListIntegerlist=newArrayList();//找50元的张数if(change/50!=0){intcountP=change/50;list.add(countP);change=change-countP*50;//System.out.println(countP);}else{list.add(0);}//找10元的张数if(change/10!=0){intcountP=change/10;list.add(countP);change=change-countP*10;//System.out.println(countP);}else{list.add(0);}//找5元的张数if(change/5!=0){intcountP=change/5;list.add(countP);change=change-countP*5;//System.out.println(countP);}else{list.add(0);}//找1元的张数if(change/1!=0){intcountP=change/1;list.add(countP);//System.out.println(countP);}else{list.add(0);-5-}returnlist;}}2、现有一个程序intCheckTel(char*rc,char*n)执行电话号码有效性检查功能,中国的固定电话号码由两部分组成。这两部分的名称和内容分别是:地区码(rc):以0开头的三位或者四位数字(包括0)。电话号码(n):以非0、非1开头的七位或者八位数字。对该程序运用健壮性边界条件法设计测试用例,并执行测试,撰写实验报告。实验步骤:①分析边界值。最小值最大值最小值-1最大值+1地区码(3位)000999-0011000地区码(4位)00009999-000110000电话号码(7位)20000009999999199999910000000电话号码(8位)200000009999999919999999100000000②运用健壮性边界条件法设计测试用例,得到测试用例表。用例ID测试数据期望结果地区码电话号码10002235688接受(有效)2000022347789接受(有效)30872235688接受(有效)408722347789接受(有效)502342235688接受(有效)6023422347789接受(有效)704A32235688拒绝(无效)81222235688拒绝(无效)912232235688拒绝(无效)10022235688拒绝(无效)11022342235688拒绝(无效)-6-12122235688拒绝(无效)13123452235688拒绝(无效)140782334AA4拒绝(无效)15078234567拒绝(无效)16078723467890拒绝(无效)170780234455拒绝(无效)180781234546拒绝(无效)③执行测试,填写软件缺陷报告测试模块:电话号码检查有效性开发者:罗永浩测试员:周宏伟测试日期:2016年5月9日软件缺陷列表缺陷ID缺陷详细信息Mistake1地区码=000,电话号码=2235688,预期为有效,输出为Mistake2地区码=000,电话号码=2235688,预期为有效,输出为Mistake3地区码=000,电话号码=2235688,预期为有效,输出为Mistake4地区码=000,电话号码=2235688,预期为有效,输出为Mistake5地区码=000,电话号码=2235688,预期为有效,输出为Mistake6地区码=000,电话号码=2235688,预期为有效,输出为Mistake7地区码=000,电话号码=2235688,预期为有效,输出为Mistake8地区码=000,电话号码=2235688,预期为有效,输出为Mistake9地区码=000,电话号码=2235688,预期为有效,输出为Mistake10地区码=000,电话号码=2235688,预期为有效,输出为测试代码:publicclassCheckNumber{/**执行电话号码有效性检查功能**/publicstaticvoidmain(String[]args){while(true){Scannerscan=newScanner(System.in);System.out.println(请输入区号:);StringareaCode=scan.nextLine();System.out.println(请输入电话号码:);intphoneCode=scan.nextInt();checkAreaCode(areaCode);checkPhoneCode(phoneCode);System.out.println(-----------------------------------------------);}}//检查区号-7-publicstaticvoidcheckAreaCode(StringareaCode){if(areaCode.length()!=3&&areaCode.length()!=4){System.out.println(提示信息1:);System.out.println(你输入的区号有误);}}//检查电话号码publicstaticvoidcheckPhoneCode(intphoneCode){if(phoneCode=2000000&&phoneCode=9999999||phoneCode=20000000&&phoneCode=99999999){}else{System.out.println(提示信息2:);System.out.println(你输入的电话号码有误);}}}3、对三角问题运用健壮性边界条件法设计测试用例,并执行测试,撰写实验报告。三角形问题:输入三个整数a、b、c分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型(等边三角形、等腰三角形、一般三角形、构不成三角形),并在屏幕上输出。1=a,b,c=200。实验步骤:①分析边界值。-8-三角形的三条边分别为a,b,c如果它们能够构成三角形的3条边,必须满足:a0,b0,c0,且a+bc,b+ca,a+cb。如果是等腰的,还要判断a=b,或b=c,或a=c。如果是等边的,则需判断是否a=b,且b=c,且a=c。②运用健壮性边界条件法设计测试用例,得到测试用例表测试用例abc预期输出Case11