-1-期末试卷江西先锋学院2011-2012学年第二学期《软件测试技术》试题库答案一、填空题(每空2分,共15空,分数为30分)1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支______被执行一次。至少2、黑盒测试的具体技术方法____________、__________、__________、____________。等价类划分法,边界值分析法,决策表法,因果图法3、黑盒测试又称之为___________测试。功能4、等价类划分有两种不同的情况:____________和____________。有效等价类,无效等价类5、根据覆盖目标的不同,逻辑覆盖又可分为:________________,_____________,_______________,__________________,条件组合覆盖,判断/条件覆盖。语句覆盖,判定覆盖,条件覆盖,路径覆盖6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类__白盒测试工具____,_黑盒测试工具___和___测试管理工具____。白盒测试工具、黑盒测试工具、测试管理工具7、软件测试是为发现程序中的___错误________而执行程序的____过程_____。错误,过程8、测试用例是由___测试输入数据_和预期的___输出数据_两部分组成。测试输入数据,输出数据9、白盒测试又称为__结构测试____________,可以分为___静态测试____和__动态测试___两大类。结构测试,静态测试,动态测试10、软件是包括____程序___﹑___数据___﹑______相关文档____的完整集合。程序,数据,相关文档11、边界值分析法属于___黑盒测试_________。黑盒测试12、单元测试是以__详细设计_说明书为指导,测试源程序代码。详细设计13、集成测试以____概要__说明书指导,测试软件结构。概要设计-2-14、确认测试以___需求分析_说明书为指导。需求分析15、软件开发的基本过程_需求分析_,_概要设计____,详细设计__,___编码___,____测试_________,___维护__。需求分析、概要设计、详细设计,编码,测试、维护16、代码复审属于_静态测试__,不实际运行程序。静态测试17、集成测试把模块组成成系统的测试方式:____一次性集成测试__和_增量式集成测试_。一次性集成测试,增量式集成测试18、黑盒测试有两种基本方法,即:_____通过测试_______和_失败测试___。通过测试,失败测试19、Junit中的所有的Assert方法全部放在__Assert_类,用于对比__期望值和实际值是否相同。Assert,期望值20、Junit是一个开放源代码的__java_测试框架,用于编写和运行可重复的测试。java21、在Junit中3.8中testXXX()测试方法必须满足几个条件:__public__,__void_和无方法参数。public,void二、选择题(每题3分,共10题,分数为30分)1.下列哪一项不是白盒测试?(C)A.单元测试B.集成测试C.系统测试D.回归测试2.属于黑盒测试的方法?(C)A.基于基本路径B.控制流C.基于用户需求测试D.逻辑覆盖3.在Assert类中断言对象为NULL是_____。(C)A.assertEqualsB.assertTrueC.assertNullD.fail4.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A)A.系统测试B.集成测试C.单元测试D.功能测试5.在Assert类中断言两个对象相等是_____。(A)A.assertEqualsB.assertTrueC.assertSameD.fail6.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。(B)-3-A.语句覆盖B.判定覆盖C.条件覆盖D.路径覆盖7.在Assert类中断言测试失败是_____。(D)A.assertEqualsB.assertTrueC.assertSameD.fail8.软件测试的目的是___________。(C)A.表明软件的正确性B.评价软件质量C.尽可能发现软件中的错误D.判定软件是否合格9.关于白盒测试与黑盒测试的最主要区别,正确的是___________。(A)A.白盒测试侧重于程序结构,黑盒测试侧重于功能B.白盒测试可以使用测试工具,黑盒测试不能使用工具C.白盒测试需要程序参与,黑盒测试不需要D.黑盒测试比白盒测试应用更广泛10.软件测试类型按开发阶段划分___________。(B)A.需要测试﹑单元测试﹑集成测试B.单元测试﹑集成测试﹑确认测试﹑系统测试﹑验收测试C.单元测试﹑集成测试﹑确认测试D.调试﹑单元测试﹑功能测试11.在Junit中,testXXX()方法就是一个测试用例,测试方法是______。(B)A.privatevoidtestXXX()B.publicvoidtestXXX()C.publicfloattestXXX()D.publicinttestXXX()12.在下面所列举中的逻辑测试覆盖中,测试覆盖最强的是__________。(B)A.条件覆盖B.条件组合覆盖C.语句覆盖D.判定覆盖13.在下面所列举中的逻辑测试覆盖中,测试覆盖最弱的是__________。(C)A.条件覆盖B.条件组合覆盖C.语句覆盖D.判定覆盖-4-14.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(B)A.集成测试B.单元测试C.目的测试D.确认测试15.增量式集成测试有3种方式:自顶向下增量测试方法,和混合增量测试方式。(B)A.自中向下增量测试方法B.自底向上增量测试方法C.多次性测试D.维护16.Junit的TestCase类提供和tearDown()方法,分别完成对测试环境的建立和拆除。(A)A.setUp()B.set()C.setap()D.setDown()17.___________方法根据输出对输入的依赖关系设计测试用例。(C)A.路径测试B.等价类C.因果图D.归纳测试18.Junit测试在单元测试阶段测试,主要用于________。(A)A.白盒测试B.灰盒测试C.黑盒测试D.确认测试19.不属于白盒测试的技术是___________。(C)A.路径覆盖B.判定覆盖C.边界值分析D.条件覆盖20.软件测试过程中的集成测试主要是为了发现___________阶段的错误码。(B)A.需求分析B.概要设计C.编码D.维护21.增量式集成测试有3种方式:,自底向上增量测试方法和混合增量测试方式。(A)A.自顶向下增量测试方法B.一次性集成测试C.多次性测试D.维护22.Junit适用于java开发人员在______阶段,进行单个方法实现功能或者类本身的测试,主要用于-5-白盒测试。(C)A.集成测试B.验收测试C.单元测试D.确认测试23.软件测试是按照特定的规程,___________的过程。(A)A.发现软件错误B.说明程序正确C.证明程序没有错误D.设计并运行测试用例24.一个成功的测试是___________。(B)A.发现错误码B.发现了至今尚未发现的错误C.没有发现错误码D.证明发现不了错误25.按照测试组织划分,软件测试可分为:开发方测试,第三方测试,___________。(C)A.集成测试B.确认测试C.用户测试D.灰盒测试26.下列模型哪个软件测试过程模型___________。(A)A.W模型B.漠布模型C.L模型D.G模型27.Junit有两个包:__________和Junit.extensions。(B)A.Junit.frametestB.Junit.frameworkC.Junit.ameworkD.Junit.assert28.单元测试一般以__________为主。(A)A.白盒测试B.黑盒测试C.系统测试D.分析测试29.编码阶段产生的错误由__________检查出来的。(A)A.单元测试B.集成测试C.系统测试D.有效性测试30.代码检查法有桌面检查法,走查和__________。(B)A.静态测试B.代码审查C.动态测试D.白盒测试三﹑简答题(每题10分,共4题,分数为40分)1.计算环路复杂度方法有哪三种?答:(1)V(G)=判定节点数+1;-6-(2)V(G)=E-N+2;(3)V(G)=区域数+12.白盒测试有几种方法?答:白盒测试方法分为两大类:静态测试方法和动态测试方法。静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。3.什么是软件测试,软件测试分为哪几个阶段。答:软件测试是为了发现程序中的错误而执行程序的过程。软件测试一般分为单元测试、集成测试和系统测试。4.比较白盒测试和黑盒测试?答:使用白盒测试方法时,测试根据程序的内部逻辑和指定的覆盖标准;黑盒测试法是通过分析程序的接口功能设计测试用例的。5.为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。inttest(intA,intB){if((A1)AND(B10))thenX=A-B;if((A=2)OR(B20))thenX=A+B;returnx;}答:语句覆盖测试用例:A=2,B=0;判定覆盖测试用例:A=3,B=0;A=2,B=20;条件覆盖测试用例:A=2,B=0;A=0,B=21;6.为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。voidDoWork(intx,inty,intz){intk=0,j=0;if((x3)&&(z10)){k=x*y-1;j=sqrt(k);}//语句块1if((x==4)||(y5)){j=x*y+10;}//语句块2-7-j=j%3;//语句块3}答:语句覆盖测试用例:x=4、y=5、z=5;判定覆盖测试用例::x=4、y=5、z=5;x=2、y=5、z=5;条件覆盖测试用例:x=4、y=6、z=5;x=2、y=5、z=15;7.某公司人事软件的工资计算模块的需求规格说明书中描述:(1)年薪制员工:严重过失,扣当月薪资的4%;过失,扣年终奖的2%.(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%.根据题目内容列出条件和结果,给出决策表。答:条件:C1:年薪制C2:严重过失结果:e1:扣月4%e2:扣月8%e3:扣年2%1234条件:C1C211001010动作e1e2e3√√√√8.看代码程序:voidSort(intiRecordNum,intiType)1{2intx=0;3inty=0;4while(iRecordNum0)5{6If(iType==0)7x=y+2;8else9If(iType==1)10x=y+10;11else12x=y+20;13}14}要求(1)给以上代码画出控制流图(2)控制流图的环复杂度V(G),写出独立路径。答:-8-(1)控制流图:(2)V(G)=4路径1:4→14路径2:4→6→7→13→4→14路径3:4→6→9→10→13→4→14路径4:4→6→9→12→13→4→141.从供选择的答案中选出应填入下列()中的字句。软件测试的目的是(A)。为了提高测试的效率,应该(B)。使用白盒测试方法时,确定测试数据应根据(C)和指定的覆盖标准。与设计测试数据无关的文档是(D)。软件的集成测试工作最好由(E)承担,以提高集成测试的效果。供选择的答案:A.①评价软件的质量②发现软件的错误③找出软件中的所有错误④证明软件是正确的B.①随机地选取测试数据②取一切可能的输入数据作为测试数据③在完成编码以后制定软件的测试计划④选择发现错误的可能性大的数据作为测试数据C.①程序的内部逻辑②程序的复杂程度③使用说明书④程序的功能D.①该软件的设计