白盒测试和黑盒测试实验报告_第1页
白盒测试和黑盒测试实验报告_第2页
白盒测试和黑盒测试实验报告_第3页
白盒测试和黑盒测试实验报告_第4页
白盒测试和黑盒测试实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、软件质量保证与测试实验指导计算机工程学院测试环境配置1. settingJunit(l)startEclipseSelectwindows-preferences-java-buildpathclasspathvariables(2)clicknew,thefigureofnewvariableentryisshown.(3)nameJUNIT_LIBselecfile-选择JUnit插件所对应的JAR文件所在地,在Eclipse的安装目录的 plugins目录中2. JUNIT的组成框架其中,junit.framework 和 junit.runner 是两个核心包。junit.framew

2、ork负责整个测试对象的框架junit.runner负责测试驱动Junit的框架又可分为:A、被测试的对象。B、对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)C、测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包(TestSuite)。D、测试结果的描述与记录。(TestResult)oE、每一个测试方法所发生的与预期不一致状况的描述,称其测试失败元素 (TestFailure)F、JUnitFramework 中的出错异常(AssertionFailedError)。JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派

3、生自Test 的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对象,逐个调 用它们的run()方法。3. JUnit中常用的接口和类Test接口 一一运行测试和收集测试结果Test接口使用了 Composite设计模式,是单独测试用例(TestCase ,聚合 测试模式(TestSuite)及测试扩展(TestDecoratoir)的共同接口。它的publicintcountTestCases()方法,它来统计这次测试有多少个 TestCase 另外一个方法就是 publicvoid run (TestResult) , TestResult是实例接受测试结 果,run

4、方法执行本次测试。TestCaseJ由象类定义测试中固定方法TestCase® Test接口的抽象实现,(不能被实例化,只能被继承)其构造函 数TestCase(stringname)!据输入的测试名称name创建一个测试实例。由于每一 个TestCase在创建时都要有一个名称,若某测试失败了,便可识别出是哪个测 试失败。TestCase类中包含的setUp()、tearDown()方法。setUp()方法集中初始化测试 所需的所有变量和实例,并且在依次调用测试类中的每个测试方法之前再次执行 setUp()方法。tearDown()方法则是在每个测试方法之后,释放测试程序方法中引 用

5、的变量和实例。开发人员编写测试用例时,只需继承 TestCase来完成run方法即可,然后 JUnit获得测试用例,执行它的run方法,把测试结果记录在 TestResult之中。Assert静态类一系列断言方法的集合Assert包含了一组静态的测试方法,用于期望值和实际值比对是否正确,即 测试失败,Assert类就会抛出一个 AssertionFailedError异常,JUnit测试框架将 这种错误归入Failes并加以记录,同时标志为未通过测试。如果该类方法中指定 一个String类型的传参则该参数将被做为 AssertionFailedError异常的标识信息, 告诉测试人员改异常的详

6、细信息。JUnit提供了 6大类31组断言方法,包括基础断言、数字断言、字符断言、 布尔断言、对象断言。其中 assertEquals(Objectexpcted,Objectactual内部逻辑判断使用 equals()方 法,这表明断言两个实例的内部哈希值是否相等时,最好使用该方法对相应类实例的值进行比较。而 assertSame(Objectexpected,Objectactual内部逻辑判断使 用了 Java运算符“二工这表明该断言判断两个实例是否来自于同一个引用(Reference),最好使用该方法对不同类的实例的值进行比对。asserEquals(Stringmessage,St

7、ringexpected,StringactuO)方法对两个字符串进行逻 辑比对,如果不匹配则显示着两个字符串有差异的地方。ComparisonFailure类提 供两个字符串的比对,不匹配则给出详细的差异字符。TestSuite测试包类多个测试的组合TestSuite类负责组装多个TestCases待测得类中可能包括了对被测类的多个 测试,而TestSuit负责收集这些测试,使我们可以在一个测试中,完成全部的对 被测类的多个测试。TestSuite类实现了 Test接口,且可以包含其它的 TestSuites它可以处理加 入Test时的所有抛出的异常。TestSuite处理测试用例有6个规约

8、(否则会被拒绝执行测试)A测试用例必须是公有类(Public)B测试用例必须继承与TestCase类C测试用例的测试方法必须是公有的(Public)D测试用例的测试方法必须被声明为 VoidE测试用例中测试方法的前置名词必须是testF测试用例中测试方法无任何传递参数TestResult结果类和其它类与接口TestResult结果类集合了任意测试累加结果,通过TestResult实例传递每个测 试的Run ()方法。TestResult在执行TestCase时如果失败会异常抛出TestListener接口是个事件监听规约,可供TestRunner类使用。它通知listener 的对象相关事件,

9、方法包括测试开始startTest(Testtest)测试结束endTest(Testtest), 错误,增加异常 addError(Testtest,Throwablet)和增加失败 addFailure(Testtest,AssertionFailedErrort)TestFailure失败类是个失败”状况的收集类,解释每次测试执行过程中出现 的异常情况。其toString()方法返回失败”状况的简要描述4. 利用Junit开发一个简单的Java程序(1) File-new-Javaproject,名称为 “ HelloWorldWithJUnit ”建立两个文件夹,分别为src和juni

10、ttestsrc存放实现主要功能的文件junittest存放测试功能文件(2)创建测试类选中“ HelloWorldWithJUnit ”项目中的 junittest包文件夹,右键并选择 new-other-Junit-JunitTestCase(3)选择 “next”,在 NewJunitTestCase中的 name中输入 “HelloWorldTest” , 在package中输入“junittest”,然后单击“巾nish”。(4)现在初步计划被测试文件功能非常简单,只有一个方法ReturnValue,作用是返回“ HelloWorld ",所以测试类中有对ReturnVal

11、ue这个方法进行测 试的类。当然,测试要能进行,该测试类必须为主类,存在 main方法。HelloWorldTest.java 的源代码如下:选择 run-runas-Junittest弹出一个Junit窗口,发现在该窗口中有一个红条,这说明存在错误。(5)创建 HelloWorld 类建立一个HelloWorld类,并输入以下代码:(6)在 HelloWorldTest.java 中力口入 import src*;此时以Junit测试的方式来运行HelloWorldTest.java ,出现了含有绿色的窗口, 测试成功。assertEqualspublicstaticvoid assertE

12、quals (Assertsthattwoobjectsareequal.Iftheyarenot,an AssertionError isthrownwiththegivenmess age.Ifexpected andactual arenull ,theyareconsideredequal.Parameters:messagetheidentifyingmessageforthe AssertionError (null okay) expected -expectedvalue actual -actualvalueassertFalsepublicstaticvoid assert

13、Falseboolean?condition)Assertsthataconditionisfalse.Ifitisn'titthrowsan AssertionError withthegivenmessage.Parameters:messagetheidentifyingmessageforthe AssertionError (null okay) condition -conditiontobecheckedassertTruepublicstaticvoid assertTrueboolean?condition)Assertsthataconditionistrue.If

14、itisn'titthrowsan AssertionError withthegivenmessage.Parameters:messagetheidentifyingmessageforthe AssertionError (null okay)condition -conditiontobecheckedassertNullpublicstaticvoid assertNullAssertsthatanobjectisnull.Ifitisnot,an AssertionError isthrownwiththegivenmessage. Parameters: messaget

15、heidentifyingmessageforthe AssertionError (null okay) object -Objecttocheckor nullassertNotNullpublicstaticvoid assertNotNullAssertsthatanobjectisn'tnull.Ifitisan AssertionError isthrownwiththegivenmessage.Parameters: messagetheidentifyingmessageforthe AssertionError (null okay) object -Objectto

16、checkor nullassertSamepublicstaticvoidassertSame(口,Assertsthattwoobjectsrefertothesameobject.Iftheyarenot,an AssertionError isthrownwitht hegivenmessage.Parameters:messagetheidentifyingmessageforthe AssertionError (null okay) expected -theexpectedobject actual -theobjecttocompareto expectedassertNot

17、Samepublicstaticvoid assertNotSameAssertsthattwoobjectsdonotrefertothesameobject.Iftheydorefertothesameobject,an Assertio nError isthrownwiththegivenmessage.Parameters:messagetheidentifyingmessageforthe AssertionError (null okay) unexpected -theobjectyoudon'texpect actual -theobjecttocompareto u

18、nexpectedfailpublicstaticvoid failFailsatestwiththegivenmessage.Parameters:messagetheidentifyingmessageforthe AssertionError (null okay)SeeAlso:AssertionError实验一白盒测试方法、实验目的1、掌握白盒测试基本技术,并能够应用白盒测试技术设计测试用例2、掌握白盒测试中的逻辑覆盖和路径测试方法二、实验任务使用白盒测试方法为下面的程序设计测试用例(使用逻辑覆盖和路径测试方法):程序要求:10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称

19、出假球。程序设计思路:第一次使用天平分别称5个球,判断轻的一边有假球;拿出轻的5个球,取出其中4个第二次称,两边分别放 2个球:如果两边同重,则剩下的球为假球;若两边不同重,拿出 轻的两个球称第三次,轻的为假球。图1判断假球的程序流程图三、实验要求1、做好实验预习,掌握并熟悉本实验中所使用的测试环境及相应的测试软件2、写出实验报告,内容是:(1)实验目的(2)实验内容实验源代码(或测试脚本)可不写出,但是一定要写出实验中出现的错误,以及 解决错误的方法(3)出错信息及处理方法(4)实验结果,包括实验处理结果和设计心得。单元测试覆盖率-使用CloverClover是对单元测试覆盖率进行统计的软件

20、,在Eclipse中使用Clover,首先使用从下载Clover ,还需要申请一个license ,否则无法使用。目前免费下 载的基本都是30天试用版。下载后把Clover压缩包里的两个文件夹,features 和plugins ,复制到 Eclipse安装目录中替换原来的两个文件夹。1.打开 Eclipse,从 Window->Showview->other ,可以看到 Clover 的信息:?2 .还需要导入 clover.license 。从 Preferences->Clover->License 进入:并将申请到的的license粘帖到这里,至此Clover已

21、经安装完成,开始进入单 元测试。3.可以对之前已经做过的project进行覆盖率的计算。也可新建了一个project , 结构如下:Sample.java 和 SampleTest.java内容分另是:Java代码1. package?2. ?3. public?class?Sample?4. ?public?Integer?add(Integer?a,?Integer?b)?5. ?if?(a?=?null?|?b?=?null)?6. ?return?null;?7. ?8. ?Integer?sum?=?new?Integer(Value()?+?Value();?9

22、. ?return?sum;?10. ?11. ?Java代码1. package?2. ?3. import?4. import?5. ?6. public?class?SampleTest?extends?TestCase?7. ?8. ?protected?void?setUp()?throws?Exception?9. ?super.setUp();?10. ?11. ?12. ?public?void?testAdd()?13. ?Sample?sample?=?new?Sample();?14. ?Integer?a?=?new?Integer(1);?15. ?Integer?b

23、?=?new?Integer(2);?16. ?Integer?c?=?sample.add(a,?b);?17. ?assertNotNull(c);?18. ?19. ?20. ?protected?void?tearDown()?throws?Exception?21. ?super.tearDown();?22. ?23. ?24. ?右击 JunitInAction 工程,选择 Properties->Clover 。上面有一个 EnableCloverinthisproject ,勾上,apply->OK.从 Window->Showview->other

24、进入,找至U CoverageExplorer,打开,看到 Clover选项的相关信息:"是"即可点击红框内的按钮,会弹出重新构建工程的提示,点击在CoverageExplorer界面下,我们会看到:右击 SampleTest.java ,选择 Runas->JUnitTest ,结果如下:可以看到Sample.java的覆盖率为71.4%.Clover还可以生成三种测试报告:PDF/HTML/XML 。按钮可以在 CoverageExplorer 那排的选项按钮里找到(runnewreport )。实验二黑盒测试一、实验目的1、掌握黑盒测试基本技术,并能够应用黑盒测

25、试方法设计测试用例2、熟悉黑盒测试中的等价类测试方法和边界值测试方法。二、实验任务使用等价类方法设计下面程序的设计用例:输入三个整数作为边,分别满足一般三角形、等腰三角形和等边三角形。三、实验内容和步骤1、使用等价类划分法设计下面的测试用例:(1 )源程序packagep1;import java . io .*;publicclass JTriangle ?privateint b, c, a;?privatestaticint x1,x2, x3;?privatestatic String s1,s2, s3;?publicvoid setA(int a)?this . a=a;?publ

26、icvoid setB (int b)?this . b=b;?publicvoid setC(int c)?this . c=c;?publicboolean IsTriangle ()?f (a+b>c&&a+c>b&&b+c>a&&a!=0&&b!=0&&c!=0)?eturn 出;?else?eturn false ;?public JTriangle ()?public JTriangle (int _a, int _b, int _c)?setA(_a);?setB(_b);?setC

27、(_c);?public String JudgeTriangle ()?f (IsTriangle ()?f (a=b&&a=c)?eturn "等边三角形"?0lseif (a=b| b=c| a=c)?eturn "等腰三角形"?0lse?eturn " 一般三角形"?else?才eturn "不能组成三角形"?publicboolean ISNumble( String s)?if (s. length ()= 0)?return false ;?else ?charch二 s. toCha

28、rArray ();?or (int i =0; i <ch. length ; i +)?%?f (ch i >='0' &&chi<='9')?ontinue ;?良lse?etum false?return true ;?publicvoid SetTriangle ()?try?BufferedReaderin =newBufferedReader (newInputStreamReade r( System. in);?System. out. println ("请输入三角形的三边:");?System. out. println ("a=");?s1=in . readLine ();?wh

温馨提示

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

评论

0/150

提交评论