您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 山东大学软件测试实验报告
实验一。黑盒测试一、等价类划分电话号码问题某城市电话号码由三部分组成。它们的名称和内容分别是:(1)地区码:空白或三位数字;(2)前缀:非'0'或'1'的三位数字;(3)后缀:4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。根据题目,分别将地区码、前缀、后缀进行分类,分析结果如下:输入有效等价类编号无效等价类编号地区码空白1包含其他字符3三位数字2少于三位4多于三位5前缀非0或非1的三位数6包含其他字符8包含0的三位数9包含1的三位数10少于三位数11多于三位数12后缀四位数字7包含其他字符13少于四位数14多于四位数15根据上图的分析,可的测试用例测试数据预期结果覆盖类地区码前缀后缀空白5554344接受(有效)1、6、72325454343接受(有效)2、6、7A233224343拒绝(无效)3213224343拒绝(无效)423233224343拒绝(无效)523232A4343拒绝(无效)82322084343拒绝(无效)92321114343拒绝(无效)10232324343拒绝(无效)11232322224343拒绝(无效)122323224AS2拒绝(无效)13232322434拒绝(无效)14232322434311拒绝(无效)15三角形问题根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明不是三角形、三角形是三边不等的、是等腰的、还是等边的。分析题目中给出和隐含的对输入条件的要求:(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果a、b、c满足条件(1)~(4),则输出下列四种情况之一:1)如果不满足条件(5),则程序输出为非三角形。2)如果三条边相等即满足条件(7),则程序输出为等边三角形。3)如果只有两条边相等、即满足条件(6),则程序输出为等腰三角形。4)如果三条边都不相等,则程序输出为一般三角形。列出等价类表并编号覆盖有效等价类的测试用例:abc覆盖等价类号码345(1)--(7)445(1)--(7),(8)455(1)--(7),(9)545(1)--(7),(10)444(1)--(7),(11)覆盖无效等价类的测试用例:日期问题用决策表测试法测试以下程序:该程序有三个输入变量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),画出简化后的决策表。1)划分等价类并编号,下表等价类划分的结果输入等价类有效等价类无效等价类日期的类型及长度①6位数字字符②有非数字字符③少于6位数字字符④多于6位数字字符年份范围⑤在1990~2049之间⑥小于1990⑦大于2049月份范围⑧在01~12之间⑨等于00⑩大于122)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:测试数据期望结果覆盖的有效等价类200211输入有效①、⑤、⑧3)为每一个无效等价类设计一个测试用例,设计结果如下:测试数据期望结果覆盖的无效等价类95June无效输入②20036无效输入③2001006无效输入④198912无效输入⑥200401无效输入⑦200100无效输入⑨200113无效输入⑩3.NextDate函数包含三个变量:month、day和year,函数的输出为输入日期后一天的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日。要求输入变量month、day和year均为整数值,并且满足下列条件:①1≤month≤12②1≤day≤31③1920≤year≤20501)有效等价类为:M1={月份:1≤月份≤12}D1={日期:1≤日期≤31}Y1={年:1812≤年≤2012}2)若条件①~③中任何一个条件失效,则NextDate函数都会产生一个输出,指明相应的变量超出取值范围,比如month的值不在1-12范围当中。显然还存在着大量的year、month、day的无效组合,NextDate函数将这些组合作统一的输出:无效输入日期。其无效等价类为:M2={月份:月份1}M3={月份:月份12}D2={日期:日期1}D3={日期:日期31}Y2={年:年1812}Y3={年:年2012}弱一般等价类测试用例月份日期年预期输出61519121912年6月16日强一般等价类测试用例同弱一般等价类测试用例注:弱--有单缺陷假设;健壮--考虑了无效值(一)弱健壮等价类测试用例ID月份日期年预期输出WR161519121912年6月16日WR2-1151912月份不在1~12中WR313151912月份不在1~12中WR46-11912日期不在1~31中WR56321912日期不在1~31中WR66151811年份不在1812~2012中WR76152013年份不在1812~2012中(二)强健壮等价类测试用例ID月份日期年预期输出SR1-1151912月份不在1~12中SR26-11912日期不在1~31中SR36151811年份不在1812~2012中SR4-1-11912两个无效一个有效SR56-11811两个无效一个有效SR6-1151811两个无效一个有效SR7-1-11811三个无效实验二。白盒测试利用白盒测试之赋税管理系统练习基本路径测试方法。准备:Junit-4.10Eclipse(安装完Juniteclipse新建工程,本次先以获取数组中的中位数为例进行介绍然后在项目中引入Junite对于冒泡排序进行一次测试:当预期结果与执行结果相同时,测试显示正确如果有错误预判,显示结果错误。实验步骤二:设计程序,进行测试:收入Income和供养人数nDependance来计算赋税金额的程序。程序输入是Income和nDependance,程序输出是:总税金TaxTotal应缴所得税计算公式:TaxSubtotal收入(income)税率计算公式100000.02*income10000income50000200+0.03*(income-10000)500001400+0.04*(income-50000)免税部分:exemption=人数*50;实缴所得税:TaxTotal=TaxSubtotal–exemption程序Java代码:packageProject.com.cn.test;importjava.util.Scanner;publicclassTexTotal{privatedoubletotals;privatedoubleincome;privateintper;publicdoublegettotals(){returntotals;}publicvoidsetShuru(doubleincome,intper){this.income=income;this.per=per;}publicbooleangetShuru(){try{Scannerin=newScanner(System.in);System.out.println(请输入你的工资和家庭人数(以空格隔开):);this.income=in.nextInt();this.per=in.nextInt();}catch(Exceptione){System.out.println(请输入正确的工资数目!);System.out.println(错误类型:+e);returnfalse;}returntrue;}publicvoidIncome(){if(this.income=0||this.per=0){System.out.println(请输入正确的家庭人数和收入!);}elseif(this.income10000){this.totals=this.income*0.02-this.per*50;}elseif(this.income=10000&&this.income50000){this.totals=200+(this.income-10000)*0.03-this.per*50;}else{this.totals=1400+(this.income-50000)*0.04-this.per*50;}if(this.totals0){this.totals=0;}}publicvoidPrints(){System.out.println(需要缴纳的税为:+this.totals);}publicstaticvoidmain(Stringargs[]){TexTotald=newTexTotal();if(d.getShuru()){d.Income();d.Prints();}}}}if(this.totals0){this.totals=0;}}publicvoidPrints(){System.out.println(需要缴纳的税为:+this.totals);}publicstaticvoidmain(Stringargs[]){TexTotald=newTexTotal();if(d.getShuru()){d.Income();d.Prints();}}}测试代码:packageProject.com.cn.test;importstaticorg.junit.Assert.*;importjunit.framework.Assert;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;publicclassTexTotalTest{TexTotals=newTexTotal();@BeforepublicvoidsetUp()throwsException{}@AfterpublicvoidtearDown()throwsException{}@TestpublicvoidtestGetShuru1(){s.setShuru(9994,5);s.Income();Assert.assertEquals(0.0,s.gettotals());}@TestpublicvoidtestGetShuru2(){s.setShuru(10023,3);s.Income();Assert.assertEquals(50.69,s.gettotals());}@TestpublicvoidtestGetShuru3(){s.setShuru(59232,4);s.Income();Assert.assertEquals(1569.28,s.gettotals());}@TestpublicvoidtestGetShuru4(){s.setShuru(500,0);s.Income();Assert.assertEquals(0.0,s.gettotals());}@TestpublicvoidtestGetShuru5(){s.setShuru(-50000,4);s.Income();Assert.assertEquals(0.0,s.gettotals());}}3测试数据测试均顺利通过。路径覆盖率为100%。实验三、1、运行Winrunner,新建一个测试项目。点击【开始】按钮,选择【程序】-【WinRunner】-【WinRunner】,点击【NewT
本文标题:山东大学软件测试实验报告
链接地址:https://www.777doc.com/doc-5900412 .html