练习题1.软件调试的目的是?A.找出错误所在并改正之.B.排除存在错误的可能性C.对错误性质进行分类D.统计出错的次数2.下列叙述中,哪一项是正确的...?DA.用黑盒法测试时,测试用例是根据程序内部逻辑设计的;B.测试是为了验证该软件已正确地实现了用户的要求;C.对面向对象程序来说,单元测试的最小单元是每条程序语句,即以分号结尾的程序;D.发现错误多的程序模块,残留在模块中的错误也多。3.创建一个基于JUNIT的单元测试类,该类必须扩展?CA.TestSuiteB.AssertC.TestCaseD.JFCTestCase4.以下对单元测试,不正确...的说法是?CA.单元测试的主要目的是针对编码过程中可能存在的各种错误;B.单元测试一般是由程序开发人员完成的C.单元测试是一种不需要关注程序结构的测试;D.单元测试属于白盒测试的一种。5.测试驱动开发的含义是?BA.先写程序后写测试的开发方法B.先写测试后写程序,即“测试先行”C.用单元测试的方法写测试D.不需要测试的开发6.用JUNIT断言一个方法输出的是指定字符串,应当用的断言方法是?CA.assertNotNull()B.assertSame()C.assertEquals()D.assertNotEquals()7.TestCase是junit.framework中的一个?CA.方法B.接口C.类D.抽象类8.TestSuite是JUNIT中用来?AA.集成多个测试用例B.做系统测试用的C.做自动化测试用的D.方法断言9.对于测试程序的一些命名规则,以下说法正确..的一项是?CA.测试类的命名只要符合Java类的命名规则就可以了;B.测试类的命名一般要求以Test打头,后接类名称,如:TestPerson;C.测试类的命名一般要求以Test结尾,前接类名称,如:PersonTest;D.测试类中的方法都是以testXxx()形式出现。10.通常,初始化一个被测试对象,会在测试类的?中进行。BA.tearDown()B.setUp()C.构造方法D.任意位置11.以下不属于单元测试优点的一项是?DA.它是一种验证行为B.它是一种设计行为C.它是一种编写文档的行为D.它是一种评估行为12.从技术角度分,不是一类的测试是?CA.黑盒测试B.白盒测试C.单元测试D.灰盒测试13.数据驱动测试也称?CA.单元测试B.白盒测试C.黑盒测试D.确认测试14.逻辑驱动测试也称?CA.单元测试B.灰盒测试C.白盒测试D.用户测试15.以下不属于白盒测试的优点是?BA.增大代码的覆盖率B.与软件的内部实现无关C.提高代码的质量D.发现代码中隐藏的问题16.组装测试又称为?AA.集成测试B.系统测试C.回归测试D.确认测试17.对于单元测试框架,除了用于Java的JUnit还有CppUnit、NUnit等,它们是?AA.C++单元测试框架、.NET单元测试框架B.C语言单元测试框架、通用单元测试框架C.C++单元测试框架、自动化单元测试框架D.自动化单元测试框架、.NET单元测试框架18.对于JFCUnit,以下说法不正确...的是?DA.它是JAVAGUI的测试框架B.它是JUnit的扩展,用于GUI的测试C.编写JFCUnit的测试用例需要扩展JFCTestCaseD.JFCUnit是JavaGUI测试框架和JUnit没有任何关系19.以下哪一项不属于WEB测试的范畴?FA.功能B.性能C.可用性D.安全性E.客户端兼容性F.可扩展性20.连接速度测试属于?CA.功能测试B.客户端兼容性测试C.性能测试D.安全测试21.LoadRunner是?AA.工业标准级负载测试工具B.一款下载软件C.单元测试框架D.集成开发工具22.JUnit的特征,不正确...的一项是?DA.用于测试期望结果的断言B.用于共享共同测试数据的测试工具C.易于集成到测试人员的构建过程中,Jnuit和Ant的结合可以实施增量开发D.JNuit是收费的,不能做二次开发23.JUnit的两个模式:集成模式和?AA.命令模式B.适配器模式C.单例模式D.接口模式24.测试6的阶乘,断言方法是?BA.Assert.assertSame(720,jc.jieChen(6))B.Assert.assertEquals(720,jc.jieChen(6))C.Assert.assertNull(720,jc.jieChen(6))D.Assert.assertTrue(720,jc.jieChen(6))25.什么是软件测试?答案1:软件测试是为了发现错误而执行程序的过程。答案2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例运行程序,以及发现错误的过程。26.软件测试的分类?1.从技术角度分:黑盒测试白盒测试灰盒测试ALAC测试2.从执行阶段角度分:单元测试集成测试确认测试系统测试27.TDD的中文全称是什么?它的思想是什么?TDD中文是测试驱动开发,它是一种以“测试先行”为原则的开发方法,开发人员在编写产品代码前,通常先写出对应的测试程序,后在编写产品代码,然后再进行测试。28.请解释下图的含义这是测试模型中的“V”模型描述了一些不同的测试级别,并说明了这些级别所对应的生命周期中不同的阶段。如模型图中所示,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。29.单元测试的概念是什么?答案1:单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。答案2:单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。30.编写一个测试输出为“你好!南工院”的测试案例要求:以show()作为字符串的打印方法。要点提示:测试程序中要用断言assertEquals(“你好!南工院”,XXX.show())或Assert.assertEquals(“你好!南工院”,XXX.show()).注意:测试类命名和测试方法命名(类命名应以Test结尾,测试方法命名应以test打头)31.WEB测试主要围绕哪几个方面?功能性能可用性客户端兼容性安全性32.什么是压力测试?进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。33.请画出测试模型中“V”模型的结构图?34.怎么编写测试用例?1.模拟正常的使用过程2.分支覆盖,路径覆盖3.真实数据,边界数据4.语句数据简单,容易理解5.避免依赖6.记录日志上机练习:编写一个N的阶乘程序,并对其进行测试。要求:1.正确、完整的程序代码和测试代码2.基于JUNIT单元测试框架3.代码结构良好、可读性强。N阶乘程序:importjava.math.BigInteger;importjava.util.Scanner;/**@authordaiyongming**/publicclassJieChen{longresult=1;longdoJieChen(inta){for(inti=2;i=a;i++){result*=i;}returnresult;}publicstaticvoidmain(Stringargs[]){JieChenjc=newJieChen();Scannerc=newScanner(System.in);System.out.print(jc.doJieChen(c.nextInt()));}}测试N阶乘程序:importjunit.framework.TestCase;/***@authordaiyongming**/publicclassJieChenTestextendsTestCase{/*(non-Javadoc)*@seejunit.framework.TestCase#setUp()*/JieChenj;protectedvoidsetUp()throwsException{super.setUp();j=newJieChen();}publicvoidtestDoJieChen(){assertEquals(这是测试阶乘的值:,24,j.doJieChen(4));}}35.实现一个将字符串全部变成小写的转换器,并对其进行测试要求:1.正确、完整的程序代码和测试代码2.基于JUNIT单元测试框架3.代码结构良好。转换器程序:packagedemo;publicclassStringDemo{publicStringDemo(){}publicStringsmallString(Stringstr)//字符串变小写{Stringtemp=error;if(str.equals()||str==null){returntemp;}Strings=str.toLowerCase();returns;}}测试程序:packagedemo.test;importdemo.StringDemo;importjunit.framework.TestCase;publicclasstestStringDemoextendsTestCase{privateStringDemostr;protectedvoidsetUp(){str=newStringDemo();}publicvoidtestSmallString(){assertEquals(一个字母变小写,str.smallString(A),a);assertEquals(字符串全是大写,str.smallString(ABC),abc);assertEquals(含有小写的字符串,str.smallString(aBc),abc);assertEquals(含有数字的字符串,str.smallString(A1C),a1c);assertEquals(全是数字的字符串,str.smallString(123),123);assertEquals(含有特殊字符的处理,str.smallString(,Adc),,adc);assertEquals(异常处理,str.smallString(),error);}}36.翻译UMLisanobject-orientedmodelinglanguage,object-orientedratherthanamethodofmodeling,itisonlyamodelfortheelementsandsymbolsandthattheirdefinitionofsemantics,donotinvolvehowtoSystemmodeling,theprocessitselfdidnotprovidetheconcept,whichmeansthatusersintheuseofUMLmodeling,youcanuseanyappropriatemethodandprocess.Selectionprocesswiththemodel/softwaredevelopmentprocessofdifferentfactors,suchassoftwaredevelopedbythetype(suchasreal-timesystems,informationsystemsanddesktopproducts)andthedevelopmentoftheobjective.Userswillbeselectedaccordingtodifferentneedsofdifferentprocess.However,theuseofUMLmodelingstillhasalargelyunifiedframework