华北电力大学实验报告||实验名称基于Junit和IBMRFT的自动化测试课程名称软件测试||专业班级:指导教师:李整实验日期:2012.5.25华北电力大学科技学院实验报告第页共页一、实验目的及要求本实验要求学生学习使用Junit设计一个单元测试,从用例设计和编写测试代码等方面完成;使用IBM的RationalFunctionalTester对一个出售古典音乐CD的JavaGUI程序进行测试,完成实验指导书中的七个实验,深入体会和掌握测试对象、验证点、基线、数据池等相关概念。二、所用仪器、设备Windows8操作系统平台,Eclipse和IBMFunctionalTester工具三、实验原理Junit主要用于Java开发人员编写的面向对象程序,是单元测试工具。Junit在提升代码质量的同时使我们能够快速编写程序;使用简单,能够检验测试结果并能够及提供反馈;它可以组织成一个有层次的测试系列架构,而且测试成本低;Junit能够提升软件的稳定性,对Java语言程序进行测试,并且软件免费。RFT是一款先进的、自动化的功能和回归测试功能工具。可以支持智能数据驱动和测试脚本重用性。本次测试属于自动化测试,通过自动化测试工具或其他手段,按照我们预定的计划进行自动测试的活动,属于黑盒测试。本次实验所用的自动化测试工具为IBMFunctionalTester工具,是基于程序功能的测试,测试不关心程序内部代码,只是测试程序功能是否与预期结果相同。四、实验方法与步骤1、实验步骤首先创建一个Java工程,在这个工程下建立一个Math类,然后在Math类中建立add和subtract方法来实现两个数x和y的相加和相减;然后准备对这个类之中的方法进行测试,来确保功能的正常。选中Math.java,点击右键,选择New-JUnitTestCase:;然后在复选框中添加junit.jar包,确定后新建一个Math类,用来测试Hello类。选中setUp()和tearDown(),然后点击“Next”;接着,选择要测试的方法,add()和abstract()方法,完成后在TestMath.java中输入测试代码;最后直接运行,就可以看见测试结果。绿色表示测试通过,只要有1个测试未通过,就会显示红色并列出未通过测试的方法。可华北电力大学科技学院实验报告第页共页以改变代码,故意返回错误的结果(比如returnn+1;),然后再运行JUnit就会报告错误。2、Junit测试:被测试代码packagecom.test;publicclassprojectWithJUnit{publicvoidtest(inta,intb,intc){if(a+bc&&a+cb&&b+ca){System.out.println(以这三个长度为边的三条线段可以构成三角形!);}else{System.out.println(以这三个长度为边的三条线段不可以构成三角形!);}}}程序流程图:华北电力大学科技学院实验报告第页共页程序控制流图测试用例:abc7242534567894041512133、IBMRFT的自动化测试1)实验原理:利用RFT这个面向对象的、自动测试工具,通过录制一个出售古典音乐CD的JavaGUI程序进行测试。一共完成的7个实验,通过这个7个实验深入体会和掌握测试对象、验证点、基线、数据池等相关概念。来进一步的掌握RFT这个自动测试的工具的使用。2)RFT简介:IBMRationalFunctionalTester(简称RFT)是一款先进的、自动化的功能和回归测试工具,它适用于测试人员和GUI开发人员。使用它,测试新手可以简化复杂的测试任务,很快上手;测试专家能够通过选择工业标准化的脚本语言,实现各种高华北电力大学科技学院实验报告第页共页级定制功能。通过IBM的最新专利技术,例如基于Wizard的智能数据驱动的软件测试技术、提高测试脚本重用的ScriptAssurance技术等等,大大提高了脚本的易用性和可维护能力。同时,它第一次为Java和Web测试人员,提供了和开发人员同样的操作平台(Eclipse),并通过提供与IBMRational整个测试生命周期软件的完美集成,真正实现了一个平台统一整个软件开发团队的能力。3)步骤:I、利用RFT按照《软件测试技术及应用》实验指导书,完成指导书上所有的实验。实验中可能有实验结果和指导书不相符的情况,遇到这样的情况一定要认真检查自己的步骤,只要根据指导书一步步的进行,是不会出现错误的,肯定可以得到最终的实验结果。II、通过查找书籍,网络等途径深入体会和掌握测试对象、验证点、基线、数据池这些基本的概念。III、根据指导书的指导进行出售古典CD的测试,进行验证点的插入,休眠等书上的要求进行黑盒测试工作。4、实验心得和体会:由于时间关系所有的实验并都完成,前几个都做了。RFT作为一款GUI自动化测试工具具有喝多的特点:首先它支持以Java语言作为其自动化测试脚本。这个特点不但使得RFT秉承了Java的诸多优点,且使得RFT的开发人员很容易的引入各种Java组件:SpringFramework、Hibernate等等。其次它以Eclipse(IBM开源IDE)插件的方式来提供其功能,这对于熟悉Eclipse的人来说,将比较容易上手。在实验过程中刚开始做的时候很难注意一些细节问题,导致实验很难成功,后来认真的看了实验指导书,耐心的一步一步按照实验指导书上的提示走,最后还是完成了前几个实验,中间还经过了老师的帮助。因为找不到脚本了。软件产品的开发人员注重的是功能的实现,不会关心复杂的对象层次结构或不规范的属性命名给测试人员编写自动化测试带来的困难,这就需要在编写测试脚步的时候考虑的更全面,并提高对象的查找识别能力,以保证automation测试顺利。RFT在基于Web和Java的测试中显示了强大的功能,但在windowapplication的测试中,当然它还是有些小缺点的,不能完美的运行于各个平台,但遇到问题时,我们应该尝试用一些替代的方法去解决。华北电力大学科技学院实验报告第页共页五、实验结果与数据处理测试代码:packagecom.test;importstaticorg.junit.Assert.*;importorg.junit.Before;importorg.junit.Test;publicclassprojectWithJUnitTest{@BeforepublicvoidsetUp()throwsException{}@Testpublicvoidtest(){projectWithJUnitpro=newprojectWithJUnit();pro.test(7,24,25);pro.test(3,4,5);pro.test(6,7,8);pro.test(9,40,41);pro.test(5,12,13);}}六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见)JUnit测试能让您更快地开发出质量更高的代码,能检查它们自身的运行结果并提供及时的反馈。其次JUnit通过单元测试,不仅能在开发阶段就能找出很多Bug,而且,多个TestCase能组合成TestSuite,让整个测试能自动完成,非常适合于XP方法。同时JUnit测试是用Java写成的。使得开发人员很容易的完成JUnit测试。还有JUnit是免费的。通过学习使用JUnit设计一个单元测试,初步学会了使用Eclipse中JUnit对自己学华北电力大学科技学院实验报告第页共页习程序进行测试的基本步骤和基本方法,掌握了单元测试的基础。Junit测试能够让程序员快速地开发出高质量的代码,能够检查自己运行的结果并提供及时的反馈。这个测试可以帮助我们在编写代码过程中发现自己程序的很多Bug.七、所附实验输出的结果或数据