还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验报告软件工程与计算I实验名称Jun it单元测试实验分组号实验人陈燕珠班级H13软件工程学号实验指导教师陈国明实验场地花都校区实验楼709实验时间
2015.
6.9成绩public static int inputStartMinute{int aaa=0;System,out.print In°please inputstartminute**;Scanner bbb=new ScannerSystem.in;String str=bbb・nextLine;try{if str.matchesC[0-5][0-9]|[0-9]{System,out.print In,cor rectM;aaa=Integer.parseZntstr;return aaa;一else thrownew Exception*Exception;catchException ex1—System.out.printInplease inputagain;inputStartMinute;return aaa;}//inputpublic static int inputEndHour{int aaa=0;-System.out.printInplease inputEndhour21-234;Scanner bbb=new ScannerSystem.in;String str=bbb・nextLine;try{if str.matches
[2][1-3]|[0-4]M{System.out.printIncorrect0;aaa=Integer.parseTntstr;return aaa;______1_____________________________;else thrownew ExceptionException”catchException ex工System.out.println,wplease inputagain0;inputEndHour;}return aaa;}//inputpublic static int inputEndMinute{int aaa=0;System.out.println*please inputendminute;Scanner bbb=new ScannerSystem.in;String str=bbb.nextLine;try{if str.matchesu[0-5][0-9]|[0-9]{System.out.printlnncorrectn;aaa=Integer.parselntstr;return aaa;}else thrownew Exception°Exception;catchException ex{_一System.out.println^please inputagain0;inputEndMinute;}return aaa;}//inputclass totalbeforeextends abedimplements wage4J public double money{totalprice=endHour-startHour*
3.4+enc/Alinute-startAJinute/60*
3.4;return totalprice;上class totalaferextends abedimplements wage{△亡public double money{totalprice=24-startHour-l*
3.4+60-startAJinL/te/60*
3.4+endHour*
3.9+endAJinL/te/60*
3.9;return totalprice;public classabcpublic staticvoid mainStringargsf]{・abed s tartHour=abed.inputStartHour;abed,endHour=abcd.inputEndHour;・abed startAJinute=abcd-inputStartMinute;abed,endAJinute=abcd.inputEndMinute;if abed.endHour=4abcd.enc/Hour0{totalafer aa=new totalafer;aa.s tartHour=abed.startHour;aa.startAJinute=abcd.startMinute;・・aa endHoL/r=abcd endHour;aa.endMinute=abcd.endMinutei_______________________System,out.print In*money is+aa.money;}・else ifabed.endHour=21abcd endHour=23{totalbefore aa=new totalbefore;・aa startHour=abed.startHour;・aa.s tartHour=abed startHour;・aa.startAJinute=abcd startMinute;・aa endHour=abcd.endHour;・aa endAlinute=abcd.endMinute;System.out.printlnmoney isH+aa.money;图3:测试代码覆盖分析t import junit.framework.TestCase;[]public classabcTest extendsTestCase{//@Testpublic voidtesttotalprice{double actual;double expecteds=
3.4;try{abc ppp=new abc;ppp.nainnull;totalbefore p=new totalbefore;//玉*Rlpni’p pp=new totalgrice;abed.startHour=abc d.inputStartHour;・abed.endHour=abcd inputEndHour;abed.startAlinute=abccl.inputStartMinute;abed,endAlinute=abcd.inputEndMinute;・p startHour=22;・,•・p startMinute=Qjp.endHour=23;p.endfrlinute=Q;actual=p.money;}catch Exceptione{e.printStackTrace;}Assert.assertfquatsexpecteds^actual^O.Of;图4:测试用例的编写回次户Exportaor图5:导出覆盖率报告---V--abcTest2015-6-1421:52:19~Element CoverageCovered Instruct!...Missed Instruct!...Total InstructionstIc7abc=
63.5%209120329defaultElement MissedInstruct ions▼Cov.Missed BranchesCov.Missed CxtyMissed LinesMissed MethodsMissed Classes®abed6够bllft49205305010tatalafer津n/a22332211abc6㈱__________________3糊466200201G abcTest.9族n/a0221802010abcTestTest1觥n/a111111110tatalbefore二10CK n/a02030201Total120of32964%9of1644%1122329831426abcElement MissedInstruct ions▼Cov.Missed BranchesCov.Missed CxtyMissed LinesMissed MethodsMissed Classes、出sre64%1122329831426Total120of3296强9of1644%1122329831426ahrTaT例154-14力3•1*totalbeforeElement MissedInstructionsv Cov.Missed BranchesCov.Missed CxtyMissed LinesMissed Methods9money1UIK n/a0102010totalbefore S10CK n/a010101Total0of23100J50of0n/a020302abcElement MissedInstruct ions▼Cov.,Missed BranchesCov.Missed CxtyMissed LinesMissed MethodsGmain String[]6有_________3搬4b bW U1e abc810B5n/a010101Total25of686^5of838%4662002abcTestElement MissedInstruct ions▼Cov.Missed BranchesCov.Missed CxtyMissed LinesMissed Methods9testtotalpriceO而灿n/a0121701E0abcTest010做n/a010101Total3of439第0of0n/a0221802abcTest2015-6-1421:52:19abedElement MissedInstruct ions▼Cov.Missed BranchesCov.Missed CxtyMissed LinesMissed Methods.input Start Hour66%50%
12513011251301.inputEndHour
1251301.input StartMinut e❷inputEndMirart eOOWE.OLM.1251301MB100%n/a010101Tot al52of15566%4of850%
49205305.abed图6:自动生成Html覆盖率分析报告结论当运行测试用例程序abcTest.java来测试用例abc.java时,输入相应的输入startHour,endHour,startMinute,endMinute,就会输出相应的计算结果若是用Coverage As运行,则可以看到程序abc的覆盖结果和覆盖率将其覆盖结果导出为网页模式则可以在生成的index.html网页中查看各个程序及函数的运行结果及覆盖率七.总结(存在的问题及解决办法、心得体会等)本次实验是一个有趣而且实用的实验程序运行过后,运行到的代码和没有运行到的代码都用鲜艳的颜色覆盖了,鲜明的想我们展示了程序代码的运行情况通过本次实验,我对程序的利用率有了更深刻的理解知道了原来运行一个程序,当输入不同的数据,程序就会运行不同的程序块而相应的,也会有部分程序块是没有运行到的,一个程序中有很多地代码没有使用到的这让我知道,以后我们写程序就要尽量写些有用的代码,尽可能地让程序运行的覆盖率更高,让程序运行的更快八.教师对学生实验情况评价:□不能掌握实验内容□能基本掌握实验内容□能较好掌握实验内容□能熟练掌握实验内容教师签字:年月日2015613实验四Junit单元测试
一、实验目的
1.掌握白盒测试方法,并按单元测试的要求设计测试用例
2.能熟练应用junit测试工具进行单元测试
3.进行代码覆盖检查
二、实验要求掌握系统测试的基本原理,按实验内容及步骤完成操作,完成实验报告,所有实验环节均由每位学生独立完成,严禁抄袭他人实验结果根据白盒法设计测试用例,并撰写单元测试计划书根据每个测试用例,编写基本Junit的单元测试脚本生成html格式的代码覆盖测试报告
三、实验环境主流PC机一套,windows操作系统eclipse开发平台
四、原理知识
1.测试基本方法黑盒测试和白盒测试1黑盒测试Black_Box testing黑盒测试把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下、注重于测试软件的功能性要求,测试者在程序接口处进行测试,只检查程序功能是否按照规格说明书的规定正常使用,程序是否能接收输入数据而产生正确的输出信息,并且保持数据库和文件的完整性黑盒测试通常能发现以下几类错误
2.功能不对或遗漏
3.界面错误
4.数据结构或外部数据库访问错误5,性能错误
6.初始化和终止错误采用黑盒技术设计测试用例的方法
1.等价类划分
2.边值分析法
3.因果图
4、猜错图1:白盒测试2白盒测试White_Box testing盒测试主要用于检查程序的内部结构、逻辑、循环和路径常用的白盒测试用例设计方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、符号测试法等其中最主要的方法就是逻辑覆盖法
1.语句覆盖
2.判定覆盖
3.条件覆盖
4.条件判定覆盖
5.多条件覆盖图2:黑盒测试手工测试和自动化测试1手工测试手工测试有其不可替代的地方,因为人具有很强的判断能力,而工具没有,所以手工测试的不可替代性体现在以下几个方面
①测试用例的设计测试人员的经验和对错误的判断能力是工具不可替代的;
②界面和用户体验测试人类的审美观和心理体验是工具不可模拟的;
③正确性的检查人们对是非的判断、逻辑推理能力是工具不具备的2自动化测试自动化测试是把人为驱动的测试行为转化为机器执行的一种过程自动化测试技术主要有录制/回放、脚本技术、数据驱动、关键字驱动、业务驱动等常用的自动化测试工具有负载压力测试工具、功能测试工具、白盒/黑盒测试工具、测试管理工具、测试辅助工具、GUI接口自动化测试工具系统测试系统测试是指将通过集成测试的软件系统或子系统,作为基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素组合在一起所进行的测试工作,目的在于通过与系统的需求定义系统方案说明书、需求说明书等作比较,发现软件与系统需求定义不符合或矛盾的地方
1.功能测试Functional Testing
2.性能测试Performance Testing
3.负载测试Load Testing
4.强度测试Stress Testing
5.容量测试Volume Testing
6.安全性测试Security Testing
7、用户界面测试UI Testing
8、有效性测试Validity Testing
9、配置测试Configuration Testing
10、故障恢复测试Recovery Testing
11.安装测试Installability Testing
12.可靠性测试Reliablity Testing
2.编写测试用例采用条件覆盖法设计用例,使判断中的每个条件的可能取值测试用例的设计步骤
1.测试需求的分析
2.业务流程分析
3.测试用例设计
4.测试用例评审
5.测试用例更新完善测试用例ID abc测试用例名称abcTest测试目的过程是否正确前置条件前半夜符合什么条件,后半夜的操作步骤与输入输入startHour,endHour,startMinute,endMinute预期结果程序还没开始运行,自己手工计算的结果为
13.6实际结果同样的输入条件比较预期结果与运行结果,判断实验的正确性执行人陈燕珠日期执行人陈燕珠2015-6-1361:测试用例
3.测试计划1编写源代码,并通过Junit TestCase生成测试代码,并编写测试用例代码2通过不同的测试用例,分别对源代码进行结构化测试3生成测试代码覆盖率,并对数据进行分析五.实验内容
1.用java语言编写上述章节案例
2.设计白盒测试用例,达到分支覆盖
3、根据以上设计的测试用例,编写junit测试代码,并进行测试
4、完成测试代码覆盖分析,并生成html格式代码覆盖测试报告测试用例ID abc测试用例名称abcTest测试目的过程是否正确前置条件前半夜符合什么条件,后半夜的操作步骤与输入输入startHour,endHour,startMinute,endMinute预期结果程序还没开始运行,自己手工计算的结果为
13.6实际结果同样的输入条件比较预期结果与运行结果,判断实验的正确性执行人陈燕珠日期2015-6-13执行人陈燕珠实验源代码abc.javaimport java.util.Scanner;interface wage{public doublemoney;class abed{static intstartHour;static intstartMinute;static intendHour;static intendMinute;double totalprice;public static int inputStartHour{int aaa=0;System.out.printInplease inputstarthour18-23;Scanner bbb=new ScannerSystem.in;String str=bbb.nextLine;try{if str.matches,,[l][8-9]|
[2][0-3]”{System.out.printlncorrect;aaa=Integer.parselntstr;return aaa;}else thrownew ExceptionException;catchException exSystem.out.printlnplease inputagain;inputStartHour;return aaa;}//inputpublic staticint inputStartMinute{int aaa=0;System.out.printInplease inputstartminute;Scanner bbb=new ScannerSystem.in;String str=bbb.nextLine;try{if str.matches[0-5][0-9]|[0-9]”{System.out.printlncorrect;aaa=Integer.parselntstr;return aaa;}else thrownew ExceptionException;catchException ex{System.out.printlnplease inputagain;inputStartMinute0;return aaa;}//inputpublic staticint inputEndHour{int aaa=0;System.out.printInplease inputEndhour21-230-4;Scanner bbb=new ScannerSystem.in;String str=bbb.nextLine;try{if str.matches
[2][l-3]|[0-4]”{System.out.printIncorrect;aaa=Integer.parselntstr;return aaa;}else thrownew ExceptionException;catchException ex{System.out.printlnplease inputagain;inputEndHour;return aaa;}//inputpublic staticint inputEndMinute{int aaa=0;System.out.printInplease inputendminute;Scanner bbb=new ScannerSystem.in;String str=bbb.nextLine;try{if str.matches[0-5][0-9]|[0-9]“{System.out.printIncorrect;aaa=Integer.parselntstr;return aaa;}else thrownew ExceptionException;catchException ex{System.out.printInplease inputagain;inputEndMinute;return aaa;}//inputclass totalbeforeextends abedimplements wage{public doublemoney{totalprice=enc/Hour-startHour*
3.4+endMinute-startMinute/60*
3.4;return totalprice;}class totalaferextends abedimplements wagepublicdoublemoney{totalprice=24-startHour-l*
3.4+60-startMinute/60*
3.4+enc/Hour*
3.9+endMinute/60*
3.9;returntotalprice;public classabc{public staticvoid mainStringargs[]{abed・startHour=abcd.inputStartHour;abed・endHour=abcd.inputEndHour;abed.startMinute=abcd.inputStartMinute;abed.enc/Minute=abcd.inputEndMinute;if abed.enc/Hour=4abcd.enc/Hour0{totalafer aa=new totalafer;a a•stgrtHour=abed.startHour;aa.startMinute=abcd.startMinute;aa.endHour=abcd.endHour;aa,endMinute=abcd.endMinute;System.out.printInmoney is+aa.money;else ifabed.endHour=21abcd.enc/Hot/r=23{totalbefore aa=new totalbefore;aa,startHour=abcd.startHour;aa.startMinute=abcd.startMinute;aa.endHour=abcd.endHour;aa.endMinute=abcd.endMinute;System.out.printInmoney is+aa.money;}}abcTest.java importjunit.framework.TestCase;importjunit.framework.Assert;public classabcTest extendsTestCase{//@Testpublic voidtesttotalprice{double actual;double expecteds=
3.4;try abcppp=new abc;totalbefore p=new totalbefore;//totalprice pp=new totalprice;abed・startHour=abcd.inputStartHour;abed・endHour=abcd.inputEndHour0;abed.startMinute=abcd.inputStartMinute;abed・endMinute=abcd.inputEndMinute0;//pp.Welcomescreen.addCommandpp.Into;//pp.WelcomeScreen.setCommandListener22;//pp.display.setCurrentpp.WelcomeScreen;//pp.new WelcomeThread.start;p■startHour=22;p.stantMinute=0;p.endHour=23;p.endMinute=Q;actual=p.money;Assert.assertEquaLsexpectedsactual,
0.0f;}catch Exceptione{e.printStackTrace;六..实验结果及结论运行程序,其覆盖情况如下:import java.util.Scanner;interface wage{publicdoublemoney;}class abed{staticintstartHour;staticintstartMinute;staticintendHour;staticintendNinute;double totalprice;public staticint inputStartHour{int aaa=0;System.out.printinplease inputstarthour18-23;Scanner bbb=new ScannerSystem.in;String str=bbb.nextLine;try{if str.matchesM[l][8-9]|
[2][0-3]”System.out.printIn°correct°;aaa=Integer.parseTntstr;return aaa;else thrownew Exception*Exception0;}catchException exSystem.out.printIn°please inputagain°;inputStartHour{;return aaa;}//input。
个人认证
优秀文档
获得点赞 0