基本路径测试法

合集下载

软件测试基础题库(附答案)

软件测试基础题库(附答案)

软件测试基础题库(附答案)一、单选题(共50题,每题1分,共50分)1、在边界值分析中,下列数据通常不用来做数据测试的是OA、等价类中的等价值B、刚刚大于边界的值C、正好等于边界的值D、刚刚小于边界的值正确答案:A2、O也称功能测试,它是通过测试来检测每个功能是都能正常使用。

A、动态测试B、系统测试C、压力测试D、黑盒测试正确答案:D3、以下说法正确的是()A、自底向上的集成测试需要测试人员编写测试驱动程序B、非功能质量属性越高越好C、单元测试是对软件基本组成单元进行测试,即测试对象一定是一个函数D、系统备份与恢复中的数据备份与恢复通常只需要针对业务/用户数据正确答案:B4、在模块测试的过程中,采用自底向上的测试比自顶向下的测试()A、好B、一样C、差D、不确定正确答案:A5、下列软件属性中,软件产品首要满足的应该是OA、功能需求B、容错纠错能力C、可扩展性和灵活性D、性能需求正确答案:A6、下列方法中,不属于黑盒测试的是OA、等价类测试法B、基本路径测试法C、边界值分析法D、基于场景的测试方法正确答案:B7、集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性OA、可使用性B、可维护性C、可靠性D、正确性正确答案:D8、下列关于a1pha、beta测试的描述中正确的是()A、a1pha测试需要用户代表参加B、beta测试是系统测试的一种C、beta测试不是验收测试的一种D、a1pha测试不需要用户代表参加正确答案:D9、根据软件需求规格说明书,在开发环境下对已经集成的软件系统进行的测试是OA、系统测试B、集成测试C、单元测试D、验收测试正确答案:A10、软件测试的目的OA、尽可能发现并排出软件中潜藏的错误,提高软件的可靠性B、发现软件开发中出现的错误C、避免软件开发中出现的错误D、修改软件中出现的错误正确答案:B11、软件生存周期过程中,修改错误最大的阶段是OA、编程阶段B、设计阶段C、发布运行阶段D、需求阶段正确答案:C12、软件的六大质量特性包括:OA、功能性、可靠性、可拓展性、效率、稳定性、可移植B、功能性、可靠性、可用性、效率、稳定性、可移植C、功能性、可靠性、兼容性、效率、稳定性、可移植D、功能性、可靠性、可用性、效率、可维护、可移植正确答案:D13、黑盒测试是从O观点出发的测试,而白盒测试是从()观点出发的测试A、开发人员、管理人员B、开发人员、用户C、用户、管理人员D、用户、开发人员正确答案:D14、以下哪一种选项不属于软件缺陷OA、软件实现了产品规格没有提到的功能B、软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题C、软件中出现了产品规格说明不应该出现的功能D、软件没有实现产品规格说明所要求的功能正确答案:B15、下列可以作为软件测试对象的是OA、需求规格说明书B、源程序C、软件设计规格说明D、以上全部正确答案:D16、软件设计阶段的测试主要采取的方式是()A、动态测试B、白盒测试C、评审D、黑盒测试正确答案:C17、下列软件属性中,软件产品首要满足的应该是OA^容错、纠错能力B、性能需求C、可扩展性和灵活性D、功能需求正确答案:D18、CMMI共有几个级别OA、5个B、3个C、6个D、4个正确答案:A19、关于AetionWord,以下说法不正确的是()Λ^ACtiOnWord抽象方式的不同对可重用性影响很大B、ActionWord(缩写AW)是一种业务的抽象,比如测试用例里的测试步骤,检查验证、消息序列等等C、ACtionWOrd可以带必选参数也可以带可选参数D、ActionWord的实现是不可执行的正确答案:D20、关于软件测试与软件开发的认识,不正确的是()A、软件生命周期各个阶段都可能产生错误B、测试越早进行,越有助于提高被测软件的质量C、软件开发的需求分析和设计阶段就应开始测试工作D、软件测试是独立于软件开发的一个工作正确答案:D21、为了提高测试的效率,应该OA、在完成编码以后指定软件的测试计划B、随机的选取测试数据C、选择发现错误的可能性D、取一切可能的输入数据作为测试数据正确答案:C22、黑盒测试法是根据产品的()来设计测试用例的A、输入数据B、内部逻辑C、应用范围D、功能正确答案:D23、用黑盒技术设计测试用例的方法之一为OA、基本路径测试B、因果图C、循环覆盖D、逻辑覆盖正确答案:B24、功能测试的目的是OA、保证软件性能符合设计的要求B、保证系统没有错误C、保证用户方便使用D、保证软件的功能符合软件需求正确答案:D25、EXCeI软件可用于()A、文字处理B、电子表格处理C、幻灯片制作D、设计程序正确答案:B26、软件测试的目的是OA、避免软件开发中出现的错误B、修改软件中出现的错误C、发现软件开发中出现的错误D、尽可能发现并排除软件中潜藏的错误,提高软件的可靠性正确答案:C27、在覆盖准则中,最常用的是OA、条件覆盖B、以上全部C、语句覆盖D、分支覆盖正确答案:B28、对程序的测试最好由谁来做,对程序的调试最好由谁来做()A、程序开发组/程序员B、程序开发组/程序开发组C、程序员/第三方测试机构D、第三方测试机构/程序员正确答案:D29、关于采用探索性测试的原因,下面哪个论述是最合适的?A、探索性测试依赖于开发人员在被测对象知识和业务方面的支持B、探索性测试可以发现一些正式测试中遗漏的缺陷C、探索性测试在时间充裕的时候是最合适的D、探索性测试不需要花费工作量进行准备工作正确答案:B30、在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是OA、可划分为1个有效等价类,1个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,2个无效等价类D、可划分为2个有效等价类,1个无效等价类正确答案:B31、以下关于边界值的说法错误的是()A、内点就是在域范围内的任意一个点B、上点指的是边界上的点,如果是闭区间上点就在域范围内,如果是开区间上点就在域范围外C、边界值选取原则就是选取正好等于,刚刚大于或刚刚小于边界值的数据作为测试数据D、离点就是离上点最近的一个点,是开区间就在域范围外,是闭区间就在范围内正确答案:D32、下列项目中不属于测试文档的是OA、测试用例B、测试计划C、测试报告D、程序流程图正确答案:D33、下列关于软件验收测试的合格通过准则错误的是OA、立项审批表,需求分析文档,设计文档和编码实现不一致B、软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到C、所有测试项没有残余一级,二级和三级错误D、验收测试工件齐全正确答案:A34、软件测试的目的是OA、找出软件中的所有错误B、评价软件的质量C、正确软件是正确的D、发现软件的错误正确答案:D35、坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期OA、技术评审B、改正程序错误C、程序测试D、管理评审正确答案:A36、O可以作为软件测试结束的标志A、使用了特定的测试用例B、错误强度曲线下降到预定的水平C、按照测试计划中所规定的时间进行了测试D、查出了预订数目的错误正确答案:B37、下列文件中包含了主机名到IP地址的映射关系的文件是OA、etc/networksB、∕etc∕HOSTNAMEC^∕etc∕reso1v.confD、∕etc∕hosts正确答案:D38、局域网常用的网络拓扑结构是()A、星型和环型B、总线型、星型和树型C、总线型、星型和环型D、总线型和树型正确答案:C39、如果一个判定中的复合条件表达式为(A>1)Or(B<=3)则为了达到100%的条件覆盖率,至少需要设计多少个测试用例OA、3B、1C、2D、4正确答案:C40、单元测试中设计测试用例的依据是OA、概要设计规格说明书B、详细设计规格说明书C、用户需求规格说明书D、项目计划说明书正确答案:B41、某次程序调试没有出现预计的结果,下列O不可能是导致出错的原因A、循环控制出错B、变量没有初始化C、代码输入有误D、编写的语句书写格式不规范正确答案:D42、单元测试中用来模拟被测模块调用者模块是OA、桩模块B、子模块C、父模块D、驱动模块正确答案:D43、1024B是OA、IGbB、IKBC、IGBD、IMB正确答案:B44、软件测试是软件开发其中的重要环节,其主要目的是()A、尽可能多的发现并改正程序中的错误B、发现在软件需求方面中出现的错误C、发现并排出程序中的所有错误D、发现并排出软件结构设计中的错误正确答案:A45、下列关于软件测试的叙述中,选择出全部正确的一组()1)用黑盒测试时,测试用例是根据程序内部逻辑设计的2)尽量用公共过程或子程序去代替重复的代码段3)测试是为了验证该软件已正确的实现了用户的要求4)对于连锁型分支结构,若有n个判定语句,则有2n条路径5)尽量采用复合的条件测试,以避免嵌套的分支结构6)语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁7)发现错误多的程序模块,残留在模块中的错误也多8)黑盒测试方法中最有效的是因果图法9)在做程序的单元测试时,桩(存根)模块比驱动模块容易编写10)程序效率的提高主要应通过选择高效的算法来实现A、2)4)5)7)9)B、以上描述全部正确C、1)2)4)5)7)D、4)5)6)7)10)正确答案:D46、某测试人员通过执行测试软件的方法对当前功能进行了测试,该测试人员使用的测试方法为OA、系统测试B、静态测试C、黑盒测试D、单元测试正确答案:C47、物理文件的组织方式是由()确定的A、操作系统B、内存容量C、应用程序D、外存容量正确答案:A48、在web应用软件的分层测试策略中,下列哪个不是测试关注的层次O A^服务层B、表示层C、数据层D、业务层正确答案:A49、关于软件质量的描述,正确的是OA、软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性B、以上描述都不对C、软件质量是指软件满足规定用户需求的能力D、软件质量保证过程就是软件测试过程正确答案:A50、下列关于测试方法的叙述中不正确的是OA、结构测试属于白盒测试B、从某种角度上讲,白盒测试与黑盒测试都属于动态测试C、功能测试属于黑盒测试D、对功能的测试通常是要考虑程序的内部结构正确答案:D二、多选题(共10题,每题1分,共10分)1、下面哪些是设计测试方案时要考虑的内容OA、测试通过的标准B、测试方法C、测试工具D、测试的软硬件环境正确答案:ABCD2、下面哪些方法不是黑盒测试方法OA、逻辑覆盖法B、边界值分析法C、代码检查法D、等价类划分法正确答案:AC3、依存关系有4种分别是()A、开始一开始B、结束一开始C、结束-结束D、结束-审核-开始E、开始-结束F、开始-实施-结束正确答案:ABCE4^软件质量管理(QM)应有质量保证(QA)和质量控制(QC)组成,下面的选项属于QC的是OA、程序代码审查B、监督C、需求审查D、跟踪E、测试F、制定计划正确答案:BDE5、以测试的形态分测试可以分为:()A、组件测试B、专项测试C、建构性测试D、单元测试E、集成测试F、系统测试正确答案:BCF6、你认为软件测试工程师最应该具备的职业素质是OA、写作能力B、编码能力C、分析能力D、管理能力E、协调能力正确答案:ABCDE7、软件实施活动的进入准则()A、需求工作已被基件化B、构架工作已被基件化C、详细设计工作已被基件化D、项目阶段成果已被基件化正确答案:AC8、黑盒测试方法可以发现哪些类错误?OA、界面错误B、性能错误C、代码的可读性不好D、功能不正确或者遗漏正确答案:ABD9、编写测试计划的目的是OA、使项目参与人员沟通更舒畅B、使测试工作更加系统化C、使测试工作顺利进行D、软件过程规范化的要求E、控制软件质量F、软件工程以及软件过程的需要正确答案:ABC10、典型的瀑布模型的四个阶段是OA、需求调研B、分析C、编码D、实施E、设计F、测试正确答案:BCEF三、判断题(共40题,每题1分,共40分)1、静态白盒测试可以找出遗漏之处和问题A、正确B、错误正确答案:B2、软件测试必须等到所有缺陷均修复才能结束()A、正确B、错误正确答案:B3、基本路径测试法属于黑盒A、正确B、错误正确答案:B4、代码评审是检查源代码是否达到模块设计的要求A、正确B、错误正确答案:A5、测试是为了验证软件已正确的实现了用户的要求A、正确B、错误正确答案:B6、功能测试的主要目的是测试软件防止非法入侵能力A、正确B、错误正确答案:B7、GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁A、正确B、错误正确答案:A8、功能测试是系统测试的主要内容,检查系统的功能、性能是滞与需求规格说明相同A、正确B、错误正确答案:A9、我们可以人为的使软件不存在配置问题A、正确B、错误正确答案:B10、设计测试用例时,应包括合理的输入条件和不合理的输入条件A、正确B、错误正确答案:A11、软件测试人员一旦发现软件缺陷,主要以口头方式通知软件开发人员()A、正确B、错误正确答案:B12、软件测试的唯一目的就是为了发现软件的错误OA、正确B、错误正确答案:B13、测试组负责软件质量A、正确B、错误正确答案:B14、验收测试只能由开发公司的测试人员来实施的A、正确B、错误正确答案:B15、如果能做非常完美黑盒测试,则可无需做白盒测试A、正确B、错误正确答案:B16、对于连锁型分支结构。

(完整版)黑盒测试和白盒测试

(完整版)黑盒测试和白盒测试

白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作.这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。

采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。

其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异.白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试.其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。

语句覆盖每条语句至少执行一次。

判定覆盖每个判定的每个分支至少执行一次。

条件覆盖每个判定的每个条件应取到各种可能的值.判定/条件覆盖同时满足判定覆盖条件覆盖。

条件组合覆盖每个判定中各条件的每一种组合至少出现一次。

路径覆盖使程序中每一条可能的路径至少执行一次。

”白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

”白盒”法是穷举路径测试。

在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据.贯穿程序的独立路径数是天文数字.但即使每条路径都测试了仍然可能有错误。

第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。

白盒测试的主要方法

白盒测试的主要方法

二、 基本路径测试
基本路径测试就是在程序控制图的基础 上,通过分析控制构造的环行复杂性,导 出基本可执行路径集合,从而设计测试用 例的方法。设计出的测试用例要保证在测 试中程序的每一个可执行语句至少执行一 次。
基本路径测试-----步骤
1. 导出程序的控制流图
2. 计算程序环路复杂度:确定程序中每个可执
白盒测试的主要方法
语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖 基路径测试 循环测试
逻辑覆盖
路径测试
数据流测试 其他白盒测试方法
一、 逻辑覆盖
• 1、语句覆盖:语句覆盖就是设计若干个测试用 例,运行被测试程序,使得每一条可执行语句 至少执行一次 • 2、判定覆盖(也称为分支覆盖):设计若干个 测试用例,运行所测程序,使程序中每个判断 的取真分支和取假分支至少执行一次;
条件组合覆盖
• 它的含义是:设计足够的例子,使得每个
判定中条件的各种可能组合都至少出现一 次。显然,满足“条件组合覆盖”的测试 用例是一定满足“判定覆盖”、“条件覆 盖”和“判定/条件覆盖”的。
例题1
编号 1 2 3
4 5 6 7 8
具体条件取值 a>1,b=0 a>1,b<>0 a<=1,b=0
① A=3,B=0,X=1 (沿路径acd执行); ② A=2,B=1,X=3(沿路径abe执行)
判定覆盖
A=3,B=0,X=1 (沿路径acd 执行) A=2,B=1,X=3 (沿路径abe 执行)
例题2
判定覆盖
往往大部分的判定语句是由多个逻辑条
件组合而成,若仅仅判断其整个最终结果, 而忽略每个条件的取值情况,必然会遗漏 部分测试路径 。

简述白盒测试概念

简述白盒测试概念

简述白盒测试目录1. 概述 (3)2. 白盒测试 (3)2.1. 白盒测试的基本概念 (3)2.2. 白盒测试的常用方法 (3)2.2.1. 逻辑覆盖测试 (3)2.2.1.1. 语句覆盖 (3)2.2.1.2. 判定覆盖 (4)2.2.1.3. 条件覆盖 (4)2.2.1.4. 判定/条件覆盖 (4)2.2.1.5. 条件组合覆盖 (4)2.2.1.6. 路径测试 (4)2.2.2. 循环覆盖测试 (4)2.2.2.1. 简单循环的测试策略 (4)2.2.2.2. 嵌套循环的测试策略 (4)2.2.2.3. 串接循环的测试策略 (4)2.2.2.4. 不规则循环 (5)2.2.3. 基本路径测试 (5)2.2.3.1. 步骤一:画出控制流图 (5)2.2.3.2. 步骤二:计算圈复杂度 (5)2.2.3.3. 步骤三:导出测试用例 (5)2.2.3.4. 步骤四:执行测试用例 (5)2.2.3.5. 工具方法:图形矩阵 (6)2.2.4. 静态数据流分析 (6)3. 总结 (6)1.概述20世纪60年代中期,随着计算机硬件的迅猛发展,计算机的应用范围迅速扩大,软件开发数量急剧增长,计算机系统应用越来越广泛。

软件快速的需求增长使得软件开发中的矛盾越来越突出——软件危机出现了。

软件工程应运而生,软件测试的作用越来越重要。

而白盒测试就是一种软件测试用例的设计方法。

2.白盒测试2.1.白盒测试的基本概念白盒测试又称结构测试,透明盒测试,逻辑驱动测试或基于代码的测试。

白盒测试是测试被测单元内部如何工作的一种方法。

其目的是通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

它允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑进行测试,提高代码质量。

由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。

基本路径测试中的McCabe算法改进与应用

基本路径测试中的McCabe算法改进与应用

t k sa e ,wh c f c h p l ain i a i P t e t o ma e mitk s ih af tt e a p i t n B s ah T s .Ai n tt e p o l m ,Mc a e me h d i m— e c o s mi g a h r b e C b t o s i p o e n t i p p r n h mp o e t o s i o t s wi h rma y o e e tr s l r v h tt e i r v d i h s a e ,a d t e i rv d meh d i n c n r t t t e p i r n .T s e u t p o e t a a h s h m- p o e C b t o s s l r a d i n p lt n g t e h n e r v d Mc a e me h d i i e n t ma i u ai e s n a c d,w o e a v n a e k e g n rt n o mp s o h s d a t g s ma e t e e ai f h o b sc p ts mo e e a t a i a r x c . h
关 键词 : 白盒 测试 ;基本路 径 测试 ;改进 的 Mc a e 法 Cb 方 中图分 类号 : P l . T 3 11 文献 标 志码 : A 文章 编号 : 0 7 2 8 ( 0 0 0 — 0 8 0 10 — 63 2 1 ) 1 04 — 4
Th pia in o mpr v d Mc b t o n Ba i t s e Ap l t fI c o o e Ca e Me h d i ss Pa h Te t
Ke r : ie b x ts ;b sspah ts ;i r v d Mc b t o y wo ds wh t — o e t a i t e t mp o e Ca e me h d

基本路径测试用例设计算法

基本路径测试用例设计算法
t h e e ic f i e n c y o f Me C a b e me t h o d i s l o w e r .T o s o l v e t h i s p r o b l e m, t h i s p a p e r p r o p o s e d a n a l g o it r h m t o d e s i g n b a s i c p a t h t e s t c a s e a c c o r d i n g t o t h e b a s i c p r o g r a m s t r u c t u r e .T h e a l g o it r h m f i r s t c r e a t e d a b a s i c u n i t c h a r t b a s e d o n t h e Z- p a t h c o v e r a g e . Ne x t ,t h e ul r e s t h a t c o mb i n e d a c o n t r o l f l o w g r a p h f r o m b a s i c u n i t we r e e s t a b l i s h e d .On t h i s b a s i s ,t h e c o mb i n a t i o n a l g o i r t h m o f t h e b a s i c p a t h wa s c o n s t r u c t e d .T h e a l g o it r h m c o l l e c t e d t h e p a t h s e t o f b a s i c p r o ra g m s t uc r t u r e b y s c a n n i n g a p r o ra g m o n l y

基本路径覆盖测试探针插桩技术研究


0 引 言
目前 国 内外 市 场 上 的嵌 入 式 系 统 主 要 采 用 软 硬 件 结 合 的 工 具 测 试 “ 该 类 工 具 从 软 件 部 分 来 说 , 然 是 用 传 统 的 插 桩 , 依
个 判 断和 多 个 循 环 , 能 的路 径 数 目将 会 急 剧 增 长 , 到 天 文 可 达 数字 。 。为 了解 决 这 一 问 题 , 要 制 定 一个 有 效 的 、 销 较 小 需 开 的覆 盖 准 则 对 B F bokcnrl o r h进 行 优 化 处 理 。 C G(l ot w ga ) c of l p 定 义 1 块 控 制 流 图 B F F=N E E t , xt F F n— C G()( , , n yE i: (u c r ) t n为 被 测 函数 集 , i) o N是 程序 块 集 , 基 本 块 和 节 点块 ( 件 判 分 条
t t g ( a pi z t n i rsa c e . T e rb r h t th me f nt l ai ein d a dte i r ue MS e i Z p t o t ai ) s ee rh d h o eai mei a tet iai t n i d s e , n nds i t E sn h mi o p t c i oi i z o s g h tb d
tsi g a d t eman e a c r . e t n i tn n ewo k n h Ke r s p t o e a et si g p o r m sr m e tto ; me s g u u ; CF y wo d : ah c v r g e t ; r g a i t n n u n ai n s a eq e e G; e e d d s f r mb d e o t wa e

第3章白盒测试技术


函数调用关系图
• 通过应用程序各函数之间的调用关系展示 了系统的结构。列出所有函数,用连线表 示调用关系。 • 通过函数调用关系图:
– 可以检查函数的调用关系是否正确 – 是否存在孤立的函数而没有被调用 – 明确函数被调用的频繁度,对调用频繁的函数 可以重点检查
模块控制流图
• 模块控制流图是与程序流程图类似的有许 多节点和连接节点的边组成的一种图形, 其中一个节点代表一条语句或数条语句, 边表示节点间的控制流向,它显示了一个 函数的内部逻辑结构 • 模块控制流图可以直观的反映出一个函数 的内部逻辑结构,通过检查这些模块的控 制流图,能够很快发现软件的错误与缺陷。
逻辑覆盖法
• 逻辑覆盖是通过对程序逻辑结构的遍历实现程序 的覆盖。它是一系列测试过程的总称,这组测试 过程逐渐进行越来越完整的通路测试。 • 从覆盖源程序语句的详尽程度分析,逻辑覆盖标 准包括:
– – – – – – 语句覆盖 判定覆盖 条件覆盖 条件判定组合覆盖 多条件覆盖 修正条件判定覆盖
示例程序
3.3 动态测试技术
• 白盒测试的动态测试应该根据程序的控制结构设计测试用例,原则是:
– – – – 保证模块中每一独立的路径至少执行一次; 保证所有判断的每一分枝至少执行一次; 保证每一循环都在边界条件和一般条件下至少各执行一次; 验证所有内部数据结构的有效性。
• 对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数 字.而且即使精确地实现了白盒测试,也不能断言测试过的程序完全正 确. • 比如包括了一个执行达20次的循环的程序,它所包含的不同执行路径 数高达520条,假使有这么一个测试程序,对每一条路径进行测试需要 1ms,假设一天工作 24小时,一年工作365天,若要对它进行穷举测试,也 需要3024年的时间. • 为了节省时间和资源,就必须精心设计测试用例,从数量巨大的可用 测试用例中挑选少量的、优秀的测试数据,使用这些测试数据能够达 到最佳的测试效果 • 其中,逻辑覆盖法和基本路径测试法是常用的两种白盒测试用例测试 方法。

如何编写单元测试用例(白盒测试)

如何编写单元测试用例(白盒测试)。

一、 单元测试的概念单元通俗的说就是指一个实现简单功能的函数。

单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。

测试的覆盖种类1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。

2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。

3.条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。

4.判定——条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。

5.条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组合至少执行一次。

6.路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。

用例的设计方案主要的有下面几种:条件测试,基本路径测试,循环测试。

通过上面的方法可以实现测试用例对程序的逻辑覆盖,和路径覆盖。

二、开始测试前的准备在开始测试时,要先声明一下,无论你设计多少测试用例,无论你的测试方案多么完美,都不可能完全100%的发现所有BUG,我们所需要做的是用最少的资源,做最多测试检查,寻找一个平衡点保证程序的正确性。

穷举测试是不可能的。

所以现在进行单元测试我选用的是现在一般用的比较多的基本路径测试法。

三、开始测试基本路径测试法:设计出的测试用例要保证每一个基本独立路径至少要执行一次。

函数说明 :当i_flag=0;返回 i_count+100当i_flag=1;返回 i_count *10否则返回 i_count *20输入参数:int i_count ,int i_flag输出参数: int i_return;代码:int i_flag)i_count, int1 int Test(int i_count,2 {3 intint i_temp = 1;while (i_count>0)4 while5 {6 if if (0 == i_flag)7 {8 i_temp = i_count + 100;break;9 break10 }11 elseelse12 {13 if if (1 == i_flag)14 {15 i_temp = i_temp * 10;16 }else17 else18 {19 i_temp = i_temp * 20;20 }21 }22 i_count--;23 }return i_temp;24 return25 }1.画出程序控制流程图图例:事例程序流程图:圈中的数字代表的是语句的行号,也许有人问为什么选4,6,13,8......作为结点,第2行,第3行为什么不是结点,因为选择结点是有规律的。

实训题目:基本路径测试用例设计----------上机

实训题目:基本路径测试用例设计------------上机实训目的:1、一步熟悉白盒测试的方法和策略2、点掌握圈复杂度概念和基本路径测试用例设计方法3、增强测试经验实训地点:机房实训课时:2课时实训重点、难点:基本路径测试用例设计实训安排:首先讲解基本路径测试设计测试用例的步骤,要求学生注意总结方法和技巧,然后布置上机任务,要求学生对照课件和课本完成上机任务。

老师在机房进行辅导。

实训步骤:一、Voidsort(inti,intj,intk)1{2intm,n,p;3m=n=p=0;4if(i>5andj<8)5m++;6else7if(k>=9)8n++;9else10p++;11Printf(“%d,%d,%d”,m,n,p);12}按照基本路径测试方法设计测试用例?1、画流图,计算复杂度2、导出测试用例阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。

以下代码由C语言书写,请按要求回答问题。

IntIsLeap(intyear)1{2if(year%4==0)3{4if(year%100==0)5{6if(year%400==0)7leap=1;8else9leap=0;10}11else12leap=1;13}14else15leap=0;16returnleap;17}【问题1】(3分)请画出以上代码的控制流图【问题2】(4分)请计算上述控制流图的圈复杂度V(G)(独立线性路径数)【问题3】(8分)假设输入的取值范围是1000<year<2001,请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求。

?。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档