系别班次学号姓名.………密………封………线………以………内………答………题………无………效……第1页共8页电子科技大学二零零八至二零零八学年第二学期软件测试技术(B卷)课程考试题(120分钟)闭卷考试时间:2008一二三四总分评卷教师说明:本试卷共四大题,试卷满分100分。注意:...请将所有答案填写在最后一页答题卡上。..................一、单项选择题:共20小题,每小题2分,满分40分。1.软件测试的目的:(c)A.避免软件开发中出现的错误B.发现软件开发中出现的错误C.尽可能发现并排除软件中潜藏的错误,提高软件的可靠性D.修改软件中出现的错误2、软件测试是采用(a)执行软件的活动。A.测试用例B.输入数据C.测试环境D.输入条件3、导致软件缺陷的最大原因是:(a)A.软件需求说明书B.设计方案C.编码D.维护4、在下列描述中,关于一个软件缺陷状态完整变化的错误描述是(d)A、打开——修复——关闭B、打开——关闭C、打开——保留D、激活——修复——重新打开5、在下列描述中,关于测试与调试的说法错误的是(d)A、测试是显示错误的行为;而调试是推理的过程;B、测试显示开发人员的错误。调试是开发人员为自己辩护;C、测试能预期和可控。调试需要想象、经验和思考;D、测试必须在详细设计已经完成的情况下才能开始;没有详细设计的信息调试不可能进行。6、某次程序调试没有出现预计的结果,下列(b)不可能是导致出错的原因。A.变量没有初始化B.编写的语句书写格式不规范C.循环控制出错D.代码输入有误7、软件缺陷修复的代价最高的阶段为(a)A、发布阶段B、需求阶段C、设计阶段D、编码阶段8、不属于逻辑覆盖方法的是(d)。系别班次学号姓名.………密………封………线………以………内………答………题………无………效……第2页共8页A.组合覆盖B.判定覆盖C.条件覆盖D.接口覆盖9、(d)是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。A、条件覆盖B、组合覆盖C、判定覆盖D、语句覆盖10、(a)是设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。A、判定-条件覆盖B、组合覆盖C、判定覆盖D、条件覆盖11.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(b)A.功能测试B.单元测试C.结构测试D.验收测试12、单元测试的主要任务不包括(b)。A.出错处理B.全局数据结构C.独立路径D.模块接口13、如下图所示的N-S图,至少需要(b)个测试用例完成逻辑覆盖。A.12B.48C.27D.1814、单元测试中用来模拟实现被测模块需调用的其他功能模块的是(b)。A.驱动模块B.桩模块C.主控模块D.真实的被调用模块15、集成测试计划应该在(b)阶段末提交。A、需求分析B、概要设计C、详细设计D、单元测试完成16、下列关于程序效率的描述错误的是(c)。A.提高程序的执行速度可以提高程序的效率B.降低程序占用的存储空间可以提高程序的效率C.源程序的效率与详细设计阶段确定的算法的效率无关D.好的程序设计可以提高效率系别班次学号姓名.………密………封………线………以………内………答………题………无………效……第3页共8页17、下列(b)是对程序流程图进行简化后得到的,它可以更加突出的表示程序控制流的结构,且不包含复合条件。A.DD-路径图B.控制流图C.MM-路径图D.模块调用图18、自底向上增量式集成测试中,下面(c)描述是正确的。A.测试由桩模块控制B.最上面的模块最先测试C.父单元用测试过的子单元测试D.包含树的深度优先或广度优先遍历过程19、测试后程序中残存的错误数目与该程序中已发现的错误数目成(d)。A.未知B.反比C.相等D.正比20、针对是否对无效数据进行测试,可以将等价类测试分为(b)1)标准(一般)等价类测试2)健壮等价类测试3)弱等价类测试4)强等价类测试A.3)4)B.1)2)C.1)3)D.2)4)二、判断题:共20小题,每题1分,满分20分)1、一个程序中所含有的路径数与程序的复杂程度有着直接的关系。(∨)2、结构性测试是根据软件的规格说明来设计测试用例。(x)3、错误推测法是根据输出对输入的依赖关系来设计测试用例的。(x)4、软件缺陷属性包括缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因。(∨)5、对于一个含有n个变量的程序,采用边界值健壮性测试方法来测试程序会产生6n+1个测试用例。(∨)6、数据流测试是主要用作路径测试的真实性检查。两种形式分别为定义/使用测试、基于程序片的测试。(∨)7、软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。(x)8、测试用例应由测试输入数据和对应的实际输出结果这两部分组成。(x)9、测试是可以穷尽的。(x)10、测试自动化是万能的。(x)11、软件缺陷可能会被修复,可能会被保留或者标识出来。(∨)12、每一个软件项目都有一个最优的测试量。(∨)13、黑盒测试往往会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。(∨)14、代码审查工作属于静态测试。(∨)15、软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一。(∨)16、回归测试是在软件修改后再次运行以前为查找错误而执行程序曾用过的测试用例.∨17、集成测试是为确定软件系统是否满足验收标准以及使客户决定是否接受而进行的正式测试.(x)系别班次学号姓名.………密………封………线………以………内………答………题………无………效……第4页共8页18、测试按照测试层次可以划分成为单元测试、集成测试和系统测试。(∨)19、只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。(x)20、永远有缺陷类型会在测试的一个层次上被发现,并且能够在另一个层次上逃避检测。(∨)三、简答题:共4小题,每题5分,满分20分。1、优秀的软件测试工程师应具备哪些素质?答:具有探索精神、具有良好的计算机编程基础、故障排除能手、坚持不懈的精神、具有创新精神和超前意识、追求完美、判断准确、具有整体观念,对细节敏感、团队合作精神,沟通能力2、有二元函数f(x,y),其中x∈[1,12],y∈[1,31];请写出该函数采用基本边界值分析法设计的测试用例。答:{1,15,2,15,11,15,12,15,6,15,6,1,6,2,6,30,6,31}3、黑盒测试与白盒测试各有哪些优缺点,应该如何结合才能解决漏洞和冗余问题?答:功能性测试具有两大优点:功能性测试与软件如何实现无关;测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间。缺点:测试用例之间可能存在严重的冗余,还会有位测试的软件漏洞。结构性测试局限于已经完成的代码行为当中,离代码太近。因此可以结构性测试指标去解决冗余和漏洞问题。如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用力中存在漏洞。因此路径测试可以提供作为功能性测试交叉检查的一组指标。4、有一段程序如下,请设计测试用例以满足语句覆盖要求。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;}//语句块2j=j%3;//语句块3}答:要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。四、综合题:共2小题,每题10分,满分20分。1、使用基本路径测试方法,为以下程序段设计测试用例。(1)画出程序的控制流图,编号已经给出。(2)计算程序的循环复杂度,导出程序基本路径集中的独立路径条数。系别班次学号姓名.………密………封………线………以………内………答………题………无………效……第5页共8页(3)导出基本路径集,确定程序的独立路径。(4)根据(3)中的独立路径,设计测试用例(确保基本路径集中的每一条路径的执行)的输入数据和预期输出。voidDo(intX,intA,intB){1if((A1)&&(B=0))2X=X/A;3if((A=2)||(X1))4X=X+1;5}由于控制流图假设的是单条件,因此对于复合条件,可将其分解为多个单个条件,并映射成控制流图。1:A1;2:B=0;3:X=X/A;4:A=2;5:X1;6:X=X+1;7:}2、场景要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。请建立决策表。(1)确定规则的个数。(2)列出所有的条件桩和动作桩。(3)填入条件项。(4)填入动作项,得到初始决策表。(5)简化决策表,合并相似规则。软件测试技术(B卷)答案及评分标准一、单选题(20×2=40分)题号12345678910答案CAADDBADDA题号11121314151617181920答案BBBBBCBCDB二、判断题(20×1=20分)系别班次学号姓名.………密………封………线………以………内………答………题………无………效……第6页共8页题号12345678910答案√××√√√××××题号11121314151617181920答案√√√√√√×√×√三、简答题(4×5=20分)1.答:具有探索精神、具有良好的计算机编程基础、故障排除能手、坚持不懈的精神、具有创新精神和超前意识、追求完美、判断准确、具有整体观念,对细节敏感、团队合作精神,沟通能力。1.具有良好的计算机编程基础,有一定的软件开发经验;有逆向思维的能力2.善于同软件开发人员沟通;善于同领导沟通3.掌握一些自动化测试工具;善于学习的能力4.提高自己的表达能力;了解业务知识5.具有探索精神;故障排除能手6.坚持不懈的精神;具有创新精神和超前意识7.追求完美;判断准确;具有整体观念,对细节敏感;团队合作精神2.答:{1,15,2,15,11,15,12,15,6,15,6,1,6,2,6,30,6,31}3.答:功能性测试具有两大优点:功能性测试与软件如何实现无关;测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间。缺点:测试用例之间可能存在严重的冗余,还会有位测试的软件漏洞。结构性测试局限于已经完成的代码行为当中,离代码太近。因此可以结构性测试指标去解决冗余和漏洞问题。如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用力中存在漏洞。因此路径测试可以提供作为功能性测试交叉检查的一组指标。4.答:要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。测试用例输入为:{x=4、y=5、z=5}四、综合题(每题10分,共计20分)1、画出控制流图:如右图所示计算环形复杂度:系别班次学号姓名.………密………封………线………以………内………答………题………无………效……第7页共8页10(条边)-7(个节点)+2=5导出独立路径(用语句编号表示)路径1:1→2→3→4→5→6→7路径2:1→4→5→6→7路径3:1→2→4→6→7路径4:1→2→4→5→7路径5:1→2→3→4→5→7测试用例用例号路径输入数据ABX预期输出XTC11→2→3→4→5→6→73063TC21→4→5→6→70134TC31→2→4→6→72112TC41→2→4→5→73100TC51→2→3→4→5→730312.解答:①确定规则的个数:这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则。②列出所有的条件桩和动作桩:③填入条件项。可从最后1行条件项开