还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一章软件测试基础
一、判断分析题
1.软件测试的目的是尽可能多的找出软件的缺陷()
1.软件测试的目的是证明软件没有错误()
1.测试组负责软件质量
1.程序的效率与程序的复杂性相关
1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性
1.测试程序仅仅按预期方式运行就行了
1.好的测试员不懈追求完美
1.不存在质量很高但可靠性很差的产品
1.测试组负责软件质量
1.测试是为了验证该软件已正确地实现了用户的要求
1.发现错误多的程序模块,残留在模块中的错误也多
1.程序效率的提高主要应通过选择高效的算法来实现
1.测试人员要坚持原则,缺陷未修复完坚决不予通过()
1.项目立项前测试人员不需要提交任何工件()
1.缺陷跟踪系统只针对对测试人员来使用
1.从用户软件开发者的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品
1.软件项目在进入需求分析阶段,测试人员应该开始介入其中
1.测试是提高产品质量根本手段()
1.项目立项前测试人员不需要提交任何工件()
1.测试人员要坚持原则,缺陷未修复完坚决不予通过()
1.代码评审员一般由测试员担任()
1.代码评审是检查源代码是否达到模块设计的要求()
二、简答题
1.什么是软件测试?软件测试的目的和作用是什么
1.简述软件测试的目的和原则
1.软件缺陷产生的原因?
1.在软件工程或软件测试中,哪些软件问题被称为软件缺陷?
1.软件的缺陷等级应如何划分?
1.针对缺陷采取怎样的管理措施?
1.在测试实施之前,如何才能确定好的测试策略和测试方法?
1.什么是软件测试,以及软件测试的意义?
1.什么是软件测试?什么是测试用例,测试用例必须包括那几部分?
1.简述静态测试和动态测试的区别?
1.分析软件测试的复杂性
1.简述你对测试工作的认识过程、在以后的工作的一些建议
1.为什么需要软件测试用例?
1.软件测试和软件质量保证的区别与联系?
1.软件的质量与哪些因素有关?
1.请辨析软件的质量是“设计出来的”还是“测试出来的”观点
1.软件测试与软件开发的关系?第二章软件测试模型与过程简答题
1.不同测试模型的优缺点对比?
1.软件开发模型分哪几种?在进行软件测试中,如何确定合理的测试模型和测试过程?
1.简述软件测试与软件开发过程的关系
1.简述CMM的5个成熟度级别和各级的主要特征
1.请描述软件测试活动的生命周期请画出软件测试活动的流程图
1.在测试生命周期,测试过程分为几个阶段,以及各个阶段的含义?
1.软件测试层次包括哪些测试?并描述各测试层次的作用和特点
1.软件测试应该划分几个阶段简述各个阶段应重点测试的点各个阶段的含义?
1.请描述软件测试的一般步骤?试叙述对一个软件项目测试的全过程
1.在测试生命周期中,测试过程分为几个阶段?各个阶段的含义?以及各阶段的测试依据是什么?第三章软件测试管理简答题
1.你是如何理解测试的层次和主要的管理活动?
1.在实际项目中,如何对软件测试进行有效管理?
1.一名优秀的软件测试工程师应具备哪些素质?
1.如何利用相关测试管理工具,对测试计划和缺陷进行有效的管理?
1.在测试管理中,应该收集哪些测试过程数据,并如何对这些过程数据进行分析?
1.如何做一名合格的测试人员?
1.测试计划的目的是什么?第四章黑盒测试
一、判断分析题
1.软件测试员可以对产品说明书进行白盒测试
1.静态白盒测试可以找出遗漏之处的问题
1.总是首先设计白盒测试用例
1.用黑盒法测试时,测试用例是根据程序内部逻辑设计的
1.黑盒测试方法中最有效的是因果图法
1.软件测试按照测试过程分类为黑盒、白盒测试
1.白盒测试又称结构测试、逻辑驱动测试或基于程序的测试()
1.白盒测试时一般由开发人员兼任测试人员的角色()
1.黑盒测试是从用户观点出发的测试()
1.白盒测试是从用户观点出发的测试()
1.白盒测试根据程序外部特征进行测试,黑盒测试根据程序内部逻辑结构进行测试()
1.程序通过了全面的白盒测试,就不需要再进行黑盒测试了()
1.代码评审是检查源代码是否达到模块设计的要求()
1.代码评审员一般由测试员担任()
1.对于同一个测试对象,等价类的测试用例数多于边界值的测试用例数()
1.如果输入条件规定了取值范围,则可定义一个有效等价类和两个无效等价类()
1.不能对输出值域进行健壮性测试()
1.有n个变量的函数的健壮最坏情况测试用例的个数为5的n次方()
1.有n个变量的函数的健壮最坏情况测试用例的个数为7的n次方()
1.有n个变量的函数的健壮性测试用例的个数为5n+1()
1.有n个变量的函数的最坏情况测试会产生5的n次方个测试用例()
1.有n个变量的函数的边界值分析会产生4n+1个测试用例()
1.边界值分析的假设是“多缺陷”假设()
1.健壮性测试的主要价值是观察例外情况的处理()
1.在设计测试用例时,应包括合理的输入条件和不合理的输入条件
1.弱健壮等价类测试基于多缺陷假设()
1.强健壮等价类测试是基于多缺陷假设,并考虑了无效值()
1.强一般等价类测试考虑了无效值()
1.弱一般等价类是基于单缺陷假设()
1.弱健壮等价类测试基于单缺陷假设并考虑了无效值()
1.强健壮等价类测试是基于多缺陷假设,并考虑了无效值()
1.等价类测试的弱形式不如对应的强形式的测试全面()
二、简答题
1.什么是黑盒测试黑盒测试主要采用的技术有哪些
1.简单描述黑盒测试各种方法的特点
1.如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?
1.边界值测试有几种方法?
1.对于教材上的佣金问题,如果采用输入值边界值测试,有几个测试用例?如果结合输出值进行边界值测试,如何考虑测试用例?
1.什么是等价类?如何划分等价类?
1.等价分类法的测试技术采用的一般方法举例说明
1.什么是等价类?如何划分等价类?等价类测试中有哪些方法?
1.对于日期问题,佣金问题,如何合理划分等价类?
1.为日期问题和开发决策表测试用例,为三角形问题的直角三角形开发测试用例
1.请画出维恩图来表示边界值分析、健壮性测试、最坏情况测试生成的测试用例之间的关系
1.如果试图进行输出值域健壮性测试,会出现什么情况?
1.为什么要进行等价类的划分?等价类划分应该遵循哪些原则?
三、用例设计题
1.针对以下问题某一种8位计算机,其十六进制常数的定义是以0x或0X开头的十六进制整数,其取值范围为-7f~7f(不区分大小写字母),如0x
11、0x2A、-0x3c请采用等价类划分的方法设计测试用例
1.有一个小程序,能够求出三个在0到9999间整数中的最大者,请分别用边界值分析和健壮性测试方法设计测试用例
1.假定一台ATM机允许提取增量为50元,总金额从100到2000包含2000元)不等的现金请结合等价类方法和边界值分析进行测试
1.有一个小学生成绩管理系统,要求把成绩好的同学放到前面的,其中每个人都有三门课程语文,数学和英语首先是按个人的总成绩进行排名,如果某两个人的总分相同,则按他们的语文成绩进行排名,如果总成绩和语文成绩都相同时,则按照他们的数学成绩进行排名的请用等价类方法进行测试
1.程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足1≤month≤
12、1≤day≤
31、1900≤year≤2050),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天(第三天)的日期例如,输入为2005年11月29日,则该程序的输出为2005年12月1日请用等价类测试和边界测试法设计测试用例
1.某软件的一个模块的需求规格说明书中描述
(1)年薪制员工严重过失,扣年终风险金的4%;过失,扣年终风险金的2%
(2)非年薪制员工严重过失,扣当月薪资的8%;过失,扣当月薪资的4%请绘制出判定表,并设计相应的测试用例
1.某公司折扣政策年交易额在10万元以下的,无折扣;在10万元以上的并且近三个月无欠款的,折扣率10%;在10万元以上,虽然近三个月有欠款,但是与公司交易在10年以上的,折扣率8%;在10万元以上,近三个月有欠款,且交易在10年以下的折扣率5%;请用判定表来描述该公司的折扣政策
1.请讨论判定表测试能够在多大程度上处理多缺陷假设问题
1.请使用因果图法为三角形问题设计测试用例
1.分析中国象棋中走马的实际情况(下面未注明的均指的是对马的说明)a如果落点在棋盘外,则不移动棋子;a如果落点与起点不构成日字型,则不移动棋子;a如果落点处有自己方棋子,则不移动棋子;a如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;a如果不属于1-4条,且落点处无棋子,则移动棋子;a如果不属于1-4条,且落点处为对方棋子非老将,则移动棋子并除去对方棋子;a如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束
1.假设商店货品价格R都不大于100元(且为整数),若顾客付款P在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)假定此商店的货币面值只包括50元N
50、10元N
10、5元N
5、1元N1四种请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例第五章白盒测试
一、判断分析题
1.语句覆盖是最弱的逻辑覆盖()
1.语句覆盖是最强的逻辑覆盖()
1.判定覆盖不一定包含条件覆盖()
1.条件覆盖不一定包含判定覆盖()
1.判定/条件覆盖能同时满足判定、条件两种覆盖标准()
1.判定/条件覆盖指满足判定覆盖标准或条件覆盖标准()
1.DD-路径图是一种压缩图()
1.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述
1.尽量用公共过程或子程序去代替重复的代码段()
1.对于连锁型分支结构,若有n个判定语句,则有2n条路径()
1.尽量采用复合的条件测试,以避免嵌套的分支结构()
1.GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁()
二、简答题
1.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系
1.什么是白盒测试白盒测试主要采用的技术有哪些
1.白盒测试有那几种方法?并简单描述各种方法的特点
1.举例说明结构性测试覆盖指标C0,C1,C1P,CMCC的区别
1.常用的逻辑覆盖测试方法有哪几种?并简单描述各种方法的目的
1.逻辑覆盖中几种主要覆盖的含义举例说明
1.逻辑覆盖中几种主要覆盖的含义举例说明
1.什么是DD-路径?什么是MM-路径?DD-路径和MM-路径的区别与联系
1.使用数据流测试方法(定义/使用测试)设计佣金问题中变量totalStocks的测试用例
三、用例设计题
1.请用逻辑覆盖法对下面的java代码段进行测试publiccharfunctionintxinty{chart;ifx=90y=90{t=A;}else{ifx+y=165{t=B;}else{t=C;}}returnt;}
1.使用逻辑覆盖测试方法测试以下程序段 voidDoWorkintxintyintz { intk=0j=0; ifx3z10{k=x*y-1;j=sqrtk;} ifx==4||y5{j=x*y+10;} j=j%3; }说明程序段中每行开头的数字(1~10)是对每条语句的编号
(1)画出程序的控制流图(用题中给出的语句编号表示)
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)
1.以下代码由java语言书写,用于判断闰年请按要求回答问题publicbooleanisLeapintyear{booleanleap;ifyear%4==0{ifyear%100==0{ifyear%400==0{leap=true;}else{leap=false;}}else{leap=true;}}else{leap=false;}returnleap;}
(1)请画出以上代码的控制流图
(1)请计算上述控制流图的圈复杂度V(G)(独立线性路径数)
(1)假设输入的取值范围是0year2010请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求
1.请用逻辑覆盖和基路径测试方法对下面的java代码进行测试代码的功能是用折半查找法在元素呈升序排列的数组中查找值为key的元素publicintbinSearchintarray[]intkey{intmidlow=0high;high=array.length-1;whilelow=high{mid=low+high/2;ifkey==array[mid]{returnmid;}elseifkeyarray[mid]{high=mid-1;}else{low=mid+1;}}return-1;}
1.设计判别一个整数x(x≥2)是否为素数的程序,并设计测试用例满足条件覆盖和基本路径覆盖
1.请用逻辑覆盖和基路径测试方法对下面的java代码进行测试代码的功能是输入三个数,判断它们是否为有效的日期(其中年小于2050)publicbooleanisDateintyearintmonthintday{booleanflag=true;ifyear0||year2050{flag=false;}ifmonth1||month12{flag=false;}else{switchmonth{case1:case3:case5:case7:case8:case10:case12:ifday31||day1{flag=false;}break;case4:case6:case9:case11:ifday30||day1{flag=false;}break;case2:ifisLeapyear{ifday29||day1{flag=false;}}else{ifday28||day1{flag=false;}}break;default:break;}}returnflag;}}
1.在三角形计算中,要求三角型的三个边长A、B和C当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”画出程序流程图、控制流程图、计算圈复杂度Vg,找出基本测试路径第六章单元测试
一、判断分析题
1.单元测试能发现约80%的软件缺陷()
1.单元测试属于动态测试
1.单元测试多采用白盒测试(结构性测试)技术()
1.单元测试能发现约80%的软件缺陷()
1.单元测试需要从程序的内部结构出发设计测试用例()
1.单元测试需要为每个基本单元开发驱动模块或桩模块()
1.在面向对象语言语言中,单元测试是函数或子过程()
1.单元测试又称为模块测试,是针对软件测试的最小单位-程序模块进行正确性检验的测试工作()
二、简答题
1.单元测试有那些步骤,各个步骤有那些实施内容
1.简述单元测试的目标和意义第七章集成测试
一、判断分析题
1.集成测试计划在需求分析阶段末提交()
1.自底向上集成需要测试员编写驱动程序()
1.进行自底向上集成测试,需要为所测模块或子系统编制相应的驱动模块()
1.进行自底向上集成测试,需要为所测模块或子系统编制相应的桩模块()
1.进行自顶向下集成测试,需要为所测模块或子系统编制相应的驱动模块()
1.进行自顶向下集成测试,需要为所测模块或子系统编制相应的桩模块()
1.MM-路径是可执行路径()
1.非渐增式集成方式,发现错误难以诊断定位()
1.集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统()
1.集成测试计划在需求分析阶段末提交()
1.自底向上集成需要测试员编写驱动程序()
二、简答题
1.为什么在单元测试之后要进行集成测试?如何组织集成测试?
1.非增量式测试与增量式测试
1.简述自顶向下增量式测试和自底向上增量式测试两种集成测试方法,并比较两者的优点和缺点
1.简述集成测试的过程集成测试的方法有那些?
1.比较自顶向下集成测试和自底向上集成测试的优劣第八章系统测试
一、判断分析题
1.系统测试多采用白盒测试(结构性测试)技术()
1.验收测试是由最终用户来实施的()
1.负载测试是验证要检验的系统的能力最高能达到什么程度()
1.我们可以人为的使得软件不存在配置问题()
1.可以发布具有配置缺陷的软件产品
1.所有软件必须进行某种程度的兼容性测试
1.所有软件都有一个用户界面,因此必须测试易用性
1.β测试是由软件的多个用户在实际使用环境下进行的测试()
1.系统测试是在真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、网络、系统软件和支持平台等正确配置与连接,并满足用户需求()
1.Beta测试是验收测试的一种()
1.验收测试是由最终用户来实施的()
1.负载测试是验证要检验的系统的能力最高能达到什么程度()
1.我们可以人为的使得软件不存在配置问题()
二、简答题
1.以Windows计算器程序和画笔程序为例,说明如何进行GUI系统测试
1.系统测试计划是否需要同行评审,为什么?
1.什么叫α测试(Alpha测试)?什么叫β测试(beta测试)?α测试和β测试有什么区别?
1.客户/服务器体系结构的测试
1.比较负载测试、容量测试和强度测试的区别
1.什么是单元测试?什么是集成测试?什么是系统测试?他们的测试依据是什么?他们和功能测试,结构性测试有何关系?
1.你认为一个优秀的测试工程师应该具备哪些素质?
1.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系
1.什么是测试评估,测试评估的范围是什么?
1.阐述工作版本的定义
1.阶段评审与同行评审的区别
1.回归测试测试如何进行?【5-1】从供选择的答案中选出应填入下列中的字句软件测试的目的是(A)为了提高测试的效率,应该(B)使用白盒测试方法时,确定测试数据应根据(C)和指定的覆盖标准与设计测试数据无关的文档是(D)软件的集成测试工作最好由(E)承担,以提高集成测试的效果供选择的答案A.
①评价软件的质量
②发现软件的错误
③找出软件中的所有错误
④证明软件是正确的B.
①随机地选取测试数据
②取一切可能的输入数据作为测试数据
③在完成编码以后制定软件的测试计划
④选择发现错误的可能性大的数据作为测试数据C.
①程序的内部逻辑
②程序的复杂程度
③使用说明书
④程序的功能D.
①该软件的设计人员
②程序的复杂程度
③源程序
④项目开发计划E.
①该软件的设计人员
②该软件开发组的负责人
③该软件的编程人员
④不属于该软件开发组的软件设计人员【5-2】请从供选择的答案中选出应填入下列()中的字句程序的三种基本控制结构是(A)它们的共同点是(B)结构化程序设计的一种基本方法是(C)软件测试的目的是(D)软件调试的目的是(E)供选择的答案A.
①过程,子程序,分程序
②顺序,条件,循环
③递归,堆栈,队列
④调用,返回,转移B.
①不能嵌套使用
②只能用来写简单的程序
③已经用硬件实现
④只有一个入口和一个出口C.
①筛选法
②递归法
③归纳法
④逐步求精法D.
①证明程序中没有错误
②发现程序中的错误
③测量程序的动态特性
④检查程序中的语法错误E.
①找出错误所在并改正之
②排除存在错误的可能性
③对错误性质进行分类
④统计出错的次数【5-3】从下列关于软件测试的叙述中,选出5条正确的叙述1用黑盒法测试时,测试用例是根据程序内部逻辑设计的2尽量用公共过程或子程序去代替重复的代码段3测试是为了验证该软件已正确地实现了用户的要求4对于连锁型分支结构,若有n个判定语句,则有2n条路径5尽量采用复合的条件测试,以避免嵌套的分支结构6GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁7发现错误多的程序模块,残留在模块中的错误也多8黑盒测试方法中最有效的是因果图法9在做程序的单元测试时,桩(存根)模块比驱动模块容易编写10程序效率的提高主要应通过选择高效的算法来实现【5-4】从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句1对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查2已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降因此,对变更的软件进行测试是必要的3在意识到被测试模块的内部结构或算法的情况下进行测试4为了确认用户的需求,先做出系统的主要部分,提交给用户试用5在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试此时,有必要用一些模块替代尚未测试过的下层模块供选择的答案A~E
①仿真器
②代码审查
③模拟器
④桩
⑤驱动器
⑥域测试
⑦黑盒测试
⑧原型
⑨白盒测试⑩退化测试【5-5】对小的程序进行穷举测试是可能的,用穷举测试能否保证程序是百分之百正确呢?【5-6】在任何情况下单元测试都是可能的吗?都是需要的吗?【5-7】从供选择的答案中选出应填入下面有关软件测试的叙述的()内的正确答案软件测试方法可分为黑盒测试法和白盒测试法两种黑盒测试法是通过分析程序的(A)来设计测试用例的方法除了测试程序外,它还适用于对(B)阶段的软件文档进行测试白盒测试法是根据程序的(C)来设计测试用例的方法除了测试程序外,它也适用于对(D)阶段的软件文档进行测试白盒法测试程序时常按照给定的覆盖条件选取测试用例(E)覆盖比(F)覆盖严格,它使得每一个判定的每一条分支至少经历一次(G)覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值(H)覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径单元测试一般以(I)为主,测试的依据是(J)供选择的答案AC
①应用范围
②内部逻辑
③功能
④输入数据BD
①编码
②软件详细设计
③软件总体设计
④需求分析EFGH
①语句
②判定
③条件
④判定/条件
⑤多重条件
⑥路径I
①白盒法
②黑盒法J
①模块功能规格说明
②系统模块结构图
③系统需求规格说明【5-8】从供选择的答案中选出应该填入下列关于软件测试的叙述的内的正确答案软件测试中常用的静态分析方法是(A)和(B)(B)用于检查模块或子程序间的调用是否正确分析方法(白盒方法)中常用的方法是(C)方法非分析方法(黑盒方法)中常用的方法是(D)方法和(E)方法(E)方法根据输出对输入的依赖关系设计测试用例软件测试技术软件评测师TDRequestPro软件测试开发技术Windows面向对象单元测试嵌入式测试WinRunnerRQM软件测试开发语言UnixMDA单元测试方法金融测试QuickTestProBorland软件测试工具Java网络知识测试驱动开发TDD服务器.netBorlandQTP银行测试单元测试代码功能测试电信测试QualityCenterSilkTestVB质量保证解决方案开源软件测试技术质量保障PHPSilkPerformerQCboss测试手工测试测试用例游戏测试Rational软件测试工具供选择的答案A~B
①引用分析
②算法分析
③可靠性分析
④效率分析
⑤接口分析
⑥操作分析C~E
①路径测试
②等价类
③因果图
④归纳测试
⑤综合测试
⑥追踪
⑦深度优先
⑧调试
⑨相对图【5-9】下面是选择排序的程序,其中datalist是数据表,它有两个数据成员一是元素类型为Element的数组V,另一个是数组大小n算法中用到两个操作,一是取某数组元素V的关键码操作getKey,一是交换两数组元素内容的操作Swap voidSelectSortdatalistlist{//对表list.V
[0]到list.V[n-1]进行排序n是表当前长度forinti=0;ilist.n-1;i++{intk=i;//在list.V.key到list.V[n-1].key中找具有最小关键码的对象forintj=i+1;jlist.n;j++iflist.V[j].getKeylist.V[k].getKeyk=j;//当前具最小关键码的对象ifk!=iSwaplist.Vlist.V[k];//交换}}1试计算此程序段的McCabe复杂性;2用基本路径覆盖法给出测试路径;3为各测试路径设计测试用例【5-10】根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例“一个程序读入三个整数把此三个数值看成是一个三角形的三个边这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的”【5-11】设要对一个自动饮料售货机软件进行黑盒测试该软件的规格说明如下“有一个处理单价为1元5角钱的盒装饮料的自动售货机软件若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来若投入的是2元硬币,在送出饮料的同时退还5角硬币”1试利用因果图法,建立该软件的因果图;2设计测试该软件的全部测试用例【5-12】对一个长度为100000条指令的程序进行测试,记录下来的数据如下测试开始发现错误个数为0;经过160小时的测试累计改正100个错误此时MTTF=
0.4小时;又经过160小时的测试累计改正300个错误此时MTTF=2小时;1估计程序中固有的错误总数;2为使MTTF达到10小时必须测试和调试这个程序多长时间3给出MTTF与测试时间t之间的函数关系【5-13】应该由谁来进行确认测试?是软件开发者还是软件用户?为什么?答案【5-1】A.
②B.
④C.
①D.
④E.
④【5-2】A.
②B.
④C.
④D.
②E.
①【5-3】正确的叙述有
4、
5、
6、
7、
(10)【5-4】1
②2⑩3
⑨4
⑧5
④【5-5】对小程序进行穷举测试,不见得能保证程序百分之百正确所谓穷举测试是拿所有可能的输入数据来作为测试用例(黑盒测试),或覆盖程序中所有可能的路径(白盒测试)对于小程序来说,实际上并不能真正作到穷举测试【5-6】单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作其目的在于发现各模块内部可能存在的各种差错单元测试需要从程序的内部结构出发设计测试用例多个模块可以平行地独立进行单元测试单元测试是在编码阶段完成的,每编写出一个程序模块,就开始做这个模块的单元测试,所以只要采用模块化方法开发软件,单元测试都是必需的它可由编写程序的人来完成因为它需要根据程序的内部结构设计测试用例,对于那些不了解程序内部细节的人,这种测试无法进行【5-7】A.
③B.
④C.
②D.
②E.
②F.
①G.
④H.
⑤I.
①J.
①【5-8】A.
①B.
⑤C.
①D.
②E.
③【5-9】图太复杂,不好贴【5-10】图太复杂,不好贴【5-11】图太复杂,不好贴【5-12】图太复杂,不好贴【5-13】在对照需求做有效性测试和软件配置审查时,是由软件开发者在开发环境下进行的测试而接下来做验收测试时则以用户为主软件开发人员和QA(质量保证)人员也应参加由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果一般使用生产中的实际数据进行测试如果软件是为多个客户开发的,则需要进行α测试和β测试α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试软件在一个自然设置状态下使用开发者坐在用户旁边,随时记下错误情况和使用中的问题这是在受控制的环境下进行的测试β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试这些用户是与公司签定了支持产品预发行合同的外部客户,他们要求使用该产品,并愿意返回有关错位错误信息给开发者与α测试不同的是,开发者通常不在测试现场因而,β测试是在开发者无法控制的环境下进行的软件现场应用下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度 intGetMaxintnintdatalist[] { intk=0; forintj=1;jn;j++ ifdatalist[j]datalist[k]k=j; returnk; }
(1)画出该程序的控制流图,并计算其McCabe环路复杂性
(2)用基本路径覆盖法给出测试路径
(3)为各测试路径设计测试用例
1.控制流图如下,McCabe环路复杂性为3
2.测试路径 Path1
①→
③ Path2
①→
②→
④→
⑥→… Path3
①→
②→
⑤→
⑥→…
一、填空
1、软件测试阶段的基本任务应当是根据软件开发各阶段的______和程序的_______,精心设计一批“高产”的测试用例,利用这些测试用例_______,找出软件中潜藏的各种错误和缺陷
2、测试用例不仅要选用合理的测试输入数据,还需要选用不合理的测试输入数据,这样能更多地_______,提高程序的可靠性对于不合理的测试输入数据,程序应_______,并给出相应的提示
3、动态测试指通过_______发现错误对软件产品进行动态测试时使用黑盒测试法和_______法
4、静态测试指_______不在机器上运行,而是采用_______和_______的手段对程序进行检测
5、黑盒测试依据_______,检查程序是否满足_______因此,黑盒测试由称为功能测试或_______测试
6、白盒测试以检查处理过程的细节为基础,对程序中尽可能多的_______进行测试,检查内部_______和_______是否有错,程序的_______与预期的状态是否一致
7、在基本路径测试中,独立路径是指包括一组以前没有处理过的_______的一条路径从程序图来看,一条独立路径是至少包含有一条_______的边的路径
8、在单元测试中,驱动模块的作用是用来模拟被测模块的_______它的工作是接受_______,以上层模块调用被测模块的形式_______被测模块,接收被测模块的_______并输出
9、在单元测试中,桩模块用来代替被测模块的_______其作用是_______的信息
10、错误的群集现象是指模块错误发现率与模块的残留错误数成_______关系
二、选择题
1、在软件测试中,下面说法中错误的是A.测试是为了发现程序中的错误而执行程序的过程B.测试是为了表明程序是正确的C.好的测试方案是极可能发现迄今为止尚未发现的错误的方案D.成功的测试是发现了至今为止尚未发现的错误的测试
2、软件测试的目的是A.试验性运行软件B.发现软件错误C.证明软件正确D.找出软件中全部错误
3、软件测试用例主要由测试输入数据和两部分组成A.测试计划B.测试规则C.测试的预期结果D.以往测试记录分析
4、与设计测试用例无关的文档是.A.项目开发计划B.需求规格说明书C.软件设计说明书D.源程序
5、软件测试是软件质量保证的主要手段之一,测试的成本已超过的30%以上因此,提高测试的有效性非常重要A.软件开发成本B.软件维护成本C.软件开发成本和维护成本D.软件研制成本
6、“高产”的测试是指A.用适量的测试用例说明被测试程序正确无误B.用适量的测试用例说明被测试程序符合相应的要求C.用适量的测试用例发现被测试程序尽可能多的错D.用适量的测试用例纠正被测试程序尽可能多的错误
7、如果想要进行成功的测试,为其设计测试用例主要依赖于A.黑盒测试方法B.测试人员的经验C.白盒测试方法D.错误推测法
8、使用白盒测试方法时,确定测试数据应根据和指定的覆盖标准A.程序的内部结构B.程序的复杂性C.使用说明书D.程序的功能
9、在用逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等其中是最强的覆盖准则A.语句覆盖B.条件覆盖C.判定-条件覆盖D.路径覆盖
10、在设计测试用例时,是用得最多的一种黑盒测试方法A.等价类划分B.边界值分析C.因果图D.功能图
11、在黑盒测试中,着重检查输入条件的组合的测试用例设计方法是A.等价类划分B.边界值分析C.错误推测法D.因果图法
12、从下列叙述中,能够与软件开发各阶段,如需求分析、设计、编码相对应的软件测试是A.组装测试、确认测试、单元测试B.单元测试、组装测试、确认测试C.单元测试、确认测试、组装测试D.确认测试、组装测试、单元测试
13、单元测试将根据在阶段中产生的规格说明进行A.可行性研究与计划B.需求分析C.概要设计D.详细设计
14、组装测试计划是在阶段制定的A.可行性研究与计划B.需求分析C.概要设计D.详细设计
15、确认测试计划是在阶段制定的A.可行性研究与计划B.需求分析C.概要设计D.详细设计
16、软件的组装测试最好是由承担,以提高组装测试的效果A.该软件的设计者B.该软件开发组的负责人C.该软件的编程者D.不属于该开发组的人员
17、是简化了的模拟较低层次模块功能的虚拟子程序A.过程B.函数C.仿真D.桩
18、是指为查明程序中的错误和缺陷,可能使用的工具和手段A.调试技术B.测试技术C.跟踪法D.动态测试
19、从已发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为A.错误检测B.故障排除C.调试D.测试
20、在程序设计的过程中应为程序调试做好准备,主要体现在方面A.采用模块化、结构化的程序设计方法设计程序B.编写程序时要为程序调试提供足够的灵活性C.根据程序调试的需要,选择并安排适当的中间结果输出和必要的断D.以上全是
21、统计资料表明,软件测试的工作量占整个软件开发工作量的A.30%B.70%C.40%~50%D.95%
22、软件测试计划是一些文档,它们描述了A.软件的性质B.软件的功能和测试用例C.软件的规定动作D.对于预定的测试活动将要采取的手段
23、IBM公司的统计资料表明,使用静态测试的方法最高可以查出在测试中查出的全部软件错误的A.80%B.70%C.50%D.35%
24、黑盒测试方法的优点是A.可测试软件的特定部位B.能站在用户立场测试C.可按软件内部结构测试D.可发现实现功能需求中的错误
25、白盒测试方法的优点是A.可测试软件的特定部位B.能站在用户立场测试C.可按软件内部结构测试D.可发现实现功能需求中的错误
26、等价类划分完成后,就可得出,它是确定测试用例的基础A.有效等价类B.无效等价C.等价类表D.测试用例集
27、由因果图转换出来的是确定测试用例的基础A.判定表B.约束条件表C.输入状态表D.输出状态表
三、选择填空题
1、从供选择的答案中选出应填入下列中的字句软件测试的目的是(A)为了提高测试的效率,应该(B)使用白盒测试方法时,确定测试数据应根据(C)和指定的覆盖标准与设计测试数据无关的文档是(D)软件的集成测试工作最好由(E)承担,以提高集成测试的效果BR供选择的答案A.
①评价软件的质量
②发现软件的错误
③找出软件中的所有错误
④证明软件是正确的B.
①随机地选取测试数据
②取一切可能的输入数据作为测试数据
③在完成编码以后制定软件的测试计划
④选择发现错误的可能性大的数据作为测试数据C.
①程序的内部逻辑
②程序的复杂程度
③使用说明书
④程序的功能D.
①该软件的设计人员
②程序的复杂程度
③源程序
④项目开发计划E.
①该软件的设计人员
②该软件开发组的负责人
③该软件的编程人员
④不属该软件开发组的软件人员
2、从供选择的答案中选出应填入下列中的字句为了把握软件开发各个环节的正确性和协调性,人们需要进行(A)和(B)工作(A)的目的是想证实在一给定的外部环境中软件的逻辑正确性它包括(C)和(D),(B)则试图证明在软件生存期各个阶段,以及阶段间的逻辑(E)、(F)和正确性供选择的答案AB.
①操作
②确认
③验证
④测试
⑤调试CD.
①用户的确认
②需求规格说明的确认
③程序的确认
④测试的确认EF.
①可靠性
②独立性
③协调性
④完备性
⑤扩充性
3、从供选择的答案中选出应填入下列中的字句测试过程需要三类输入(A)、(B)和(C)请选择正确的答案填入下图中以完成测试信息处理的全过程供选择的答案A~C.
①接口选择
②软件配置
③硬件配置
④测试配置
⑤测试环境
⑥测试工具D~F.
①排错
②可靠性分析
③结果分析
④数据分类
4、请从供选择的答案中选出应填入下列()中的字句程序的三种基本控制结构是(A)它们的共同点是(B)结构化程序设计的一种基本方法是(C)软件测试的目的是(D)软件调试的目的是(E)供选择的答案A.
①过程,子程序,分程序
②顺序,条件,循环
③递归,堆栈,队列
④调用,返回,转移B.
①不能嵌套使用
②只能用来写简单的程序
③已经用硬件实现
④只有一个入口和一个出口C.
①筛选法
②递归法
③归纳法
④逐步求精法D.
①证明程序中没有错误
②发现程序中的错误
③测量程序的动态特性
④检查程序中的语法错误E.
①找出错误所在并改正之
②排除存在错误的可能性
③对错误性质进行分类
④统计出错的次数
5、从供选择的答案中选出同下列各条叙述关系最密切的字句1对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查2已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降因此,对变更的软件进行测试是必要的3在意识到被测试模块的内部结构或算法的情况下进行测试4为了确认用户的需求,先做出系统的主要部分,提交给用户试用5在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试此时,有必要用一些模块替代尚未测试过的下层模块供选择的答案A~E
①仿真器
②代码审查
③模拟器
④桩
⑤驱动器
⑥域测试
⑦黑盒测试
⑧原型
⑨白盒测试⑩退化测试
6、从供选择的答案中选出应填入下面叙述的()内的正确答案软件测试方法可分为黑盒测试法和白盒测试法两种黑盒测试法是通过分析程序的(A)来设计测试用例的方法除了测试程序外,它还适用于对(B)阶段的软件文档进行测试白盒测试法是根据程序的(C)来设计测试用例的方法除了测试程序外,它也适用于对(D)阶段的软件文档进行测试白盒法测试程序时常按照给定的覆盖条件选取测试用例(E)覆盖比(F)覆盖严格,它使得每一个判定的每一条分支至少经历一次(G)覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值(H)覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径BR单元测试一般以(I)为主,测试的依据是(J)供选择的答案AC
①应用范围
②内部逻辑
③功能
④输入数据BD
①编码
②软件详细设计
③软件总体设计
④需求分析E~H
①语句
②判定
③条件
④判定/条件
⑤多重条件
⑥路径I
①白盒法
②黑盒法J
①模块功能规格说明
②系统模块结构图
③系统需求规格说明
7、从供选择的答案中选出应填入下面叙述的()内的正确答案集成测试也叫做(A)或(B)通常,在(C)的基础上,将所有模块按照设计要求组装成为系统子系统的集成测试特别称为nbsp;D),它所做的工作是要找出子系统和系统需求规格说明之间的(E)需要考虑的问题是在把各个模块连接起来的时侯,穿越模块接口的数据是否会(F);一个模块的功能是否会对另一个模块的功能产生不利的影响;各个(G)组合起来,能否达到预期要求的(H);(I)是否有问题;单个模块的误差累积起来是否会放大供选择的答案A~D.
①单元测试
②部件测
③组装测试
④系统测试
⑤确认测试
⑥联合测试E~I.
①子功能
②丢失
③父功能
④局部数据结构
⑤全局数据结构
⑥不一致
⑦一致
8、从供选择的答案中选出应该填入下列叙述的内的正确答案软件测试中常用的静态分析方法是(A)和(B)(B)用于检查模块或子程序间的调用是否正确分析方法(白盒方法)中常用的方法是(C)方法非分析方法(黑盒方法)中常用的方法是(D)方法和(E)方法(E)方法根据输出对输入的依赖关系设计测试用例供选择的答案A~B
①引用分析
②算法分析
③可靠性分析
④效率分析
⑤接口分析
⑥操作分析C~E
①路径测试
②等价类
③因果图
④归纳测试
⑤综合测试
⑥追踪
⑦深度优先
⑧调试
⑨相对图
9、从供选择的答案中选出应填入下面叙述的()内的正确答案等价类划分是一种典型的(A)方法,也是一种非常实用的重要的测试方法使用这一方法,完全不考虑程序的(B)用所有可能输入的数据来测试程序是不可能的,只能从全部可供输入的数据中选择一个(C)进行测试(D)是指某个输入域的集合,在该集合中,各个输入数据对于揭露程序中的错误是(E)供选择的答案A
①白盒测试方法
②黑盒测试方法B
①内部结构
②外部环境
③顺序
④流程C~E
①全集
②子集
③等效BR
④不同的
⑤等价类
⑥典型集
10、从供选择的答案中选出应填入下面叙述的()内的正确答案
① 黑盒测试方法的缺点是和A不可测试软件的特定部位B不能发现功能需求中的错误C无法检验软件的外部特性D.无法测试未实现功能需求的软件的内部缺陷
② 白盒测试方法的缺点是和A.不可测试软件的特定部位B不能发现功能需求中的错误C无法检验软件的外部特性D无法测试未实现功能需求的软件的内部缺陷
四、问答计算题
1、从下列关于软件测试的叙述中,选出5条正确的叙述1用黑盒法测试时,测试用例是根据程序内部逻辑设计的2尽量用公共过程或子程序去代替重复的代码段3测试是为了验证该软件已正确地实现了用户的要求4对于连锁型分支结构,若有n个判定语句,则有2n条路径5尽量采用复合的条件测试,以避免嵌套的分支结构BR6GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁7发现错误多的程序模块,残留在模块中的错误也多8黑盒测试方法中最有效的是因果图法9在做程序的单元测试时,桩(存根)模块比驱动模块容易编写10程序效率的提高主要应通过选择高效的算法来实现
2、对小的程序进行穷举测试是可能的,用穷举测试能否保证程序是百分之百正确呢?
3、在任何情况下单元测试都是可能的吗?都是需要的吗?
4、如图所示的程序有三条不同的路径分别表示为L1a→b、L2a→c→d、L3a→c→e,或简写为ace、abd、abe及acd根据判定覆盖、条件覆盖、判定–条件覆盖、条件组合覆盖和路径覆盖等五种覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小测试用例组用
①~⑩回答供选择的答案
①x=90y=90
②x=50y=50
③x=90y=90
④x=90y=70x=50y=50x=40x=90
⑤x=90y=90
⑥x=90y=90x=50y=50x=70y=90x=90y=70x=50y=50
⑦x=90y=90
⑧x=90y=90x=50y=50x=50y=50x=80y=70x=90y=50x=70y=90x=80y=80
⑨x=90y=90⑩x=90y=90x=90y=70x=80y=80x=90y=30x=90y=70x=70y=90x=90y=30x=30y=90x=70y=90x=70y=70x=30y=90x=50y=50x=70y=70x=50y=
505、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中(A)是最强的覆盖准则为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组若xy是两个变量,可供选择的测试用例组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是(B)或(C);实现条件覆盖至少应采取的测试用例组是(D);实现路径覆盖至少应采取的测试用例组是(E)或(F)供选择的答案A
①语句覆盖
②条件覆盖
③判定覆盖
④路径覆盖B~F:
①Ⅰ和Ⅱ组
②Ⅱ和Ⅲ组
③Ⅲ和Ⅳ组
④Ⅰ和Ⅳ组
⑤Ⅰ、Ⅱ、Ⅲ组
⑥Ⅱ、Ⅲ、Ⅳ组
⑦Ⅰ、Ⅲ、Ⅳ组
⑧Ⅰ、Ⅱ、Ⅳ组
6、下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员一是元素类型为Element的数组V,另一个是数组大小n算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey,一是交换两数组元素内容的操作SwapintPartitiondatalistlistintlowinthigh{//在区间[lowhigh]以第一个对象为基准进行一次划分,k返回基准对象回放位置intk=low;Elementpivot=list.V[low];//基准对象forinti=low+1;i=high;i++//检测整个序列,进行划分iflist.V[i].getKeypivot.getKey++k!=iSwaplist.V[k]list.V[i];//小于基准的交换到左侧去Swaplist.V[low]list.V[k];//将基准对象就位returnk;//返回基准对象位置}1试画出它的程序流程图;2试利用路径覆盖方法为它设计足够的测试用例(循环次数限定为0次,1次和2次)
7、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员一是元素类型为Element的数组V,另一个是数组大小n算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey,一是交换两数组元素内容的操作SwapvoidSelectSortdatalistlist{//对表list.V
[0]到list.V[n-1]进行排序n是表当前长度forinti=0;ilist.n-1;i++{intk=i;//在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象forintj=i+1;jlist.n;j++iflist.V[j].getKeylist.V[k].getKeyk=j;//当前具最小关键码的对象ifk!=iSwaplist.V[i]list.V[k];//交换}}1试计算此程序段的McCabe复杂性;2用基本路径覆盖法给出测试路径;3为各测试路径设计测试用例
8、根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例“一个程序读入三个整数把此三个数值看成是一个三角形的三个边这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的”
9、设要对一个自动饮料售货机软件进行黑盒测试该软件的规格说明如下“有一个处理单价为1元5角钱的盒装饮料的自动售货机软件若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来若投入的是2元硬币,在送出饮料的同时退还5角硬币”1试利用因果图法,建立该软件的因果图;2设计测试该软件的全部测试用例
4、对一个长度为100000条指令的程序进行测试,记录下来的数据如下测试开始发现错误个数为0;经过160小时的测试累计改正100个错误此时MTTF=
0.4小时;又经过160小时的测试累计改正300个错误此时MTTF=2小时;1估计程序中固有的错误总数;2为使MTTF达到10小时必须测试和调试这个程序多长时间3给出MTTF与测试时间t之间的函数关系
11、应该由谁来进行确认测试?是软件开发者还是软件用户?为什么?
三、选择填空题
1、解答A.
②B.
④C.
①D.
④E.
④
2、解答A.
②B.
③C.
②D.
③E.
③F.
④到程序的测试为止,软件开发工作已经经历了许多环节,每个环节都可能发生问题为了把握各个环节的正确性,人们需要进行各种确认和验证工作所谓确认,是一系列的活动和过程,其目的是想证实在一个给定的外部环境中软件的逻辑正确性它包括需求规格说明的确认和程序的确认,而程序的确认又分为静态确认与动态确认静态确认一般不在计算机上实际执行程序,而是通过人工分析或者程序正确性证明来确认程序的正确性;动态确认主要通过动态分析和程序测试来检查程序的执行状态,以确认程序是否有问题所谓验证,则试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性下图中所示的就是软件生存期各个重要阶段之间所要保持的正确性它们就是验证工作的主要对象确认与验证工作都属于软件测试在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验证中,任何一个环节上发生了问题都可能在软件测试中表现出来
3、解答A.
②B.
④C.
⑥D.
③E.
①F.
②
4、解答A.
②B.
④C.
④D.
②E.
①
5、解答1
②2⑩3
⑨4
⑧5
④
6、解答A.
③B.
④C.
②D.
②E.
②F.
①G.
④H.
⑤I.
①J.
①
7、解答A.
③B.
⑥C.
①D.
②E.
⑥F.
②G.
①H.
③I.
⑤A、B的答案可互换
8、解答A.
①B.
⑤C.
①D.
②E.
③软件测试中常用的静态分析方法是引用分析和接口分析接口分析用于检查模块或子程序间的调用是否正确分析方法(白盒方法)中常用的方法是路径测试方法非分析方法(黑盒方法)中常用的方法是等价类(划分)方法和因果图方法因果图方法根据输出对输入的依赖关系设计测试用例
9、解答A.
②B.
①C.
②D.
⑤E.
③
10、解答A和DB和C
四、问答计算题
1、解答正确的叙述有
4、
5、
6、
7、
(10)黑盒测试主要是根据程序的有关功能规格说明和覆盖准则来设计测试用例,进行测试的,不是根据程序的内部逻辑来设计测试用例,这是白盒测试做的事情在所有黑盒测试方法中,最有效的不是因果图法,而是边界值分析方法测试的目的是尽可能多地发现软件中的错误,其附带的收获才是验证该软件已正确地实现了用户的要求测试的一条重要原则是发现错误多的程序模块,残留在模块中的错误也多软件可靠性模型(Shooman)就是依据这个原则建立它的公式的对于连锁型分支结构,若有n个判定语句,则有2n条路径因此,随着n的增大,路径数增长非常快单元测试时,因为桩模块要模拟子模块的功能,这不是一件容易的事情,而驱动模块只是控制被测模块的执行,所以桩模块的编写比驱动模块的编写要难得多在程序设计风格方面,如果重复的代码段没有明显的功能,不可以抽取出来形成独立的公共过程或子程序,只有在这些代码段表现出独立的功能时,才可把它们抽取出来形成独立的公共过程或子程序另外,程序效率的提高主要应通过选择高效的算法或使用高效的语言编译器来实现GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁,这句话是正确的
2、解答对小程序进行穷举测试,不见得能保证程序百分之百正确所谓穷举测试是拿所有可能的输入数据来作为测试用例(黑盒测试),或覆盖程序中所有可能的路径(白盒测试)对于小程序来说,实际上并不能真正作到穷举测试例如前面讲过,一个小程序P只有两个输入X和Y及输出Z,在字长为32位的计算机上运行如果X、Y只取整数,考虑把所有的X、Y值都做为测试数据,按黑盒方法进行穷举测试,这样做可能采用的测试数据组(Xi,Yi),基数(radix)i的最大可能数目为232×232=264如果程序P测试一组X、Y数据需要1毫秒,而且假定一天工作24小时,一年工作365天,要完成264组测试,需要5亿年
3、解答单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作其目的在于发现各模块内部可能存在的各种差错单元测试需要从程序的内部结构出发设计测试用例多个模块可以平行地独立进行单元测试单元测试是在编码阶段完成的,每编写出一个程序模块,就开始做这个模块的单元测试,所以只要采用模块化方法开发软件,单元测试都是必需的它可由编写程序的人来完成因为它需要根据程序的内部结构设计测试用例,对于那些不了解程序内部细节的人,这种测试无法进行
4、解答针对覆盖标准,相应的测试用例组如下注意测试是一个程序的执行过程对于逻辑表达式AorB,当A为真时不再对B做判断,对于逻辑表达式AandB,当A为假时不再对B做判断未能做判断的条件,在解答中用“□”表示此测试用例组在满足条件覆盖的情况下又满足了判定覆盖的要求在条件组合覆盖情形,x90ory90的组合有4种,与条件x+y140的组合应有8种,但x+y140=Fandx90=Tory90=T不可能出现,因此,7个测试用例就够了因为流程图有3条路径,只需3个测试用例就够了如果将判定中的复合条件表达式改为单个条件的嵌套选择结构,第一个判定有3条路径,其中两条路径通向第二个判定第二个判定有4条路径,组合起来总共应有9条路径但是,其中受测试条件的限制,有3条路径不可达,因此,程序中应有6条路径,需要6个测试用例来覆盖它们
5、解答A.
④B.
⑤C.
⑧D.
④E.
⑤F.
⑧判定表为判定覆盖选取测试用例情形对第一个判定选取测试用例组Ⅰ和Ⅱ,当用Ⅰ覆盖判定的T分支时,不会走到第二个分支;当用Ⅱ覆盖判定的F分支时,第二个判定需另取一个测试用例组覆盖其T分支,此时取测试用例组Ⅲ或Ⅳ即可因此,选择
⑤或
⑧均可为条件覆盖选取测试用例情形取测试用例组Ⅰ和Ⅳ就可以覆盖所有4个条件的取值为路径覆盖选取测试用例情形总共3条路径,需3个测试用例,可选使各路径为T的测试用例Ⅰ、Ⅱ、Ⅲ或Ⅰ、Ⅱ、Ⅳ均可,可选
⑤或
⑧
6、解答
(1)流程图如下2测试用例设计画程序流程图是设计测试用例的关键从以往同学解题的经验来看,在画流程图时就出错了所以首先要把流程图中的逻辑关系搞清楚再画出正确的流程图考虑测试用例设计需要首先有测试输入数据,还要有预期的输出结果对于此例,控制循环次数靠循环控制变量i和循环终值high循环0次时,取low=high,此时一次循环也不做循环一次时,取low+1=high,循环二次时,取low+2=high若出题时特别强调要使用BRO策略,条件V[i]pivot++k≠i的约束集合为{==},因此,测试用例设计为HYPERLINKhttp://wlkc.zzuli.edu.cn/kejianweb/jsj/rgyjtd/text/chapter05/section7/part2/back/daan.htm\t_blankINCLUDEPICTUREhttp://wlkc.zzuli.edu.cn/kejianweb/jsj/rgyjtd/text/chapter05/section7/part2/back/image/16x.gif\*MERGEFORMAT
7、解答1McCabe环路复杂性=52独立路径有5条
①③①②⑤⑧……
①②⑤⑨……
①②④⑥……
①②④⑦……3为各测试路径设计测试用例:路径
①③取n=1路径
①②⑤⑧……取n=2预期结果路径
⑤⑧③不可达路径
①②⑤⑨……取n=2预期结果路径
⑤⑨③不可达路径
①②④⑥⑤⑧③取n=2V
[0]=2V
[1]=1预期结果k=1V
[0]=1V
[1]=2路径
①②④⑥⑤⑨③取n=2V
[0]=2V
[1]=1预期结果k=1路径
⑨③不可达路径
①②④⑦⑤⑧③取n=2V
[0]=1V
[1]=2预期结果k=0路径
⑧③不可达路径
①②④⑦⑤⑨③取n=2V
[0]=1V
[1]=2预期结果k=0V
[0]=1V
[1]=
28、解答设三角形的三条边分别为ABC如果它们能够构成三角形的三条边,必需满足A0,B0,C0,且A+BC,B+CA,A+CB如果是等腰的,还要判断是否A=B,或B=C,或A=C对于等边的,则需判断是否A=B,且B=C,且A=C列出等价类表测试用例设计(略)
9、解答1因果图2测试用例设计测试用例每一纵列为一个测试用例
10、解答由shooman公式其中,IT=105,MTTF1=
0.4,T1=160,n1=100,MTTF2=2,T2=320,n2=300得1解得程序中固有得错误总数ET=350,此外K=10002设MTTF=10,有解得x=340由可靠性累积曲线ECt=ET1-e-K1t,得100=3501-e-160K1300=3501-e-320K1因此,3-3*e-160K1=1-e-320K12=3*e-160K1-e-320K1设x=e-160K1有x2–3x+2=0解得x1=2,x2=1K1=lnx1/-160=-
0.693/
1600.00433因为lnx2/-160=0,舍去代入340=3501-e-K1t=3501-e-
0.00433t350e-
0.00433t=10t=ln35/
0.00433821小时因此求得为使MTTF=10,测试和调试该程序需要花费821小时3MTTF与测试时间t之间的函数关系因为ECt=ET1-e-K1t,则ET-ECt=ETe-K1t代入shooman公式
11、解答在对照需求做有效性测试和软件配置审查时,是由软件开发者在开发环境下进行的测试而接下来做验收测试时则以用户为主软件开发人员和QA(质量保证)人员也应参加由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果一般使用生产中的实际数据进行测试如果软件是为多个客户开发的,则需要进行α测试和β测试α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试软件在一个自然设置状态下使用开发者坐在用户旁边,随时记下错误情况和使用中的问题这是在受控制的环境下进行的测试β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试这些用户是与公司签定了支持产品预发行合同的外部客户,他们要求使用该产品,并愿意返回有关错位错误信息给开发者与α测试不同的是,开发者通常不在测试现场因而,β测试是在开发者无法控制的环境下进行的软件现场应用城市的电话号码由两部分组成这两部分的名称和内容分别是地区码以0开头的三位或者四位数字(包括0);电话号码以非
0、非1开头的七位或者八位数字假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的调试用例等价划分输入数据有效等价类无效等价类地区码
1.以0开头的3位数串
2.以0开头的4位数串
3.以0开头的含有非数字字符的串
4.以0开头的小于3位的数串
5.以0开头的大于4位的数串
6.以非0开头的数串电话号码
7.以非
0、非1开头的7位数串
8.以非
0、非1开头的8位数串
7.以0开头的数串
8.以1开头的数串
9.以非
0、非1开头的含有非法字符7或者8位数串
10.以非
0、非1开头的小于7位数串
11.以非
0、非1开头的大于8位数串有效等价测试用例测试数据期望结果覆盖范围01023145678显示有效输入
1、80232234567显示有效输入
1、708513456789显示有效输入
2、7085123145678显示有效输入
2、8无效等价测试用例测试数据期望结果覆盖范围0a3423456789显示无效输入30523456789显示无效输入40123423456789显示无效输入5234123456789显示无效输入602801234567显示无效输入902812345678显示无效输入10028qw123456显示无效输入11028623456显示无效输入12028886234569显示无效输入13例某城市的电话号码由三部分组成这三部分的名称和内容分别是地区码空白或三位数字;前缀非’0’或’1’开头的三位数;后缀四位数字假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的调试用例解第一步划分等价类,包括4个有效等价类,11个无效等价类表7-2-1列出了划分的结果在每一等价类之后加有编号,以便识别输入条件有效等价类无效等价类地区码空白13位数字2有非数字字符5少于3位数字6多于三位数字7前缀从200到999之间的3位数字3有非数字字符8起始位为09起始位为110少于3位数字11多于3位数字12后缀4位数字4有非数字字符13少于4位数字14多于4位数字15第二步确定调试用例表7-2-1中有4个有效等价类,可以公用以下两个次数用例调试数据范围期望结果276-2345等价类1,3,4有效635805-9321等价类2,3,4有效对11个无效等价类,要选择11个调试用例,如下所示调试数据范围期望结果20A123-4567无效等价类5无效33234-5678无效等价类6无效7777345-6789无效等价类7无效77734A-6789无效等价类8无效234045-6789无效等价类9无效777145-6789无效等价类10无效77734-6789无效等价类11无效7772345-6789无效等价类12无效777345-678A无效等价类13无效777345-678无效等价类14无效777345-56789无效等价类15无效 选取的调试数据可以不同,关键是与调试内容相符其它参考解答序号 条件 有效等价类 无效等价类 1 地区码位数 3位
(1) 大于3位2,1~3位之间3 2 地区码组成 数字
(4),空白
(5) 其它(6 3 前缀位数 3位
(7) 大于3位
(8),或者少于3位
(9) 4 前缀开头 非0
(9),非1
(10) 为0
(11),为1
(12) 5 前缀组成 数字
(13)字母
(14),小数
(15) 6 后缀位数 4位
(16) 其它
(17) 7 后缀组成 数字
(18) 其它
(19)以上列出的条件有所重复,不过可以明确在设计中的问题,对于设计会比较好有效测试例(期望结果有效)
(029)849-6110 覆盖条件
(1)
(4)
(7)
(9)
(13)
(16)
(18)828-8250 覆盖条件(
(5)
(7)
(9)
(13)
(16)
(18)无效测试例(期望结果无效)
(00)01438-258 覆盖条件(
(3)
(4)
(8)
(11)
(13)
(17)
(18)
(028)
0134.8-253 覆盖条件(
(2)
(6)
(8)
(11)
(13)
(17)
(18)0a12a95-32a852覆盖条件(
(3)
(6)
(8)
(12)
(14)
(17)
(19)()3一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的用等价类方法设计测试用例20分确定输入数据与三角形形状的关系设三角形的3条边分别为A,B,C如果它们能够构成三角形的3条边,必须满足A0,B0,C0,且A+BC,B+CA,A+CB;如果是等腰的,还要判断A=B,或B=C,或A=C;如果是等边的,则需判断是否A=B,且B=C,且A=C创建等价类表输入条件有效等价类无效等价类是否三角形的三条边(A0),
(1)(B0),
(2)(C0),
(3)(A+BC),
(4)(B+CA),
(5)(A+CB),
(6)(A≤0),
(7)(B≤0),
(8)(C≤0),
(9)(A+B≤C),
(10)(B+C≤A),
(11)(A+C≤B),
(12)是否等腰三角形(A=B),
(13)(B=C),
(14)(C=A),
(15)(A≠B)and(B≠C)and(C≠A)
(16)是否等边三角形(A=B)and(B=C)and(C=A)
(17)(A≠B),
(18)(B≠C),
(19)(C≠A),
(20)确定等价类输入数据序号【A,B,C】覆盖等价类输出1【3,4,5】
(1),
(2),
(3),
(4),
(5),
(6)一般三角形2【0,1,2】
(7)不能构成三角形3【1,0,2】
(8)4【1,2,0】
(9)5【1,2,3】
(10)6【1,3,2】
(11)7【3,1,2】
(12)8【3,3,4】
(1),
(2),
(3),
(4),
(5),
(6),
(13)等腰三角形9【3,4,4】
(1),
(2),
(3),
(4),
(5),
(6),
(14)10【3,4,3】
(1),
(2),
(3),
(4),
(5),
(6),
(15)11【3,4,5】
(1),
(2),
(3),
(4),
(5),
(6),
(16)非等腰三角形12【3,3,3】
(1),
(2),
(3),
(4),
(5),
(6),
(17)是等边三角形13【3,4,4】
(1),
(2),
(3),
(4),
(5),
(6),
(14),
(18)非等边三角形14【3,4,3】
(1),
(2),
(3),
(4),
(5),
(6),
(15),
(19)15【3,3,4】
(1),
(2),
(3),
(4),
(5),
(6),
(13),
(20)下图为某程序段的流程图,请先画出程序的控制流图,然后用判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖设计足够的测试用例15分��A1ANDB=0�aA=2ORX1�X=X/A�X=X+5�cbeFdTFT解答:各类覆盖测试用例测试用例执行路径判定覆盖X=
3、A=
2、B=0X=
1、A=
1、B=0aceabd条件覆盖X=
3、A=
1、B=0X=
1、A=
2、B=1abeabe判定/条件覆盖X=
3、A=
2、B=0X=
1、A=
1、B=1aceabd路径覆盖X=
3、A=
2、B=0X=
1、A=
1、B=0X=
1、A=
2、B=1X=
1、A=
3、B=0aceabdabeacd使用逻辑覆盖测试方法测试以下程序段(15分)voidDointXintAintB{
①ifA4B=5
②X=X/A;
③ifA=2||X1
④X=X+1;
⑤}说明程序段中每行开头的数字(
①至
⑤)是对每条语句的编号
(1)画出程序的控制流图(用题中给出的语句编号表示)
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径测试数据执行路径语句覆盖X=
4、A=
2、B=51→2→3→4→5判定覆盖X=
4、A=
2、B=5X=
1、A=
5、B=01→2→3→4→51→3→5条件覆盖X=
3、A=
5、B=0X=
1、A=
2、B=51→3→4→51→3→4→5判定/条件覆盖X=
4、A=
2、B=5X=
1、A=
5、B=01→2→3→4→51→3→5路径覆盖X=
4、A=
2、B=5X=
1、A=
5、B=0X=
3、A=
5、B=0X=
1、A=
3、B=51→2→3→4→51→3→51→3→4→51→2→3→5以下代码用于判断闰年,由C语言书写其对应的控制流图如下图所示请按要求回答问题(15分)intisLeapintyear{intleap;
①ifyear%4==0{
②ifyear%100==0{
③ifyear%400==0
④leap=1;else
⑤leap=0;}else
⑥leap=1;}else
⑦leap=0;
⑧returnleap;}说明写在前面的序号
①-
⑧为相应语句的编号1)画出程序的控制流程图(使用给出的相应语句编号)2)请计算上述控制流图的圈复杂度V(G)(独立线性路径数)3)找出独立路径(使用给出的相应语句编号)4)假设输入的取值范围是1000year2001请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求(8分)用例1year是1000~2000之间不能被4整除的整数,如
1001、
1002、1003等(2分)用例2year是1000~2000之间能被4整除但不能被100整除的整数,如
1004、
1008、
1012、1016等(2分)用例3year是1000~2000之间能被100整除但不能被400整除的整数,如
1100、
1300、
1400、
1500、
1700、
1800、1900(2分)用例4year是1000~2000之间能被400整除的整数,如
1200、
1600、2000(2分)
2、以下代码由C语言书写,能根据指定的年、月计算当月所含天数intGetMaxDayintyearintmonth{
①intmaxday=0;
②ifmonth=1month=12{
③ifmonth==2{
④ifyear%4==0{
⑤ifyear%100==0{
⑥ifyear%400==0
⑦maxday=29;else
⑧maxday=28;}else
⑨maxday=29;}else⑩maxday=28;}else{⑾ifmonth==4||month==6||month==9||month==11⑿maxday=30;else⒀maxday=31;}}⒁returnmaxday;}说明写在前面的序号
①-⒁为相应语句的编号
1.画出程序的控制流程图(使用给出的相应语句编号)
2.请计算上述控制流图的圈复杂度V(G)(独立线性路径数)
3.找出独立路径(使用给出的相应语句编号)某个软件的规格说明中包含了下面的要求第一例字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文字的修改但如果第一列字符不正确,则给出信息L,如果第二列字符非数字,则给出信息M请用基于决策表的测试方法进行测试,并设计测试用例覆盖每一种情况(15分)输入条件第一列字符{A},{B},{其他};第二列字符{数字},{其他}动作修改文件,给出L,给出M(6分)决策表如下表所示(9分)条件第一列AB其他AB其他第二列数字数字数字其他其他其他动作修改文件√√给出L√√给出M√√√测试用例A6B2M1A!B%V+用决策表测试法测试以下程序该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期例如,输入为2004年11月29日,则该程序的输出为2000年12月1日A、分析各种输入情况,列出为输入变量month、day、year划分的有效等价类B、分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)C、根据A和B,画出简化后的决策表解确定规则,建立条件桩和动作桩M1={月份每月有30天}M2={月份每月有31天,12月除外}M4={月份12月}M3={月份2月}D1={日期1=日期=27}D2={日期28}D3={日期29}D4={日期30}D5={日期31}Y1={年年是闰年}Y2={年年不是闰年}用等类法用决策表测试法测试以下程序该程序有三个输入变量month、day、year(均为整数,分别表示月份、日期、年份),通过程序可以输出该输入日期在日历上后面隔两天的日期例如,输入为2007年11月23日,输出为2007年11月26日(1)、分析各种输入情况,列出为输入变量划分的有效等价类 6分(2)、根据各种可能输入,列出可能采取的操作4分解确定规则,建立条件桩和动作桩M1={月份每月有30天}M2={月份每月有31天,12月除外}M4={月份12月}M3={月份2月}D1={日期1=日期=26}D2={日期28}D3={日期29}D4={日期30}D5={日期31}Y1={年年是闰年}Y2={年年不是闰年}找零钱最佳组合假设商店货品价格R皆不大于100元(且为整数),若顾客付款在100元内P,求找给顾客最少货币个(张)数?(货币面值50元、10元、5元、1元四种)
一、分析输入的情形R1000R=100R=0P100R=P=100PR
二、分析输出情形N50=1N50=04N10=1N10=0N5=1N5=04N1=1N1=0
三、分析规格中每一决策点之情形,以RR1RR2RR3表示计算要找50105元货币数时之剩余金额R100R=0P100PRRR1=50RR2=10RR3=5
四、由上述之输入/输出条件组合出可能的情形R100R=00R=100P1000R=100PR0R=100R=P=100RR=500R=100R=P=100RR=490R=100R=P=100RR=100R=100R=P=100RR=90R=100R=P=100RR=50R=100R=P=100RR=40R=100R=P=100RR=10R=100R=P=100RR=0
五、为满足以上之各种情形,测试资料设计如下
1.货品价格=
1012.货品价格=
03.货品价格=-
14.货品价格=100付款金额=
1015.货品价格=100付款金额=
996.货品价格=50付款金额=
1007.货品价格=51付款金额=
1008.货品价格=90付款金额=
1009.货品价格=91付款金额=
10010.货品价格=95付款金额=
10011.货品价格=96付款金额=
10012.货品价格=99付款金额=
10013.货品价格=100付款金额=100。