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

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

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

爱用云互联租用服务器租美国、日本、美国、日本、购买2天内不满意可以退换,IP可免费更换!

爱用云互联怎么样?爱用云是一家成立于2018年的老牌商家旗下的服务器销售品牌,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端...

HostKvm($4.25/月),俄罗斯CN2带宽大升级,俄罗斯/香港高防限量5折优惠进行中

HostKvm是一家成立于2013年的国外VPS服务商,产品基于KVM架构,数据中心包括日本、新加坡、韩国、美国、俄罗斯、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月,商家旗下俄罗斯、新加坡、美国、香港等节点带宽进行了大幅度升级,俄罗斯机房国内电信/联通直连,CN2线路,150Mbps(原来30Mbps)带宽起,目前俄罗斯和香港高防节点5折骨折码继续优惠中...

VPSDime7美元/月,美国达拉斯Windows VPS,2核4G/50GB SSD/2TB流量/Hyper-V虚拟化

VPSDime是2013年成立的国外VPS主机商,以大内存闻名业界,主营基于OpenVZ和KVM虚拟化的Linux套餐,大内存、10Gbps大带宽、大硬盘,有美国西雅图、达拉斯、新泽西、英国、荷兰机房可选。在上个月搞了一款达拉斯Linux系统VPS促销,详情查看:VPSDime夏季促销:美国达拉斯VPS/2G内存/2核/20gSSD/1T流量/$20/年,此次推出一款Windows VPS,依然是...

语句覆盖为你推荐
在线识别图片来源有什么软件可以读取本地图片来源信息吗?scheduleatfixedrate运用Executors.newScheduledThreadPool的任务调度怎么解决股价图怎样看股票图视频压缩算法视频压缩原理at89s52单片机AT89S52单片机和AT89C51单片机的区别视频技术视频监控技术的定义及特点扫图扫图要怎么修图seo优化技术什么是SEO优化,seo优化有什么用?awv请问awv是什么样的格式啊?模式识别算法模式识别的简史
com域名注册1元 qq空间域名 cn域名个人注册 budgetvm westhost Hello图床 好看的桌面背景大图 蜗牛魔方 jsp空间 adroit 美国在线代理服务器 中国网通测速 100mbps 免费网页空间 如何建立邮箱 联通网站 防cc攻击 万网注册 广州服务器托管 好看的空间 更多