-
2019-11-08 15:28:59
下面只是个人理解,可能有不准确之处!
1 语句覆盖
每个可执行语句都走一遍,即测试用例要覆盖所有的语句
大白话:什么都不管,只是单纯的让所有语句都执行一次,不管语句执行几次,不管执行结果,只要他们都执行过。
2 判定覆盖(分支覆盖)
针对判断语句,在设定案例的时候,两种案例都执行
大白话:让所有的判断情况都取到,不管语句执行几次不管他们的执行结果
3 条件覆盖
针对判断语句里面条件的取值都要去执行一次,不考虑条件的取值,不考虑真假与走向
大白话:让所有的判断条件都执行过一次,其他什么都不管
4 判定/条件覆盖
判定覆盖各条件覆盖交叉,针对于判定中的条件取值
大白话:在判定覆盖的基础上通过增加测试用例或者通过合理安排用理使得测试可以让所有条件都执行一次
5 组合覆盖
判定-条件覆盖的加强版
判断所有条件的组合(有点像穷举)大白话:把所有条件进行穷举组合(如三个条件又2^3=8)个,
6 修正的判定/条件覆盖
在满足判定/条件覆盖的基础上,每个简单判定条件都应独立地影响到整个判定表达式的取值
实质是利用简单判定条件的独立影响性来消除测试用例的冗余大白话:把组合覆盖里面没用的去掉,具体的请自行百度,我就不献丑了
更多相关内容 -
软件测试 白盒测试用例设计方法动态 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖...
2022-03-30 22:46:59逻辑覆盖法有语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。 2.1.1 语句覆盖 2.1.2 判定覆盖 2.1.3 条件覆盖 2.1.4 判定条件覆盖 2.1.5 条件组合覆盖 2.1.6 路径覆盖 2.2 基本路径测试法 ....文章目录
白盒设计方法分为静态和动态。1 静态
静态的白盒测试方法有桌面检查、代码审查、代码走查和代码扫描工具。
2 动态
动态的白盒测试方法有逻辑覆盖法和基本路径测试法。
2.1 逻辑覆盖
逻辑覆盖法有语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。
例1
int a=0; public class E01(int x,int y,int m){ if(x>&&y>0){ a=x+y;//语句块1 } else{ a=x-y;//语句块2 } if(m<0){ a=m;//语句块3 } return a;//语句块4 }
将上述程序画出流程图,如下:
2.1.1 语句覆盖
语句覆盖,就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。度量被测代码中每个可执行语句是否被执行到了。
语句覆盖标准最弱,它只管覆盖代码中的执行语句,却不考虑各种分支的组合等等。
语句覆盖率=可执行的语句总数/被评价到的语句数量 x 100%将例1进行语句覆盖,写出测试用例如下:
数据 语句 x=1,y=1,m=2 1,4 x=-1,y=-1,m=-2 2,3,4 若将语句块1改为
if(x>0||y>0)
,语句覆盖还是覆盖成功,不符合测试需求。因为语句覆盖不能准确的判断运算中的逻辑关系错误。(语句覆盖的缺点)2.1.2 判定覆盖
定义:判定覆盖使设计的测试用例保证程序中每个判断的每个取值分支(ture or false)至少经历一次。
【优点】:判定覆盖具有比语句覆盖更强的测试能力。同样分支(判定)覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。
【缺点】:往往大部分的分支(判定)语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。将例1进行判定覆盖,写出测试用例如下:
P1为“x>0&&y>0”判定,P2为“m<0”判定P1 P2 用例 T F x=1,y=1,m=1 F T x=-1,y=-1,m=1 F F x=-1,y=-1,m=-1 T T x=1,y=1,m=-1 只要满足了判定覆盖标准就一定满足语句覆盖标准。
判定覆盖会忽略条件中取或(or)的情况。
若将语句块1改为if(x>0||y>0)
,判定覆盖还是覆盖成功,不符合测试需求。2.1.3 条件覆盖
定义:设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。
回头看例1的流程图,判定条件定义如下:
x>0&&y>0判定记为:P1
m<0判定记为:P2
x>0记为:C1
y>0记为:C2
m<0记为:C3测试用例设计如下:
C1 C2 C3 P1 P2 用例 路径 T F T F T x=1,y=-1,m=-1 acd F T F F F x=-1,y=1,m=-1 ace 条件覆盖比判定覆盖,增加了对判定中所有条件的测试。
但条件覆盖并不能保证判定覆盖。例如:P1为真,没有覆盖。2.1.4 判定条件覆盖
定义:设计测试用例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值(真假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。
判定条件覆盖率=每个判断本身的判定结果(真假)至少满足一次/判定结果的总数+条件结果的总数
例1代码中有2个判定,条件3个。所以,判定结果为2* 2(true,false)=4个,条件结果3*2(true,false)=6个。
设计测试用例执行3个判定结果,5个条件结果,判定条件覆盖率为:(3+5)/(4+6)=80%将例1进行判定条件覆盖,写出测试用例如下:
C1 C2 C3 P1 P2 用例 路径 T T F T F x=1,y=1,m=1 abe F F T F T x=-1,y=-1,m=-1 acd 满足判定条件覆盖标准,一定能够满足条件覆盖、判定覆盖和语句覆盖。
判定条件覆盖会忽略条件中取或(or)的情况。2.1.5 条件组合覆盖
定义
判定中条件的各种组合都至少被执行一次。
特点
(1)满足条件组合覆盖的用例一定满足语句覆盖、条件覆盖、判定覆盖和判定覆盖。
(2)条件组合覆盖没有考虑各判定结果(真或假)组合情况,不满足路径覆盖
(3)条件组合数量大,设计测试用例的时间花费较多。例1使用条件组合覆盖,测试用例设计如下:
C1 C2 C3 P1 P2 用例 路径 T T T T T x=1,y=1,m=-1 abd T F T F T x=1,y=-1,m=-1 acd F T T F T x=-1,y=1,m=-1 acd F F T F T x=-1,y=-1,m=-1 acd T T F T F x=1,y=1,m=1 abe T F F F F x=1, y=-1,m=1 ace F T F F F x=-1,y=1,m=1 ace F F F F F x=-1,y=-1,m=1 ace 2.1.6 路径覆盖
定义
使程序的每条可能路径都至少执行一次。
特点
路径覆盖可以对程序进行彻底的测试,比前面五种覆盖面都广。C1 C2 C3 P1 P2 用例 路径 T T T T T x=1,y=1,m=-1 abd T T F T F x=1,y=1,m=1 abe T F T F T x=1,y=-1,m=-1 acd F F F F F x=-1,y=-1,m=1 ace 2.2 基本路径测试法(重点)
定义
在程序控制流图的基础上,通过分析程序的环路复杂性,导出基本可执行路径集合,从而设计测试用例。
步骤
第一步,根据代码画出程序控制流图;
第二步,计算程序的环路复杂度;
第三步,导出可执行路径;
第四步,设计测试用例。void Sort(int a,int b){ int x=0; int y=0; while(a-- >0){ //将此判断记为P1 if(0==b) //将此判断记为P2 x=y+2;break; //将此语句记为s1 else if(1==b) //将此判断记为P3 x=y+10; //将此语句记为s2 else x=y+20; //将此语句记为s3 } }
第一步,控制流图,如下图:
第二步,计算程序环路复杂度
方法有三种:
流图中区域的数量对应于环型的复杂性。给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中节点的数量。技巧:边数——数箭头,结点——数判断框和语句
边数10,结点8,所以V(G)=10-8+2。给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是上图中判定节点的数量。V(G)=3+1
用环路复杂度验证测试用例是否覆盖全了。
第三步,导出可执行路径
回头看例子的程序流程图,此例子可导出路径为:
路径1:P1-退出程序
路径2:P1-P2-S1-退出程序
路径3:P1-P2-P3-S2-退出P3-P1-退出程序
路径4:P1-P2-P3-S3-退出P3-P1-退出程序第四步,设计测试用例
测试数据 覆盖路径 a=0 路径1 a=1,b=0 路径2 a=1,b=1 路径3 a=1,b=2 路径4 小结
白盒测试主要应用于单元测试阶段。白盒设计用例一般使用基本路径测试,重点模块使用多个覆盖率标准。
-
白盒测试-判定条件覆盖
2022-03-22 21:47:04判定条件覆盖:每个判定至少满足一次true和false。判定条件中的每个条件获得可能的取值至少满足一次。 每个判定至少满足一次true和一次false; 判定中每个条件至少满足一次true和一次false。 A>1,A<=1; ...判定条件覆盖:每个判定至少满足一次true和false。判定条件中的每个条件获得可能的取值至少满足一次。(未考虑条件的组合关系)
每个判定至少满足一次true和一次false;
判定中每个条件至少满足一次true和一次false。
A>1,A<=1;
B=0,B!=0;
A=2,A!=2;
X>1,X<=1;
测试用例1:
所有判定为true,所有条件为true:
A=2,B=0,X=2;
所有判定为false,所有条件为false:
A=1,B=1,X=1
-
软件设计师--判定覆盖,判定条件覆盖,条件组合覆盖--一个栗子
2018-05-25 10:38:43针对上图的一个判断条件,在这里将分别讨论判定覆盖、判定条件覆盖、条件组合覆盖的情况: 设T1=A>3,T2=B>3;为该判定节点的两个子条件。 (一)判定覆盖: 所谓的判定覆盖就是让判定的真分支和假...针对上图的一个判断条件,在这里将分别讨论判定覆盖、判定条件覆盖、条件组合覆盖的情况:
设T1=A>3,T2=B>3;为该判定节点的两个子条件。
(一)判定覆盖:
所谓的判定覆盖就是让判定的真分支和假分支各执行一次,只要列出的子条件能够满足真假分支各一次就可以了:
例如: A=4,B=3(T1=True,T2=False)走了真分支,A=3,B=3(T1=False,T2=False)走了假分支。
当然,能走真假分支都走的条件组合还有很多种,这里随便选一种就可以了。
(二)判定条件覆盖(条件覆盖):
所谓判定条件覆盖就是给出的条件组合里面每个子条件的真、假都出现过,也就是T1(True,False),T2(True,False)都出现过。现在如果我们拿过问题(一)的条件组合,那么得到的就是:
A=4,B=3(T1=True,T2=False)
A=3,B=3(T1=False,T2=False)
发现T1(True,False)都有了,T2(__,False)只有False,没有出现True,所以随便补充一个T2=True的条件组合就可以了:
A=3,B=4(T1=False,T2=True)
这样就满足判定条件覆盖了,当然,如果不在问题(一)的基础上扩展的话,可以用判定条件覆盖的最暴力的方式给出答案:
A=4,B=4(T1=True,T2=True)
A=3,B=3(T1=False,T2=False)
这样就满足了判定条件覆盖。
(三)条件组合覆盖:
所谓的条件组合覆盖,就是一个判定的所有子条件的组合情况都出现一次。一般使用列表法,把子条件的所有组合情况都列出来,然后填表:
T1 T2 红色是从问题 A B TRUE TRUE (二)继承的 5 5 FALSE FALSE ------ 3 3 TRUE FALSE 绿色是补充的 4 3 FALSE TRUE -------- 3 4 在表格中的A B组合就满足了条件组合覆盖,可见条件组合覆盖是包含着判定条件覆盖的,而判定条件覆盖不一定包含判定覆盖。
注:本例中给出的测试用例严格来讲都是错误的,因为一个完整的测试用例,还要给出结果,这里只是为了说明问题,程序是截块的,所以就只给了输入,没有给输出。
-
软测-为三角形程序开发判定条件覆盖和条件组合覆盖的测试用例教程文件.doc
2020-07-03 02:03:52软测-为三角形程序开发判定条件覆盖和条件组合覆盖的测试用例 精品文档 精品文档 收集于网络如有侵权请联系管理员删除 收集于网络如有侵权请联系管理员删除 精品文档 收集于网络如有侵权请联系管理员删除 1.... -
白盒测试(分别以判定覆盖、条件覆盖、条件组合覆盖设计测试用例)
2019-03-26 09:29:20本次实验主要是用逻辑覆盖法和基路径测试法对程序进行测试验证,运行程序测试之前按照老师课上讲的思路先将各种测试方法的测试用例以及预期结果写了下来,然后对其进行上机测试,得出真实结果与预期结果进行对比。... -
白盒测试之修正判定条件覆盖测试(MCDC测试)
2021-12-06 10:39:11修正条件/判定覆盖(MC/DC)测试概念需求示例测试用例分析设计测试用例脚本MC/DC覆盖情况总结 概念 修正条件/判定覆盖是对于每一个条件C,要求存在并符合以下条件: 1)条件C所在判定内的所有条件,除条件C外,其他... -
MCDC — 修正判定条件覆盖
2021-04-14 10:59:57答:修正判定条件覆盖-----程序中的每个输入和输出都至少被调用一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每一个判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的... -
白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
2017-10-24 09:29:28白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例...本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 -
软件测试技术基础教程15.用例设计方法-判定条件覆盖.pptx
2020-04-17 13:55:57用例设计方法-判定条件覆盖;判定条件覆盖则是判定覆盖与条件覆盖的迭代即被测对象的所有判定及条件所取的真假值至少被覆盖一次 同样以右图为例设计用例如下 上述用例达到了100%判定条件覆盖但从路径角度而言遗漏了p1... -
软件测试-修正判定条件覆盖(MCDC)的一些认识
2022-04-12 22:53:18文章链接点击跳转 -
请写出判断三角形的代码-设计用例达到测试效果(语句覆盖-判定覆盖-条件组合覆盖-基本路径测试法).docx
2020-11-13 00:41:39请写出判断三角形的代码设计用例达到测试效果 语句覆盖 判定覆盖 条件组合覆盖 #include<stdio.h> void?main) { int?a?b?c; printf"please?enter?three?integer; scanf%d%d%d&a&b&c; if(0) { if(a+b>c?a+c>b?c+b>a) ... -
判定覆盖与条件覆盖的区别
2021-06-28 16:19:41判定覆盖与条件覆盖的区别 判定覆盖只关心判定表达式的值(真/假),而条件覆盖涉及到判定表达式的每个条件的值(真/假)。 举个最简单的例子,方便理解: 判定表达式:a>1 or b>1 用判定覆盖设计的测试数据:... -
白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖(转)...
2015-05-19 11:32:00本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 白盒测试的概述 由于逻辑错误和不正确假设与一条 程序 路径被运行的可能性成反比。由于我们经常相信... -
语句覆盖、判断覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修正条件覆盖
2021-02-11 19:24:40'''int function(bool a,bool b,bool c){int x;x=0;if(a&...测试用例:a=T,b=T,c=T2、判断覆盖(DC)设计足够的测试用例,使得程序中的每个判定至少都获得一次真值或假值。或者使得程序中的每... -
白盒测试 语句覆盖 条件覆盖 判定覆盖 判定条件覆盖 条件组合覆盖 路径覆盖
2009-01-03 13:16:46语句覆盖 条件覆盖 判定覆盖 判定条件覆盖 条件组合覆盖 路径覆盖 -
改进的判定条件覆盖讲解和真值表书写
2019-10-12 11:26:10即Modified Condition/Decision Coverage,缩写为MC/DC。 其中判定是指决定if或者循环语句是否执行的那个逻辑表达式。 基本思路。...MC/DC效果和多重条件覆盖效力相同,但是用例数显著减少。 ... -
语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖
2019-05-25 14:44:16文章目录语句覆盖判定覆盖条件覆盖条件--判定覆盖组合覆盖 逻辑覆盖率:语句覆盖<条件覆盖<判定覆盖<条件-判定覆盖<组合覆盖<路径覆盖 语句覆盖 基本思想:设计用例,使程序中的每个可执行语句至少... -
白盒测试的逻辑覆盖辨析(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)
2021-10-31 10:33:58白盒测试逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖) 逻辑覆盖测试: 语句覆盖:每条语句至少执行一次 判定覆盖:每一判定的每个分支至少执行一次 条件覆盖:每一判定中的每个条件,... -
白盒测试-修正条件判定覆盖
2021-08-18 16:02:53当程序中的判定语句包含多个条件时,运用多条件覆盖方法进行测试,其条件取值组合数目是非常大的。 修正条件判定覆盖要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出... -
语句覆盖、判定覆盖、条件覆盖、路径覆盖
2021-11-12 10:59:06if A and B then Action1 if C or D then Action2 语句覆盖最弱,只需要让程序中的语句都执行一遍即可 。上例中只需设计测试用例使得A=true B=true C=true 即可。 分支覆盖又称判定覆盖:使得程序中...条件覆盖:要使得 -
判定覆盖条件覆盖软件测试.ppt
2021-07-23 12:29:43判定覆盖条件覆盖软件测试白盒方法 * 路径分析 基路径测试:基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。 循环测试是一种着重循环... -
(10万+浏览量)语句覆盖、条件覆盖(分支覆盖)、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖 的区别
2020-11-02 08:33:491语句覆盖 每个可执行语句都走一遍即可,即测试用例要覆盖所有的语句 2判定覆盖(分支覆盖) ...判定覆盖各条件覆盖交叉,针对于判定中的条件取值 5组合覆盖 判定-条件覆盖的加强版 6路径覆盖 ... -
修正条件判定覆盖
2021-07-12 17:33:24修正条件/判定覆盖 MC/DC--Modified Condition/Decision Coverage:锁定其他的条件不变,改变一项条件,必引起整个表达式变化. 【例】IF(A||B||C)THEN W=W/X 锁定AB的值不变(FF_) 改变C条件的值 {FFT,FFF} ... -
语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖
2019-01-07 11:00:05最近在复习软件测试的考试,每次...根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为:语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖 这里以一个题目引入: if (a>... -
白盒测试的几种覆盖方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖详解
2020-06-07 10:56:07四、判定条件覆盖(Decision/Condition Coverage) 判定条件覆盖,说白了就是我们设计的测试用例可以使得判断中每个条件所有的可能取值至少执行一次(条件覆盖),同时每个判断本身所有的结果也要至少执行一次...