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

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

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

博鳌云¥799/月,香港110Mbps(含10M CN2)大带宽独立服务器/E3/8G内存/240G/500G SSD或1T HDD

博鳌云是一家以海外互联网基础业务为主的高新技术企业,运营全球高品质数据中心业务。自2008年开始为用户提供服务,距今11年,在国人商家中来说非常老牌。致力于为中国用户提供域名注册(国外接口)、免费虚拟主机、香港虚拟主机、VPS云主机和香港、台湾、马来西亚等地服务器租用服务,各类网络应用解決方案等领域的专业网络数据服务。商家支持支付宝、微信、银行转账等付款方式。目前香港有一款特价独立服务器正在促销,...

速云:广州移动/深圳移动/广东联通/香港HKT等VDS,9折优惠,最低月付9元;深圳独立服务器1050元/首月起

速云怎么样?速云,国人商家,提供广州移动、深圳移动、广州茂名联通、香港hkt等VDS和独立服务器。现在暑期限时特惠,力度大。广州移动/深圳移动/广东联通/香港HKT等9折优惠,最低月付9元;暑期特惠,带宽、流量翻倍,深港mplc免费试用!点击进入:速云官方网站地址速云优惠码:全场9折优惠码:summer速云优惠活动:活动期间,所有地区所有配置可享受9折优惠,深圳/广州地区流量计费VDS可选择流量翻...

韩国服务器租用优惠点评大全

韩国服务器怎么样?韩国云服务器租用推荐?韩国服务器距离中国近,有天然的地域优势,韩国服务器速度快而且非常稳定!有不少有亚洲市场的外贸公司选择韩国服务器开拓业务,韩国服务器因自身的优势也受到不少用户的青睐。目前的IDC市场上,韩国、香港、美国三个地方的服务器几乎占据了海外服务器的百分之九十以上。韩国服务器相比美国服务器来说速度更快,而相比香港机房来说则带宽更充足,占用市场份额非常大。那么,韩国服务器...

语句覆盖为你推荐
tdeICMP工具程序ping和他racertde 功能和用法mac地址克隆路由器中的MAC地址克隆,是什么,干嘛用的chrome系统Chromenbsp;OS是操作系统吗?orphanremovalhibernate一对多,操作一的一方,如何删除多的一方的数据。模式识别算法研究生研究方向:数据挖掘、模式识别、启发算法这三者哪个有前途币众筹众筹是什么意思kjavaKJAVA业务信息费是什么东西啊,我怎么会被莫莫名其妙的扣掉11元啊人脸识别解锁iphone人脸识别解锁红牛下架红牛停产了吗?2019年还生产吗?web推送怎样关闭网页推送
成都虚拟空间 域名中介 日本vps 亚洲大于500m 仿牌空间 Dedicated java主机 isatap 天猫双十一秒杀 evssl证书 win8升级win10正式版 线路工具 四核服务器 空间登录首页 阿里dns hdchina 镇江高防服务器 cdn加速 globalsign 此网页包含的内容将不使用安全的https 更多