软件测试习题
软件测试练习题(含参考答案)

软件测试练习题(含参考答案)一、单选题(共100题,每题1分,共100分)1、以下关于书写缺陷报告应包含的准则说法不正确的是()A、方便阅读、注意缺陷报告书写语气B、分析故障,使用最少步骤重现缺陷C、尽量全面--将一次发现的所有缺陷放在一个报告中D、包含所有重现缺陷的必要步骤正确答案:C2、( )存储一个对话框模板,模板制定了对话框的特征,包括其大小、位置、风格以及对话框中各种控件等。
A、单模对话框B、对话框函数C、对话框模板资源D、对话框类正确答案:C3、测试的目的是( ),而不是对正确性进行形式化证明。
A、要纠正程序中的bugB、要暴露程序中的错误C、要暴露程序中的bugD、要纠正程序中的错误正确答案:B4、数据库系统是一个复杂的系统,是存储介质、处理对象和管理系统的集合体,由数据库、硬件支持系统、软件支持系统和( )四部分组成。
A、应用系统B、数据库管理员C、操作系统D、数据模型描述正确答案:B5、在VC中,如果在Menu Item属性页中选择( )复选框,表示此菜单项是一个多级菜单,并且其右边将会出现一个新菜单框。
A、inactiveB、Pop-upC、CheckedD、Grayed正确答案:B6、软件测试是软件质量保证的重要手段()是软件测试的最基础环节A、验收测试B、系统测试C、单元测试D、确认测试正确答案:C7、按存储的工作方式分类,存储器可分为( )。
A、软盘、硬盘、光盘B、半导体存储器、磁表面存储器、光存储器C、RAM、ROM、BIOSD、随机读写存储器、顺序读写存储器、只读存储器正确答案:D8、按存储的工作方式分类,磁带存储器属于( )。
A、主存储器B、随机读写存储器C、顺序读写存储器D、只读存储器正确答案:C9、下列不属于需求规格说明的特点的是:( )。
A、可重用性B、一致性C、可修改性D、完整性正确答案:A10、测试一个( ),应该用那种能暴露边界情况的测试实例,既有简单的也有较难的。
《软件测试》习题

一、单项选择题1.以下工程中不属于测试文档的是〔 C 〕。
A.测试方案B.测试用例C.程序流程图D.测试报告2.以下不属于正式审查的方式是〔 A 〕。
A.同事审查B.公开陈述C.检验D.编码标准和标准3.软件测试技术可以分为静态测试和动态测试,以下说法中错误的选项是〔 D 〕。
A.静态测试是指不运行实际程序,通过检查和阅读等手段来发现程序中的错误。
B.动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。
C.动态测试包括黑盒测试和白盒测试。
D.白盒测试是静态测试,黑盒测试是动态测试。
4.以下说法不正确的选项是〔 D 〕。
A.测试不能证明软件的正确性B.测试员需要良好的沟通技巧C.QA与testing属于一个层次的概念D.成功的测试是发现了错误的测试5.在集成测试用例设计的过程中,要满足的根本要求是( C )。
A.保证测试用例的正确性B.保证测试用例能无误的完成测试项的既定的测试目标C.保证测试用例的简单性D.保证测试用例能满足相应的覆盖率要求6.以下测试中不属于系统测试的是〔 B 〕。
A.性能测试B.集成测试C.压力测试D.可靠性测试7.软件的集成测试工作最好由〔 A 〕承当,以提高集成测试的效果。
A.不属于该软件开发组的软件设计人员B.该软件的设计人员C.该软件开发组的负责人D.该软件的编程人员8.软件测试技术可以分为静态测试和动态测试,以下说法中错误的选项是〔D 〕。
A.静态测试是指不运行实际程序,通过检查和阅读等手段来发现程序中的错误。
B.动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。
C.动态测试包括黑盒测试和白盒测试。
D.白盒测试是静态测试,黑盒测试是动态测试。
9.单元测试时,调用被测模块的是〔C 〕。
A.桩模块 B.通信模块C.驱动模块 D.代理模块10.为了提高测试的效率,争取的做法是〔 A 〕。
A.选择发现错误可能性大的数据作为测试用例B.在完成程序的编码之后在指定软件的测试方案C.随机选取测试用例D.取一切可能的输入数据作为测试用例11.如果一个产品中次严重的缺陷根本完成修正并通过复测,这个阶段的成品称为〔B 〕。
软件测试笔试题及答案

软件测试笔试题及答案一、选择题1. 下列哪项不属于软件测试的目标?a) 发现软件中的缺陷b) 验证软件是否满足需求c) 确保软件具有高性能d) 提高软件的可靠性答案:c) 确保软件具有高性能2. 在测试活动中,以下哪个过程通常位于最后?a) 单元测试b) 验收测试c) 回归测试d) 静态测试答案:b) 验收测试3. 在软件测试中,猴子测试是指什么?a) 随机输入测试b) 随机点击测试c) 随机操作测试d) 随机接口测试答案:a) 随机输入测试4. 以下哪个是黑盒测试技术?a) 语句覆盖测试b) 边界值分析测试c) 静态代码分析d) 回归测试答案:b) 边界值分析测试5. 在软件测试中,白盒测试是指什么?a) 只测试软件的外部功能b) 只测试软件的内部逻辑c) 组合黑盒和白盒测试的方法d) 只测试软件的用户界面答案:b) 只测试软件的内部逻辑二、填空题1. 简述软件测试的目标。
答案:软件测试的目标是发现软件中的缺陷、验证软件是否满足需求、提高软件的可靠性。
2. 请简要说明单元测试的作用。
答案:单元测试主要是测试软件中的最小单元模块,以确认每个模块都能正常运行且满足预期。
它有助于提早发现和修复代码错误,避免错误在整个系统中扩散。
3. 请解释回归测试的含义。
答案:回归测试是指在软件发生变化后,重新执行旧的测试用例,以确保修改不会影响原有的功能和系统稳定性。
它有助于保证系统在修改后仍能正常工作,不引入新的问题。
三、解答题1. 请简要介绍一下常用的软件测试方法。
答案:常用的软件测试方法包括黑盒测试和白盒测试。
黑盒测试主要关注软件的外部功能,不考虑内部逻辑,通过输入合法和非法数据来测试软件的响应和输出是否符合预期。
而白盒测试则关注软件的内部逻辑,通过检查代码覆盖率和执行路径来验证软件的正确性。
2. 简要描述一下软件测试生命周期中的各个阶段。
答案:软件测试生命周期包括需求分析、测试计划、测试设计、测试执行和测试评估。
软件测试习题集及答案(详细版)

一、判断分析题1.软件测试的目的是尽可能多的找出软件的缺陷。
(Y)2.软件测试的目的是证明软件没有错误。
(N)3.测试组负责软件质量。
(N )4.程序的效率与程序的复杂性相关。
(N )5.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
(Y )6.测试程序仅仅按预期方式运行就行了。
(N )7.好的测试员不懈追求完美。
( Y)8.不存在质量很高但可靠性很差的产品。
(N )9.测试是为了验证该软件已正确地实现了用户的要求。
( N)10.发现错误多的程序模块,残留在模块中的错误也多。
(Y )11.程序效率的提高主要应通过选择高效的算法来实现。
( Y)12.测试人员要坚持原则,缺陷未修复完坚决不予通过。
(N)13.项目立项前测试人员不需要提交任何工件。
(Y)14.缺陷跟踪系统只针对对测试人员来使用。
(N )15.从用户软件开发者的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
(N )16.软件项目在进入需求分析阶段,测试人员应该开始介入其中。
( Y)17.测试是提高产品质量根本手段。
()18.代码评审员一般由测试员担任。
(N)19.代码评审是检查源代码是否达到模块设计的要求。
(N)20.软件测试员可以对产品说明书进行白盒测试。
(N )21.静态白盒测试可以找出遗漏之处的问题。
(Y )22.总是首先设计白盒测试用例。
(N)23.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
(N)24.黑盒测试方法中最有效的是因果图法。
(Y )25.软件测试按照测试过程分类为黑盒、白盒测试。
(N)26.白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。
(Y)27.白盒测试时一般由开发人员兼任测试人员的角色。
(Y)28.黑盒测试是从用户观点出发的测试。
(Y)29.白盒测试是从用户观点出发的测试。
(N)30.白盒测试根据程序外部特征进行测试,黑盒测试根据程序内部逻辑结构进行测试。
软件测试技术(习题卷8)

软件测试技术(习题卷8)第1部分:单项选择题,共56题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]黑盒测试用例设计方法包括( )等A)等价类划分法、因果图法、正交试验设计法、功能图法、路径覆盖法、语句覆盖法B)等价类划分法、边界值分析法、判定表驱动法、场景法、错误推测法、因果图法、正交试验设计法、功能图法C)因果图法、边界值分析法、判定表驱动法、场景法、Z路径覆盖法D)场景法、错误推测法、因果图法、正交试验设计法、功能图法、域测试法答案:B解析:2.[单选题]软件测试是软件质量保证的重要手段,下列( )是软件测试的任务。
①预防软件发生错误;②发现改正程序错误;③提供诊断错误信息。
A)①B)②C)③D)以上都对答案:D解析:3.[单选题]在软件测试前,需要确定软件测试的优先级,优先级越高的测试项,应优先得到测试,如下哪个因素是与测试优先级最不相关的( )。
A)测试的难易程度B)开发修正缺陷的容易程度C)容易出错的测试项D)客户最常使用的产品特性答案:A解析:4.[单选题]( )是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。
A)条件覆盖B)组合覆盖C)判定覆盖D)语句覆盖答案:D解析:5.[单选题]我做事不喜欢半途而废A)强烈同意B)同意C)不同意D)最不同意答案:A解析:6.[单选题]走查主要包括以下哪些内容( ) ①检查代码和设计的一致性 ②标准的遵循和可读性 ③评审对象主要是软件A)②③B)②③④C)①②③④D)①②③答案:C解析:7.[单选题]不属于单元测试内容的是( )。
A)模块接口测试B)局部数据结构测试C)独立路径测试D)用户界面测试答案:D解析:8.[单选题]下面四种说法中正确的是A)因果图法是建立在决策表法基础上的一种白盒测试方法;B)等价类划分法是边界值分析法的基础;C)健壮性等价类测试的测试用例要求在有效等价类中取值;D)在任何情况下做黑盒测试皆应首先考虑使用错误推断法。
软件测试习题

软件测试第一章软件测试综述选择题(每题1分)1.Myers在1979年提出了一个重要观点,即软件测试的目的是为了()。
A)证明程序正确B)查找程序错误C)改正程序错误D)验证程序无错误答案:B2.坚持在软件开发的各个阶段实施下列哪种质量保证措施,才能在开发工程中尽早发现和预防错误,把出现的错误克服在早期()A)技术评审B)程序测试C)文档审查D)管理评审答案:A3.经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误数目较多,则该模块中残存的错误数目与其他模块相比,通常应该()A)较少B)较多C)相似D)不确定答案:B4.下面有关测试原则的说法中正确的是()。
A)测试用例应由测试的输入数据和预期的输出结果两部分组成B)测试用例只需选取合理的输入数据C)程序最好由编写该程序的程序员自己来测试D)使用测试用例进行测试是为了检查程序是否做了它该做的事答案:A5.为了提高测试的效率,正确的做法是()。
A)选择发现错误可能性大的数据作为测试用例B)在完成程序的编码之后再制定软件的测试计划C)随机选取测试用例D)取一切可能的输入数据作为测试用例答案:A6.对程序的测试最好由()来做,对程序的调试最好由()来做。
A)程序员第三方测试机构B)第三方测试机构程序员C)程序开发组程序员D)程序开发组程序开发组答案:B填空题(每空1分)1.20世纪50年代以前,开发人员往往将测试与调试等同。
_________,人们开始试图区分测试与调试。
答案:1957年。
2.语义错误是一种偏离错误,如需求定义偏离了用户需求,设计偏离了需求定义等。
偏离既包括____________也包括___________。
答案:正偏离;负偏离。
1.一个好的测试用例在于它能发现以前未发现的错误。
答案:正确2.一个成功的测试是发现了以前未发现的错误的测试。
答案:正确3.测试是为了证明程序正确,而不是证明程序有错。
答案:错误1.软件缺陷答案:软件产品中违背了软件产品需求的实现,则称为软件缺陷。
软件测试技术(习题卷21)

软件测试技术(习题卷21)第1部分:单项选择题,共55题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]下列选项中叙述错误的是( )。
A)对每个测试级别,需要在相应的开发活动过程中进行相应的测试分析和设计B)软件测试的工作重点应该集中在系统测试上C)每个开发活动都有相对应的测试行为D)每个测试级别都有其特有的测试目标答案:B解析:2.[单选题]我觉得完全了解事物的底层原理很有趣A)强烈同意B)同意C)不同意D)最不同意答案:B解析:3.[单选题]下列关于逻辑覆盖测试的说法中正确的是( )。
(选择一项)A)语句覆盖就是设计若干个测试用例,运行被测程序,使得每一条可执行语句至少执行一次。
B)条件覆盖是设计足够多的测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少各执行一次。
C)分支覆盖是设计若干个测试用例,运行所测程序,使程序中每个判断内的每个条件的各个可能取值至少执行一次。
D)判定-条件覆盖要求各个判断的所有可能的条件取值组合至少执行一次。
答案:A解析:4.[单选题]我对变化秉持积极的态度A)强烈同意B)同意C)不同意D)最不同意答案:B解析:5.[单选题]( )。
下面有关测试原则的说法正确的是( )。
A)测试用例应由测试的输入数据和预期的输出结果组成B)测试用例只需选取合理的输入数据C)程序最好由编写该程序的程序员自己来测试D)使用测试用例进行测试是为了检查程序是否做了它该做的事答案:A解析:6.[单选题]软件可靠性的( )特性是指在软件发生故障的情况下,软件产品维持规定的性能级别的能力。
A)成熟性B)易恢复性C)容错性D)可靠性答案:C解析:7.[单选题]( )。
在软件维护的内容中,占维护活动工作量比例最高的是()。
A)纠错性维护B)适应性维护C)预防性维护D)完善性维护答案:B解析:8.[单选题]测试ATM取款功能,已知取款数只能输入正整数,每次取款数要求是100的倍数且不能大于500,下面哪个是正确的无效等价类()A)<li>(0,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞)</pre></li>B)<li>(500,+∞)</pre></li>C)<li>(500,+∞)、任意大于0小于500的非100倍数的整数</pre></li>D)<li>(-∞,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞)</pre></li>答案:C解析:9.[单选题]缺陷产生的原因包括( )。
软件测试笔试题

软件测试笔试题一、选择题1. 下列哪项不是软件测试的原则?A. 测试应该早期开始B. 测试应该自动化C. 测试应该完全依赖开发人员D. 测试应该持续进行2. 下列哪项不是黑盒测试的特点?A. 不需要了解内部实现细节B. 关注输入与输出之间的关系C. 基于功能需求进行测试D. 需要有开发经验3. 单元测试的主要目的是?A. 验证整个系统的功能是否正常B. 确保软件没有错误C. 检查代码是否符合编码规范D. 确保各个模块的功能是否正常4. 下列哪项不是软件测试的类型?A. 单元测试B. 集成测试C. 验收测试D. 设计测试5. 敏捷开发中,测试团队应该在何时开始测试?A. 在需求分析阶段B. 在开发阶段C. 在软件发布前的最后阶段D. 在软件发布后的维护阶段二、填空题1. 软件测试的主要目的是 ________ 软件的质量。
2. 白盒测试主要关注检查软件的 ________ 。
3. 请简要介绍一下所谓的V模型。
4. 软件测试中的冒烟测试是指 ________。
5. 敏捷开发中的TDD是指 ________。
三、问答题1. 请简述黑盒测试和白盒测试的区别和相似之处。
黑盒测试和白盒测试都是常用的软件测试方法,它们在测试的角度和方法上有一些不同。
首先,黑盒测试是一种功能测试方法,主要关注系统的输入和输出,而不需要了解软件内部实现的细节。
相对而言,白盒测试则需要了解软件内部的逻辑和结构,主要关注代码的执行路径和覆盖率等。
相似之处在于它们都是验证软件是否符合预期的行为,都需要设计测试用例来检查软件的功能是否正确。
2. 什么是冒烟测试?它的作用是什么?冒烟测试是指在软件开发过程中,验证软件的基本功能是否正常工作的一种测试方法。
它主要通过运行一组简单的测试用例来检查软件是否能够启动、基本操作是否正常,以及是否存在明显的功能错误等。
冒烟测试的目的是在软件开发的早期阶段及时发现软件的严重问题,避免问题在后续的开发过程中逐渐累积,从而提高软件的质量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试技术复习题汇总一、名词解释1.软件测试2.测试用例3.回归测试4.白盒测试5.黑盒测试6.单元测试7.集成测试8.系统测试9.测试10.软件故障11.调试12.V&V(验证和确认)13.遗漏缺陷14.程序插装15.测试覆盖率16.等价类划分测试17.软件失效18.语句覆盖19.变异测试二、简答题1.简述软件测试的基本职责2.试论述自底向上集成测试的实施步骤及其优缺点3.什么是集成测试,一般在何时进行;请论述其集成测试方法的分类4.简述黑盒测试的优缺点5.试叙述V测试模型,给出其示意图,并说明其局限性和改进途径6.简述单元测试与集成测试的区别7.制定测试计划的主要步骤有哪些8.功能性测试有哪几种方法?请简单描述各种方法的特点9.简述G.Myers阐述的测试目标10.简述白盒测试的优缺点11.静态测试有哪些方法,试比较这些方法的异同三、判断正误题1.测试员需要尽早地和不断的进行软件测试2.测试员是可以对所有可能的输入进行测试的3.测试员可以对每一条程序的可能执行路径进行测试4.通过软件测试,我们可以找出所有的软件错误5.程序员应该尽量避免测试自己书写的程序6.软件调试和软件测试是一样的7.软件测试在软件开发过程中可以忽略8. 所有的软件测试都应该在软件开发完成之后进行9.软件测试的流程是单元测试->集成测试->系统测试10.单元测试是一种浪费时间的工作11.如果程序员非常出色,是可以不进行单元测试的12.集成测试可以捕捉到所有的BUG13.单元测试的成本效率不高14.单元测试是证明代码做了什么的工作15.等价类测试的关键在于选择确定类的等价关系16.对于软件测试,完全测试是不可能的,但是我们应该修复所有找到的缺陷17.经过软件测试,如果发现的缺陷数目越多,则软件中剩余残存的缺陷数目越少18.软件测试就是通过一定的方法测试程序中是否存在错误19.完整的测试流程为:单元测试—联调—集成测试—系统测试20.测试用例应由测试输入数据和对应的预期输出结果这两部分组成21.如果一个等价类中的一个测试没有发现缺陷,那么这个等价类的其他测试也不能发现缺陷22.在软件测试过程中,不允许程序员检查自己的程序23.对于软件缺陷是否应该修复,其决策过程应由软件测试员、项目管理员和程序员共同参与24. 软件测试得越彻底,得到的经济收益也就越高25. 达到了判定覆盖也一定达到了语句覆盖26. 自底向上进行集成测试的优点是不需要构造桩(stub)模块27. 一个类的部分代码做修改了,只需要保证修改的部分测试到了即可28. TMM是CMM的一个关键性级别29. 白盒测试也称逻辑驱动测试30. 测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未知的条件开始,结束的过程不可预计31. 所有的软件故障均有编码错误引起32. W模型仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段33. 验收测试往往不是对系统进行全覆盖测试,而是针对用户的核心业务流程进行的测试34. 自顶向下集成测试最显著的优点是不需要桩模块35. 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类36. 由于完全的测试是不能的,所以对于任何程序的任何一种覆盖不可能实现全覆盖37. 自底向上集成测试最显著的优点是不需要桩模块38. 软件缺陷是由软件失效导致的结果39. 条件覆盖的覆盖能力不一定强于判定覆盖40. 一个类的部分代码做修改了,只需要保证修改的部分测试到了即可41. 正交试验法产生的测试用例数目一定要少于简单对比法产生的测试用例四、选择题1.驱动模块和桩模块的定义以及用途2.决策表和因果图的图示以及使用方法3.正交试验法的实验次数,例如6因子5水平的问题采用“简单对比法”需要进行的试验次数,正交试验法的试验次数4.控制流图(CFG,Control Flow Graphic)的画法以及作用5.V模型、W模型以及H模型的图示以及作用6.边界值测试方法中的测试用例数目计算7.软件测试方法的分类8.各种覆盖测试之间的关系9.等价类划分五、用例设计题1.采用健壮性边界值测试方法,对一个两个数的加法器进行测试(两个输入值均在1至100之间,包含1和100)2.金额校验测试用例设计:金额范围[0.00,999.99](最多只能有两位小数),要求划分等价类,然后设计测试用例。
例如输入:568.57 210. 23.4输出:568元5角7分210元23元4角3.某直辖市的电话号码由三部分组成,这三部分的名称和内容分别是:地区码:空白或3位数字;前缀:非“0”和非“1”开头的3位数字;后缀:5位数字假定被测程序接受一切符合上述规定的电话号码,拒绝所有不符合的号码,试设计它的测试用例(支持单缺陷假设)。
4.请为前一日/下一日(Predate/Nextdate)设计强一般等价类(即假设所有输入数据均合法)。
5.试对以下程序设计语句覆盖、路径覆盖以及判定覆盖测试用例。
(其余覆盖方法大家自行完成)If (A > 1) and (B = 0) thenX = X / A;If (A = 2) or (X > 2) thenX = X + 1;6. 试对以下程序设计语句覆盖、路径覆盖以及判定覆盖测试用例。
if(x>=80&&y>=80)t=1;elseif(x+y>=140&&(x>=90||y>=90))t=2;elset=3;7. 以下代码为C语言书写,请认真阅读程序并回答问题(1)至问题(3)。
01 void sort ( int irecordnum, int itype )02 {03 int x=0;04 int y=0;05 while ( irecordnum-- > 0 )06 {07 if ( itype= =0 )08 break;09 else10 if ( itype= =1 )11 x=x+10;12 else13 y=y+20;14 }15 }说明:程序段中每行开头的数字(01~15)是对每条语句的物理行号。
(1) 请画出以上代码的控制流图CFG。
(2) 试用三种方法分别计算该程序段的基本路径数目。
(3) 使用基本路径测试法为变量irecordnum、itype设计测试用例(写出irecordnum取值、itype取值和函数预期返回结果),使其满足基本路径覆盖的要求。
8. 用因果图法测试以下程序。
程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。
(1) 分析程序的规格说明,列出原因和结果。
(2) 找出原因与结果间的因果关系、原因与原因间的约束关系,画出因果图。
(3) 将因果图转换成决策表。
(4) 根据(3)中的决策表,设计测试用例的输入数据和预期输出。
9.根据下面给出的规格说明,利用等价类划分的方法,给出该程序的等价类划分。
“一个程序读入3个整数,把这3个数值看作是一个三角形的3条边的长度值。
这个程序要打印出信息,说明这个三角形是一般三角形、是等腰三角形、还是等边的”。
10.使用逻辑覆盖测试方法测试以下程序段:01 void DoWork(int x, int y, int z)02 {03 int k=0, j=0;04 if ( (x>3)&&(z<10) )05 {06 k=x*y-1;07 j=sqrt(k);08 }09 if ( (x==4)||(y>5) )10 j=x*y+10;11 j=j%3;12 }说明:程序段中每行开头的数字(1~12)是对每条语句的编号。
(1) 画出程序的控制流图CFG(用题中给出的语句编号表示)。
(2) 分别以语句覆盖、判定覆盖、条件覆盖、条件判定覆盖和路径覆盖方法设计测试用例(数据),并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
11. 以下代码为C语言书写,能根据指定的年月计算当月所含天数。
请认真阅读程序并回答问题(1)至问题(3)。
01 int GetMaxDay(int year, int month)02 {03 int maxday=0;04 if( month>=1 && month<=12)05 {06 if(month==2)07 {08 if(year%4==0)09 {10 if(year%100==0)11 {12 if(year%400==0)13 maxday=29;14 else15 maxday=28;16 }17 else18 maxday=29;19 }20 else21 maxday=28;22 }23 else24 {25 if(month==4 || month==6 || month==9 || month==11)26 maxday=30;27 else28 maxday=31;29 }30 }31 return maxday;32 }(1) 请画出以上代码的控制流图CFG。
(2) 试分别用三种方法计算该程序段的基本路径数目。
(3) 假设输入的取值范围是1000<year<2001,请使用基本路径测试法为变量year、month设计测试用例(写出year取值、month取值和maxday预期结果),使其满足基本路径覆盖的要求。
12. 针对下面程序段,请分别给出满足SC、DC、CC、CDC和MCC这几种覆盖准则的测试数据(即测试输入)集。
int function(bool a, bool b, bool c){int x;x=0;if(a && b || c)x=1;return x;}注:语句覆盖SC(Statement Coverage)判定覆盖DC(Decision coverage)条件覆盖CC(Condition Coverage)条件判定组合覆盖CDC(Condition/ Decision Coverage)即判定条件覆盖多条件覆盖MCC (Multiple Condition Coverage)即条件组合覆盖修正的判定条件覆盖MCDC(Modified Condition Decision Coverage)。