语句覆盖逻辑覆盖测试方法 逻辑覆盖方法有哪些

语句覆盖  时间:2021-06-13  阅读:()

判定覆盖的概念

使设计的测试用例保证程序中每个判断的每个取值分支(t or f)至少经历一次 【优点】 判定覆盖具有比语句覆盖更强的测试能力,而且具有和语句覆盖一样的简单性,无需细分每个判定就可以得到测试用例。

【缺点】 往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。

什么叫逻辑覆盖,常用的逻辑覆盖方法有哪些,其区别是什么?(任取其三种来说明即可)

逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。

它属白盒测试。

语句覆盖 编辑本段 语句覆盖 SC(Statement Coverage),就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。

这里的“若干个”,意味着使用测试用例越少越好。

语句覆盖率的公式可以表示如下: 语句覆盖率=被评价到的语句数量/可执行的语句总数 x 100% 缺点:对程序执行逻辑的覆盖很低。











详细请参照原文: /ess/detail/52386.htm

逻辑覆盖的术语详解与举例

语句覆盖 SC(Statement Coverage),就是设计若干个测试用例,运行被测程序,使得程序中每一可执行语句至少执行一次。

这里的“若干个”,意味着使用测试用例越少越好。

语句覆盖在测试中主要发现缺陷或错误语句。

例如上边的Coverage类代码,从path a到path c再到path e的路径就是所有可执行的语句路径,所以选择path ace路径设计测试用例即可覆盖所有可执行语句。

语句覆盖率的公式:语句覆盖率=被评价到的语句数量/可执行的语句总数 x 100% 语句覆盖的缺点:对程序执行逻辑的覆盖很低。

判定覆盖DC(Decision coverage),有时也称分支覆盖,就是指设计若干测试用例,运行被测程序,使得每个判定的取真分支和取假分支至少评价一次。

例如上边的Coverage类代码,path ace,path abd,path abe,path acd 四条路径均是符合判定覆盖要求的路径。

判定覆盖的公式: 判定覆盖率=被评价到的判定分支个数/判定分支的总数X100% 判定路径覆盖率(DDP)=被评价到的判定路径数量/判定路径的总数X100% 判定覆盖的缺点:判定覆盖虽然把程序所有分支均覆盖到了,但其主要对整个表达式最终取值进行度量,忽略了表达式内部取值。

例如上边的Coverage类代码的第8行“if(A==2 or X>1)”, 当A==2或者X>1时都会执行第9行代码,判定覆盖只考虑整个“(A==2 or X>1)”表达式的取值,并没有考虑到表达式内部变量的取值(应该将A==2和X>1的情况均考虑)。

条件覆盖CC(Condition Coverage),设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。

条件覆盖率的公式:条件覆盖率=被评价到的条件取值的数量/条件取值的总数X100% 条件覆盖的缺点:只考虑到每个判定语句中的每个表达式,没有考虑到各个条件分支(或者涉及不到全部分支),即不能够满足判定覆盖 例如上边的Coverage类代码,判定语句有两个,分别是第3行和第8行代码。

根据条件覆盖的定义,则应考虑“(A>1 and B==0)”和“(A==2 or X>1)”两个表达式中的变量取值。

判定条件覆盖CDC(Condition/ Decision Coverage),设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次。

判定条件覆盖率的公式: 条件判定覆盖率=被评价到的条件取值和判定分支的数量/(条件取值总数+判定分支总数) 例如上边的Coverage类代码,不仅考虑到path ace,path abd,path abe,path acd 四条分支路径(判定覆盖),也考虑到了“(A>1 and B==0)”和“(A==2 or X>1)”两个条件中的每个表达式的取值(条件覆盖)。

判定条件覆盖的缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误。

补充:修正判定条件覆盖 修正判定条件覆盖单元的入口与出口必须至少被调用一次,程序中判断的每一个分支必须至少被执行一次。

对于程序中通过逻辑运算(AND,OR等)组成判断的基本布尔条件,每个条件必须取遍所有可能的值且每一个条件对判断的结果具有独立的作用。

条件组合覆盖,也称多条件覆盖MCC (Multiple Condition Coverage),设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。

这种方法包含了“分支覆盖”和“条件覆盖”的各种要求。

满足条件组合覆盖一定满足判定覆盖、条件覆盖、判定条件覆盖。

例如上边的Coverage类中第8行“if(A==2 or X>1)”代码,所有可能的条件组合为: “A==2,X>1”、“A==2,X<=1”和“A!=2,X>1”三种。

在条件覆盖中仅需考虑到这三种的一种即可,而在条件组合覆盖中需要都考虑到。

条件组合覆盖率的公式:条件组合覆盖率=被评价到的条件取值组合的数量/条件取值组合的总数 条件组合覆盖的缺点:判定语句较多时,条件组合值比较多。

路径覆盖,设计足够多的测试用例,执行程序所有可能的路径。

路径覆盖率的公式:路径覆盖率=被执行到的路径数/程序中总的路径数。

优点:路径覆盖是覆盖率最高的一种覆盖技术。

路径覆盖测试步骤: 1. 将程序流程图转换成控制流图; 2. 经过语法分析求的路径表达式; 3. 生成路径图; 4. 进行路径编码; 5. 经过译码得到执行的路径; 6. 通过路径枚举产生特定路径测试用例。

7. 修正的条件判断覆盖率(MC/DC) 每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;程序的判定被分解为通过逻辑操作符(and,or)连接的bool条件,每个条件对于判定的结果值是独立的。

对于多分支的判定,什么覆盖要使每一个

程序1如下:   Function js(float A,float B,float X)   {   if(A>1&&B=0)X=X/A;   if(A=2||X>1)X=X+1;   }   程序2如下:   Void DoWork(int x,int y,int z)   {   int k=0,j=0;   if((x>3)&&(z<10))   {   k=x*y-1; ‘语句块1   j=sqrt(k);   }   if((x==4)||(y>5))   {j=x*y+10;} ‘语句块2   j=j%3; ‘语句块3   }   A、语句覆盖:语句覆盖使程序中每个语句至少都能够被执行一次。

  例如,在程序1中,为使程序中每个语句至少执行一次,只需设计一个能通过路径a-c-e的数据就可以了,例如选择输入数据为:A=2,B=0,X=3就可以达到“语句覆盖”标准。

  在程序2中,如测试用例输入为:x=4,y=5,z=5程序执行的路径是a-b-d。

  B、判定覆盖   比语句覆盖稍强的覆盖标准是判定覆盖。

按判定覆盖准则进行测试是指,设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。

判定覆盖又称为分支覆盖。

  C、条件覆盖   再设计程序中,一个判定语句是由多个条件组合而成的复合判定。

  条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。

  D、条件判定组合覆盖   条件判定组合覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。

  E、多条件覆盖   多条件覆盖也成为条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。

显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。

  级别太低,流程图插不上,汗....

逻辑覆盖测试方法 逻辑覆盖方法有哪些

1.语句覆盖。

这个是起码要做到的覆盖了,程序里的每条可执行的语句都要至少执行一次。

这个设计起来比较简单,用例数据很直观的就能看出来。

但是语句里的判定,分支等就没什么意义了。

可以说这样的测试是最低的要求了。

2.判定覆盖。

每个判断的真假分支至少执行一次,就是真要至少取一次,假要至少取一次。

这个设计起来也不难,覆盖率要比语句覆盖高近乎一倍,但是也在判定语句中也会遗漏许多路径,因为每个条件的取值是不在考虑范围内的。

3.条件覆盖。

和判定覆盖思路一样,只是把重点从判定移动到条件上来了,每个判定中的每个条件可能至少满足一次,也就是每个条件至少要取一次真的,再取一次假的。

同样它也会遗漏许多路径,条件取真假并不能满足判定也取到真假两次。

4.判定条件覆盖。

既然上面的判定和条件多是片面的,那么这个两个覆盖相结合是呼之欲出判定条件覆盖。

它要求判断中的每个条件所有可能至少出现一次,并且每个判定本身的判定结果也要出现一次。

不要以为这样就行了,要看看条件,条件和判定不一样,判定取真假就覆盖了判定,可是条件取真假两次完全不能满足条件的各种组合。

所以才有了5~。

5.条件组合覆盖。

每个判定中条件的各种可能组合至少满足一次。

条件各种可能都出现了,必然把判定给覆盖了,它覆盖了上面的4个哦,可是用例数量大大增加了!看项目情况定吧。

6.路径覆盖。

概念比较好理解,把所有可能路径至少都走一遍,但是用例数量可想而知le 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。

其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

Dynadot COM特价新注册48元

想必我们有一些朋友应该陆续收到国内和国外的域名注册商关于域名即将涨价的信息。大概的意思是说从9月1日开始,.COM域名会涨价一点点,大约需要单个9.99美元左右一个。其实对于大部分用户来说也没多大的影响,毕竟如今什么都涨价,域名涨一点点也不要紧。如果是域名较多的话,确实增加续费成本和注册成本。今天整理看到Dynadot有发布新的八月份域名优惠活动,.COM首年注册依然是仅需48元,本次优惠活动截止...

UCloud:全球大促降价,云服务器全网最低价,1核1G快杰云服务器47元/年

ucloud:全球大促活动降价了!这次云服务器全网最低价,也算是让利用户了,UCloud商家调低了之前的促销活动价格,并且新增了1核1G内存配置快杰型云服务器,价格是47元/年(也可选2元首月),这是全网同配置最便宜的云服务器了!UCloud全球大促活动促销机型有快杰型云服务器和通用型云服务器,促销机房国内海外都有,覆盖全球20个城市,具体有北京、上海、广州、香港、 台北、日本东京、越南胡志明市、...

数脉科技:香港服务器低至350元/月;阿里云CN2+BGP线路,带宽10M30M50M100M

数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。数脉香港特价阿里云10MbpsCN2,e3-1230v2,16G内存,1T HDD 或 240G SSD,10Mbps带宽,IPv41个,...

语句覆盖为你推荐
草莓派如何最简单的制作出好吃的草莓派?应用雷达雷达有什么用途视频技术视频编辑是干什么的,主要是做一些什么工作呢?这个职位好不好?发展前景怎么样?小四号字word里的小四号字在Photoshop里是指多少点字体?awvawv格式是否等于MP4格式awvAWV的转换器 要免费的 看好是AWV不是AMVassemblyinfoCSE和CS有什么区别谷歌图片识别怎么通过一张GIF图在网上搜索出其出处(你们懂的...)以图搜图那个百度只找到了一模一样的..,有文本框透明html怎么把这个文本框变为透明?bt代理有人推荐我成为btbank代理人,这个没有什么风险?
域名网 openv 好玩的桌面 服务器cpu性能排行 网页背景图片 台湾谷歌网址 灵动鬼影 drupal安装 优酷黄金会员账号共享 万网主机管理 路由跟踪 cxz 监控服务器 测速电信 可外链的相册 带宽测试 阿里云邮箱怎么注册 七十九刀 privatetracker 腾讯云平台 更多