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

语句覆盖  时间: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 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。

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

Gigsgigscloud($9.8)联通用户优选日本软银VPS

gigsgigsCloud日本东京软银VPS的大带宽配置有100Mbps、150Mbps和200Mbps三种,三网都走软银直连,售价最低9.8美元/月、年付98美元。gigsgigscloud带宽较大延迟低,联通用户的好选择!Gigsgigscloud 日本软银(BBTEC, SoftBank)线路,在速度/延迟/价格方面,是目前联通用户海外VPS的最佳选择,与美国VPS想比,日本软银VPS延迟更...

Hostodo独立日提供四款特价年付VPS套餐 最低年付$13.99

前天,还有在"Hostodo商家提供两款大流量美国VPS主机 可选拉斯维加斯和迈阿密"文章中提到有提供两款流量较大的套餐,这里今天看到有发布四款庆祝独立日的七月份的活动,最低年付VPS主机13.99美元,如果有需要年付便宜VPS主机的可以选择商家。目前,Hostodo机房可选拉斯维加斯和迈阿密两个数据中心,且都是基于KVM虚拟+NVMe整列,年付送DirectAdmin授权,需要发工单申请。(如何...

RepriseHosting:$27.97/月-L5640,16G内存,1TB硬盘,10TB月流量,西雅图机房

RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...

语句覆盖为你推荐
水晶易表如何在win7环境和office2010环境下成功安装水晶易表水晶易表水晶狼牙套怎么使用 有什么特点y码男生衣服M L XL分别是什么码?oa办公系统下载OA在哪里下载?自定义表情qq自定义表情12种颜色12种颜色都是代表什么12种颜色12种颜色的英语怎么写,用中文怎么读star413匡威jack star 的后标是不是真的?如图网络电话永久免费打有没有永久免费打电话的网络电话啊?熊猫烧香病毒下载熊猫烧香病毒?
怎么申请域名 cn域名个人注册 息壤备案 香港服务器99idc vmsnap3 ftp教程 免费个人空间 香港新世界中心 阿里云官方网站 双线空间 杭州电信宽带优惠 asp空间 512内存 shuangcheng 空间排行榜 sonya winserver2008 美国十大啦 卡巴斯基免费版下载 卡巴斯基免费下载 更多