




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件测试软件测试第第4 4章章 白盒测试方法白盒测试方法 逻辑覆盖法逻辑覆盖法Logo目目 录录白盒测试方法的引入白盒测试方法的引入1语句覆盖语句覆盖2判定覆盖判定覆盖3条件覆盖条件覆盖4判定条件覆盖判定条件覆盖5条件组合覆盖条件组合覆盖6路径覆盖路径覆盖7Logo知识回顾知识回顾 软件测试技术分类:按面向测试对象粒度(按开发阶段)分:按测试方法分:按运行状态分: 什么是测试用例?由哪些部分组成? 这个程序可以用来求什么? k = i;for(j = i+1; j = n; j+) if(Aj 1)A1) & (B=0(B=0)(A=2)A=2) | (X1(X1)X=X/AX=X/A
2、X=X+1X=X+1开始Logo例例 子子Logo例例 子子Logo例例 子子Logo例例 子子Logo语句覆盖语句覆盖Logo语句覆盖语句覆盖Logo(A1)(A1) & (B=0)(B=0)(A=2)(A=2) | (X1)(X1)X=X/AX=X/AX=X+1X=X+1开始Logo语句覆盖语句覆盖语句覆盖率l已执行的可执行语句占程序中可执行语句总数的百分比复杂的程序不可能达到语句的完全覆盖语句覆盖率越高越好Logo语句覆盖的优点语句覆盖的优点检查所有语句结构简单的代码的测试效果较好容易实现自动测试代码覆盖率高 如果是程序块覆盖,则不涉及程序块中的源代码 Logo语句覆盖不能检查出
3、的错误语句覆盖不能检查出的错误逻辑运算(&、|)错误 判定的第一个运算符“&”错写成“|”,或第二个运算符“|”错写成“&”,这时使用上述的测试用例仍然可以达到100%的语句覆盖.循环语句错误l循环次数错误l跳出循环条件错误Logo语句覆盖不能检查出的错误语句覆盖不能检查出的错误 循环语句例子for(i=0;i3) statement;Logo语句覆盖率的问题语句覆盖率的问题 能达到很高的语句覆盖率 语句覆盖率看似很高,却有严重缺陷: if(x!=1) statements; ; else statement; 99句1句测试用例:x = 2语句覆盖率99%50%的分支
4、没有达到Logo 【优点】【优点】 :可以很直观地从源代码得到测试用例,无须细分每条判定表达式。 【缺点】【缺点】 :由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖。语句覆盖总结语句覆盖总结Logo判定覆盖判定覆盖 Decision CoverageDecision CoverageLogo(A1)(A1) & (B=0)(B=0)(A=2)(A=2) | (X1)(X1)X=X/AX=X/AX=X+1X=X+1开始Logo判定覆盖判定覆盖Logo判定覆盖判定覆盖Logo判定覆盖判定覆盖Lo
5、go判定覆盖判定覆盖16352789410 说明:以上仅考虑了两出口的判断,我们还应把判定覆盖以上仅考虑了两出口的判断,我们还应把判定覆盖准则扩充到准则扩充到多出口判断多出口判断(如(如CaseCase语句)的情况。因此,判语句)的情况。因此,判定覆盖更为广泛的含义应该是使得每一个判定获得每一种定覆盖更为广泛的含义应该是使得每一个判定获得每一种可能的结果至少一次。可能的结果至少一次。Logo判定覆盖判定覆盖 【优点】【优点】:判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。 【缺点】【缺点】:往往大部分的判定语句是由多个逻辑条
6、件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。Logo条件覆盖条件覆盖Condition CoverageCondition Coverage 在设计程序中,一个判定语句是由多个在设计程序中,一个判定语句是由多个条件组合而成的复合判定,判定条件组合而成的复合判定,判定(a)&(b|c)(a)&(b|c)包含了三个条件:包含了三个条件:a,ba,b和和c c。为了更彻底的实现逻辑覆盖,可以采用为了更彻底的实现逻辑覆盖,可以采用条件覆盖。条件覆盖。Logo条件覆盖条件覆盖Condition CoverageCond
7、ition CoverageLogo条件覆盖条件覆盖Condition CoverageCondition CoverageT1T1T2T2T3T3T44TLogo(A1) & (B=0)(A=2) | (X1)X=X/AX=X+1开始Logo条件覆盖条件覆盖Condition CoverageCondition CoverageT T T T12344321TTTT4321TTTTLogo条件覆盖条件覆盖T T T T1234T T T T1234Logo条件覆盖条件覆盖 【优点】【优点】:增加了对条件判定情况的测试,增加了测试路径。 【缺点】【缺点】:条件覆盖不一定包含判定覆盖。条
8、件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。LogoCDCCDCLogo(A1) & (B=0)(A=2) | (X1)X=X/AX=X+1开始LogoCDCCDCT T T T1234T T T T1234Logo:从表面上看,判定/条件覆盖测试了各个判定中的所有条件的取值,但实际上,编译器在检查含有多个条件的逻辑表达式时,某些情况下的某些条件将会被其它条件所掩盖。因此,判定/条件覆盖也不一定能够完全检查出逻辑表达式中的错误。CDCLogoCDCCDC:对于第一个判定(A1)&(B=0)来说,必须A1和B=0这两个条件同时满足才能确定该判定为真。如果A1为假
9、,则编译器将不再检查B=0这个条件,那么即使这个条件有错也无法被发现。对于第二个判定(A=2)(A=2)|(X1)(X1)来说,若条件A=2满足,就认为该判定为真,这时将不会再检查X1,那么同样也无法发现这个条件中的错误。Logo判定条件覆盖判定条件覆盖 【优点】【优点】 :能同时满足判定、条件两种覆盖标准。 【缺点】【缺点】 :判定/条件覆盖准则的缺点是未考虑条件的组合情况。LogoLogoT T12T T12T T12T T12T T34T T3443TTT T34Logo(A1) & (B=0)(A=2) | (X1)X=X/AX=X+1开始LogoT T T T1234T T
10、T T1234T T T T1234T T T T1234 分析:上面这组测试用例覆盖了所有8种条件取值的组合,覆盖了所有判定的真假分支,但是却丢失了一条路径L4。Logo条件组合覆盖条件组合覆盖 【优点】【优点】 :条件组合覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。 【缺点】【缺点】 :线性地增加了测试用例的数量。Logo各种方法的逻辑覆盖程度各种方法的逻辑覆盖程度组组合覆盖合覆盖判断判断/ /条件覆盖条件覆盖判断覆盖判断覆盖条件覆盖条件覆盖语句覆盖语句覆盖LogoT T T T1234T T T T1234T T T T1234T T T T3412Logo 分析:Logo 说明:LogoLogo总结总结从前面的例子我们可以看到,采用任何一种覆盖方法都不能满足我们的要求,所以,在实际的测试用例设计过程中,可以根据需要将不同的覆盖方法组合起来使用,以实现最佳的测试用例设计 。Logo练习题练习题void DoWork(int x,int y,int z) int k=0,j=0; if(x3)&(z5) j=x*y+10; /语句块2 j=j%3;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤炭产业政策引导与市场布局规划考核试卷
- 摄影器材行业文化传承与创新策略考核试卷
- 毛皮鞣制工厂的设备维护与升级改造考核试卷
- 海洋生物制药技术与应用考核试卷
- 建筑钢材切割机械考核试卷
- 日用杂品市场调研与分析考核试卷
- 写代言合同标准文本标准文本
- 0利息购车合同标准文本
- 建设工程施工合同
- 买房合同欺诈合同标准文本
- 80后-儿时回忆课件
- 儿童高血压诊断与治疗课件
- 《西游记》知识问答参考课件
- cmk 设备能力分析计数表格
- 2022年新改版教科版五年级下册科学全册实验记录单(实验必备)
- 鲁奇炉结构原理
- 煤矿安全生产技术概述
- 多器官功能衰竭病人的护理
- 组合创新技法形态分析法
- 慢性肾衰竭教学查房
- ZZ031 园林微景观设计与制作赛项赛题-2023年全国职业院校技能大赛拟设赛项赛题完整版(10套)
评论
0/150
提交评论