2023年新版Junit单元测试实验报告_第1页
2023年新版Junit单元测试实验报告_第2页
2023年新版Junit单元测试实验报告_第3页
2023年新版Junit单元测试实验报告_第4页
2023年新版Junit单元测试实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程与计算Ⅰ实验报告实验名称:Junit单元测试实验分组号:实验人:陈燕珠班级:H13软件工程学号:_实验指导教师:陈国明实验场地:花都校区实验楼709实验时间:2023、6、9成绩:实验四Junit单元测试一、实验目的1.掌握白盒测试方法,并按单元测试的规定设计测试用例。2.能纯熟应用junit测试工具进行单元测试。3.进行代码覆盖检查。二、实验规定掌握系统测试的基本原理,按实验内容及环节完毕操作,完毕实验报告,所有实验环节均由每位学生独立完毕,严禁抄袭别人实验结果。根据白盒法设计测试用例,并撰写单元测试计划书。根据每个测试用例,编写基本Junit的单元测试脚本。生成html格式的代码覆盖测试报告。三、实验环境主流PC机一套,windows操作系统eclipse开发平台。四、原理知识1.测试基本方法黑盒测试和白盒测试(1)黑盒测试(Black_Boxtesting)黑盒测试把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下、注重于测试软件的功能性规定,测试者在程序接口处进行测试,只检查程序功能是否按照规格说明书的规定正常使用,程序是否能接受输入数据而产生对的的输出信息,并且保持数据库和文献的完整性黑盒测试通常能发现以下几类错误:1、功能不对或漏掉2、界面错误3、数据结构或外部数据库访问错误4、性能错误5、初始化和终止错误采用黑盒技术设计测试用例的方法1、等价类划分2、边值分析法3、因果图4、猜错5、随机测试图1:白盒测试(2)白盒测试(White_Boxtesting)盒测试重要用于检查程序的内部结构、逻辑、循环和途径。常用的白盒测试用例设计方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本途径测试法、符号测试法等。其中最重要的方法就是逻辑覆盖法。1、语句覆盖2、鉴定覆盖3、条件覆盖4、条件鉴定覆盖5、多条件覆盖图2:黑盒测试手工测试和自动化测试(1)手工测试手工测试有其不可替代的地方,由于人具有很强的判断能力,而工具没有,所以手工测试的不可替代性体现在以下几个方面:①测试用例的设计:测试人员的经验和对错误的判断能力是工具不可替代的;②界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的;③对的性的检查:人们对是非的判断、逻辑推理能力是工具不具有的。(2)自动化测试自动化测试是把人为驱动的测试行为转化为机器执行的一种过程自动化测试技术重要有:录制/回放、脚本技术、数据驱动、关键字驱动、业务驱动等常用的自动化测试工具有:负载压力测试工具、功能测试工具、白盒/黑盒测试工具、测试管理工具、测试辅助工具、GUI接口自动化测试工具。系统测试系统测试是指将通过集成测试的软件系统或子系统,作为基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素组合在一起所进行的测试工作,目的在于通过与系统的需求定义(系统方案说明书、需求说明书等)作比较,发现软件与系统需求定义不符合或矛盾的地方。1、功能测试(FunctionalTesting)2、性能测试(PerformanceTesting)3、负载测试(LoadTesting)4、强度测试(StressTesting)5、容量测试(VolumeTesting)6、安全性测试(SecurityTesting)7、用户界面测试(UITesting)8、有效性测试(ValidityTesting)9、配置测试(ConfigurationTesting)10、故障恢复测试(RecoveryTesting)11、安装测试(InstallabilityTesting)12、可靠性测试(ReliablityTesting)2.编写测试用例:采用条件覆盖法设计用例,使判断中的每个条件的也许取值测试用例的设计环节:1、测试需求的分析2、业务流程分析3、测试用例设计4、测试用例评审5、测试用例更新完善测试用例IDabc测试用例名称abcTest测试目的过程是否对的前置条件前半夜符合什么条件,后半夜的操作环节与输入输入startHour,endHour,startMinute,endMinute预期结果程序还没开始运营,自己手工计算的结果为13.6实际结果同样的输入条件比较预期结果与运营结果,判断实验的对的性执行人陈燕珠日期2023-6-13执行人陈燕珠表1:测试用例3.测试计划:(1)编写源代码,并通过JunitTestCase生成测试代码,并编写测试用例代码。(2)通过不同的测试用例,分别对源代码进行结构化测试。(3)生成测试代码覆盖率,并对数据进行分析。五.实验内容1、用java语言编写上述章节案例2、设计白盒测试用例,达成分支覆盖3、根据以上设计的测试用例,编写junit测试代码,并进行测试。4、完毕测试代码覆盖分析,并生成html格式代码覆盖测试报告。测试用例IDabc测试用例名称abcTest测试目的过程是否对的前置条件前半夜符合什么条件,后半夜的操作环节与输入输入startHour,endHour,startMinute,endMinute预期结果程序还没开始运营,自己手工计算的结果为13.6实际结果同样的输入条件比较预期结果与运营结果,判断实验的对的性执行人陈燕珠日期2023-6-13执行人陈燕珠实验源代码:abc.javaimportjava.util.Scanner;interfacewage{ publicdoublemoney();}classabcd{staticintstartHour;staticintstartMinute;staticintendHour;staticintendMinute;doubletotalprice;publicstaticintinputStartHour() {intaaa=0;ﻩSystem.out.println("pleaseinputstarthour18-23");ﻩScannerbbb=newScanner(System.in); Stringstr=bbb.nextLine();ﻩtry{ﻩ if(str.matches("[1][8-9]|[2][0-3]")) { ﻩﻩSystem.out.println("correct"); aaa=Integer.parseInt(str); ﻩreturnaaa;ﻩ }ﻩ elsethrownewException("Exception");ﻩ}ﻩﻩcatch(Exceptionex)ﻩ{ﻩ ﻩSystem.out.println("pleaseinputagain"); inputStartHour();ﻩ}ﻩﻩreturnaaa; }//inputpublicstaticintinputStartMinute()ﻩ{intaaa=0; System.out.println("pleaseinputstartminute"); Scannerbbb=newScanner(System.in); Stringstr=bbb.nextLine();ﻩtry{ ﻩif(str.matches("[0-5][0-9]|[0-9]"))ﻩﻩ{ﻩ System.out.println("correct"); ﻩﻩaaa=Integer.parseInt(str);ﻩﻩreturnaaa;ﻩ }ﻩ elsethrownewException("Exception"); }ﻩﻩcatch(Exceptionex)ﻩ{ﻩ System.out.println("pleaseinputagain"); ﻩﻩinputStartMinute();ﻩ} returnaaa; }//inputpublicstaticintinputEndHour() {intaaa=0; System.out.println("pleaseinputEndhour21-230-4"); Scannerbbb=newScanner(System.in);ﻩStringstr=bbb.nextLine(); try{ﻩ if(str.matches("[2][1-3]|[0-4]"))ﻩ {ﻩ System.out.println("correct"); aaa=Integer.parseInt(str); ﻩreturnaaa; ﻩ} elsethrownewException("Exception"); } ﻩcatch(Exceptionex)ﻩ{ ﻩSystem.out.println("pleaseinputagain"); ﻩinputEndHour();ﻩ} returnaaa;ﻩ}//inputpublicstaticintinputEndMinute()ﻩ{intaaa=0;ﻩSystem.out.println("pleaseinputendminute");ﻩScannerbbb=newScanner(System.in);ﻩStringstr=bbb.nextLine();ﻩtry{ ﻩif(str.matches("[0-5][0-9]|[0-9]"))ﻩﻩ{ ﻩ System.out.println("correct");ﻩﻩﻩaaa=Integer.parseInt(str);ﻩﻩreturnaaa;ﻩ } elsethrownewException("Exception"); }ﻩﻩcatch(Exceptionex) {ﻩﻩﻩSystem.out.println("pleaseinputagain"); ﻩﻩinputEndMinute();ﻩ} ﻩreturnaaa; }//input}classtotalbeforeextendsabcdimplementswage{ publicdoublemoney(){ totalprice=(endHour-startHour)*3.4+(endMinute-startMinute)/60*3.4; ﻩreturntotalprice; ﻩ} ﻩ}ﻩclasstotalaferextendsabcdimplementswage{ﻩpublicdoublemoney(){ﻩﻩ totalprice=(24-startHour-1)*3.4+(60-startMinute)/60*3.4+endHour*3.9+endMinute/60*3.9;ﻩﻩreturntotalprice; ﻩ}ﻩ}publicclassabc{ publicstaticvoidmain(Stringargs[]){ﻩ abcd.startHour=abcd.inputStartHour(); ﻩabcd.endHour=abcd.inputEndHour(); ﻩabcd.startMinute=abcd.inputStartMinute();ﻩ abcd.endMinute=abcd.inputEndMinute(); ﻩif(abcd.endHour<=4&&abcd.endHour>0){ﻩ totalaferaa=newtotalafer();ﻩﻩ aa.startHour=abcd.startHour;ﻩﻩﻩaa.startMinute=abcd.startMinute;ﻩﻩ aa.endHour=abcd.endHour; ﻩ aa.endMinute=abcd.endMinute;ﻩ System.out.println("moneyis"+aa.money());ﻩ }ﻩﻩelseif(abcd.endHour>=21&&abcd.endHour<=23){ totalbeforeaa=newtotalbefore();ﻩ aa.startHour=abcd.startHour;ﻩﻩﻩaa.startMinute=abcd.startMinute;ﻩﻩ aa.endHour=abcd.endHour;ﻩﻩ aa.endMinute=abcd.endMinute;ﻩﻩﻩSystem.out.println("moneyis"+aa.money()); ﻩﻩ ﻩ} }}abcTest.javaimportjunit.framework.TestCase;importjunit.framework.Assert;publicclassabcTestextendsTestCase{ //@Test ﻩpublicvoidtesttotalprice(){ﻩﻩﻩdoubleactual;ﻩ doubleexpecteds=3.4; try{ ﻩﻩﻩabcppp=newabc(); ppp.main(null); totalbeforep=newtotalbefore();ﻩﻩ // totalpricepp=newtotalprice(); ﻩﻩ abcd.startHour=abcd.inputStartHour(); ﻩ abcd.endHour=abcd.inputEndHour(); ﻩﻩabcd.startMinute=abcd.inputStartMinute();ﻩ ﻩabcd.endMinute=abcd.inputEndMinute();ﻩﻩ ﻩ ﻩ//pp.WelcomeScreen.addCommand(pp.Into); //pp.WelcomeScreen.setCommandListener(pp);ﻩﻩﻩﻩ//pp.display.setCurrent(pp.WelcomeScreen); ﻩ ﻩ//pp.newWelcomeThread().start();ﻩ ﻩﻩﻩﻩ ﻩp.startHour=22; ﻩp.startMinute=0; ﻩp.endHour=23;ﻩ ﻩp.endMinute=0; ﻩﻩactual=p.money();ﻩﻩﻩﻩAssert.assertEquals(expecteds,actual,0.0f); ﻩ}catch(Exceptione){ ﻩﻩ e.printStackTra

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论