ImageVerifierCode 换一换
格式:PPTX , 页数:62 ,大小:382.37KB ,
资源ID:12593880      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12593880.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(《软件质量保证》第章章基于控制流的测试充分性准则.pptx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

《软件质量保证》第章章基于控制流的测试充分性准则.pptx

1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,基于控制流的测试充分性准则,语句覆盖和块覆盖,最基本的覆盖性准则,可执行语句,任何过程式语言编写的程序,一系列语句,组成,声明性的语句:如C语言中的#dene、变量类,型声明(intc),可执行的语句:,特别的,intcount=10;,声明性:变量类型,可执行:赋值,所有声明性语句当做可执行语句处理!,语句覆盖,测试用例集T针对(P,R)的

2、语句覆盖率计算如,下:,|S,c,|,|S,e,|S,i,|,S,c,:所有被覆盖语句的集合,S,i,:所有不可达语句的集合(无效的语句),S,e,:软件所有语句的集合,如果T针对(P,R)的语句覆盖率是1,则称T相,对于语句覆盖准则是充分的。,基本块,具有相同的输入点和输出点的一组连续语,句,1begin,2intx,y;,3,4input(x,y);z=0;5,intz;,if(x0andy0),6,7,z=x*x;,if(y0)z=z+1;,8,9,10,11end,elsez=x*x*x;,output(z);,块覆盖,测试用例集T针对(P,R)的块覆盖率计算如下:,|B,c,|,|B

3、e,|B,i,|,B,c,:所有被覆盖的基本块的集合,E,i,:所有不可达块的集合(无效的基本块),E,e,:软件所有块的集合,如果T针对(P,R)的块覆盖率是1,则称T相对,于块覆盖准则是充分的。,示例,1begin,2intx,y;,3,4input(x,y);z=0;5,语句覆盖域:,S,e,=2,3,4,5,6,7,7b,9,10,intz;,7b:z=z+1,if(x0andy0),T=t:,t:,6,7,8,9,10,11end,z=x*x;,if(y0)z=z+1;,1,1,2,t,1,覆盖语句2,3,4,5,6,7,10,t,2,覆盖语句2,3,4,5,9,10,elsez=

4、x*x*x;,|S,e,|=9,|S,c,|=8,|S,i,|=1,语句覆盖率8/(9-1)=1,output(z);,示例,start,falseintx,y;intz;input(x,y);,1,z=0;if(x0andy=0),2,3:z=z+1,true,T,1,=t,1,:,t,2,:,3,t,1,覆盖块1,2,5,t,2,覆盖块1,2,4,5,z=z+1;,|B,e,|=5,|B,c,|=4,|B,i,|=1,语句覆盖率4/(5-1)=1,z=x*x*x;,4,output(z);,5,end,判定覆盖和条件覆盖,条件,任何计算结果为真或假的表达式,就是条件。,这个表达式也称作谓词

5、比如,布尔变量A,B,D,整数x,y,A,xy,AorB,(AorB)and(xy),C语言里,x、x+y、常量1和0、true、false都是条件,复合条件,简单条件,除了运算符外,不使用其他任何布尔运算符,由变量和至多一个关系运算符(,=,)构成,如A和xy),本节中,条件既包括简单条件,也包括复合条,件,判定,在程序中,任何一个条件都可在适当的上,下文环境下当作一个判定,if/while/switch,这些语句可作为判定的上下文,if和while只包含一个判定,switch可能包含多个判定,判定的输出,三种可能输出:,真,假,未定义,当条件为真或假时,判定选择其一的路径,执行;若在s

6、witch语句中,判定从多个备选,路径中择一;有时,条件的取值无法确定,,则判定的输出结果无法定义,未定义的判定,1boolfoo(inta_parameter),2while(true)/无限循环,3a_parameter=0;4,第6行的if语句中的,条件就是未定义的!,5/函数foo定义结束,6if(xyand,foo(y),)/函数foo不终止,7,compute(x,y);,耦合条件,复合条件包含多少简单条件?,如C=(AandB)or(CandA),3个:A,B,C,4个:第一个A,B,C,最后一个A,耦合条件:A的第一次和第二次出现,赋值语句中的条件,条件可以出现在赋值语句中,严

7、格意义上,条件只有被用于适当的上下文中,才能成为判定。如if语句,扩展之,判定也可以出现在赋值语句中,比如,A=xy,通常,判定指的是if/while/switch语句中,,但在改进的条件/判定覆盖(MC/DC)中,,这一概念被扩展了,判定覆盖,测试用例集T针对(P,R)的判定覆盖率计算如,下:,|D,c,|,|D,e,|D,i,|,D,c,:所有被覆盖的判定的集合,D,i,:所有无效判定的集合,D,e,:软件所有判定的集合,如果T针对(P,R)的判定覆盖率是1,则称T相,对于判定覆盖准则是充分的。,判定覆盖,又称:分支判定覆盖,就某个判定而言,如果控制流已经遍历判,定所有可能取值(即:判定的

8、所有输出结,果),则认为该判定被覆盖了。,if/while表达式:即软件执行覆盖了表达式为,true的情况,也处理了表达式为false的情况,switch:遍历判定的所有可能取值,示例,1begin,2,3,4,5,6,7,8,1begin,2,3,4,5,6,7,8,intx,z;,input(x);,if(x0),intx,z;,input(x);,if(x0),z=-x;,z=foo1(x);,z=-x;,z=foo1(x);,elsez=foo2(x);,output(z);,output(z);,end,end,T=t,1,:,针对语句覆盖准则和块覆,示例,盖准则,T是充分的,但T,

9、没有检测出错误,1begin,2,3,4,5,6,7,8,1begin,2,3,4,5,6,7,8,intx,z;,input(x);,if(x0),intx,z;,input(x);,if(x0),z=-x;,z=foo1(x);,z=-x;,z=foo1(x);,elsez=foo2(x);,output(z);,output(z);,end,end,T=t,1,:,D,c,=-5,D,e,=0,0,D,i,=0,判定覆盖率1/(2-0)=0.5,不充分!,示例,1begin,2,3,4,5,6,7,8,1begin,2,3,4,5,6,7,8,intx,z;,input(x);,if(x

10、0),intx,z;,input(x);,if(x0),z=-x;,z=foo1(x);,z=-x;,z=foo1(x);,elsez=foo2(x);,output(z);,output(z);,end,end,T=t1:,t2:,De=0,0,|Di|=0,强测试用例集,Dc=-5,3,判定覆盖率2/(2-0)=1增,1begin,2,3,4,5,6,7,8,1begin,2,3,4,5,6,7,8,intx,z;,input(x);,if(x0),intx,z;,input(x);,if(x0),z=-x;,z=foo1(x);,z=-x;,z=foo1(x);,elsez=foo2(x

11、);,output(z);,output(z);,end,end,判定覆盖,测试用例集T针对(P,R)的判定覆盖率计算如,下:,|D,c,|,|D,e,|D,i,|,D,c,:所有被覆盖的判定的集合,D,i,:所有无效判定的集合,D,e,:软件所有判定的集合,如果T针对(P,R)的语句覆盖率是1,则称T相对于判定判覆定盖域,覆:盖程序准所有则判是定组充成分,注的意switch是多个判定,条件覆盖,测试用例集T针对(P,R)的条件覆盖率计算如,下:,|C,c,|,|C,e,|C,i,|,C,c,:所有被覆盖的,简单条件,的集合,C,i,:所有无效,简单条件,的集合,C,e,:软件所有,简单条件,

12、的集合,如果T针对(P,R)的条件覆盖率是1,则称T相,对于条件覆盖准则是充分的。,条件被覆盖?,一个判定可由简单条件构成,也可由复合,条件构成,简单条件,若软件执行既覆盖了简单条件,为true的情况,也覆盖了简单条件为false的,情况,则称简单条件被覆盖了,复合条件:若复合条件中的每个简单条件,都被覆盖了,则认为复合条件被覆盖了,如:x0andy0,条件覆盖v.s.判定覆盖,判定覆盖:只考虑是否覆盖了所有的判定,,不管判定是简单条件或复合条件,(x0andy0)=true,(x0andy0)=false,判定覆盖,1if(x0andy0),2,z=foo(x,y),(x0)=true,(x

13、0)=false,(y0)=true,(y0)=false,条件覆盖,示例,T=t,1,:,t,2,:,T针对语句覆盖、块覆盖、判定,覆盖是充分的,t和t的运行结果正确,条件覆盖率?,1begin,2,3,4,5,6,7,8,9end,intx,y,z;,input(x,y);,if(x0andy0),1,2,C,e,=x0,y0,C,c,=y0,|C,i,|=0,条件覆盖率为1/(2-0)=0.5,z=foo1(x,y),else,z=foo2(x,y);,output(z);,有时,根据一个简单条件是被完全覆盖/部分,覆盖/未被覆盖,分别按照2/1/0来计算,从而,使用其他公式来计算条件覆

14、盖率,基于条件和判定的其他覆盖,(1)条件/判定覆盖,条件/判定覆盖,测试用例集T针对(P,R)的条件/判定覆盖率计,算如下:,|C,c,|D,c,|,(|C,e,|C,i,|)(|D,e,|D,i,|),C,c,/D,c,:所有被覆盖的,简单条件/判定,的集合,C,i,/D,i,:所有无效,简单条件/判定,的集合,C,e,/D,e,:软件所有,简单条件/判定,的集合,如果T针对(P,R)的条件/判定覆盖率是1,则,称T相对于条件/判定覆盖准则是充分的。,为什么提出条件/判定覆盖,条件覆盖和判定覆盖有“,一定,的互补作用”,满足条件覆盖未必满足判定覆盖,1begin,2,3,4,5,6,7,8

15、9end,intx,y,z;,input(x,y);,if(x0andy0),T=t:,t:,1,2,T针对条件覆盖是充分的,但,针对判定覆盖是不充分的,z=foo1(x,y),else,z=foo2(x,y);,output(z);,为什么提出条件/判定覆盖,条件覆盖和判定覆盖有“,一定,的互补作用”,满足判定覆盖未必满足条件覆盖,1begin,2,3,4,5,6,7,8,9end,intx,y,z;,input(x,y);,if(x0andy0),T=t,1,:,t,2,:,T针对判定覆盖是充分的,但针,对条件覆盖是不充分的,z=foo1(x,y),else,z=foo2(x,y);,o

16、utput(z);,条件/判定覆盖,为克服单独使用条件覆盖准则或判定覆盖,准则的不足,条件/判定覆盖被提出,1begin,2,3,4,5,6,7,8,9end,intx,y,z;,input(x,y);,if(x0andy0),T=t,1,:,t,2,:,T针对条件/判定覆盖是充分的,z=foo1(x,y),else,z=foo2(x,y);,output(z);,基于条件和判定的其他覆盖,(2)多重条件覆盖,多重条件覆盖,测试用例集T针对(P,R)的多重条件覆盖率计,算如下:,|C,c,|,|C,e,|C,i,|,C,c,:所有被覆盖的,简单条件真值组合,的集合,C,i,:所有无效,简单条件

17、真值组合,的集合,C,e,:软件所有,简单条件真值组合,的集合,如果T针对(P,R)的多重条件覆盖率是1,则称,T相对于多重条件覆盖准则是充分的。,多重条件覆盖,又称分支条件组合覆盖,为什么要提出多重条件覆盖?,条件覆盖准则的不足:每个简单条件的true和,false被覆盖并不意味着复合条件中相应简单条,件之间所有的真值组合都被覆盖了!,示例:复合条件D=(AC),AC,D,1,2,3,4,true,true,true,true,true,true,false,false,false,true,false,false,T=t,1,:,t,2,:,T针对条件覆盖(和判定覆盖)是充分的,但只覆盖了

18、两,个真值组合,示例:复合条件D=(AC),AC,D,1,2,3,4,true,true,true,true,true,true,false,false,false,true,false,false,T=t,1,:,t,2,:,t,3,:,t,4,:,T针对条件覆盖(和判定覆盖)是充分的,覆盖了所有,真值组合,使用多重条件覆盖准则增,强测试用例集,按要求编写程序,输入整数A,B,C,根据下,表的规定计算S,AC,S,1,2,3,4,true,true,true,f1(A,B,C),f2(A,B,C),f3(A,B,C),f4(A,B,C),false,false,false,true,fals

19、e,使用多重条件覆盖准则增,强测试用例集,AC,S,1,2,3,4,true,true,true,f1(A,B,C),f2(A,B,C),f3(A,B,C),f4(A,B,C),false,1begin,2,3,4,5,6,7,9end,intA,B,C,S=0;,input(A,B,C);,if(AC)S=f1(A,B,C);,if(ABandAC)S=f2(A,B,C);,if(ABandAC)S=f4(A,B,C);,output(z);,false,false,true,false,实现有错误,缺少一组真值组合!,使用多重条件覆盖准则增,强测试用例集,AC,S,1,2,3,4,true

20、true,true,f1(A,B,C),f2(A,B,C),f3(A,B,C),f4(A,B,C),false,1begin,2,3,4,5,6,7,9end,intA,B,C,S=0;,input(A,B,C);,if(AC)S=f1(A,B,C);,if(ABandAC)S=f2(A,B,C);,if(ABandAC)S=f4(A,B,C);,output(z);,false,false,true,false,T=t,1,:,t,2,:,T针对条件覆盖是充分,的,但判定覆盖不充分,(没覆盖第5行判定),使用多重条件覆盖准则增,强测试用例集,AC,S,1,2,3,4,true,true,t

21、rue,f1(A,B,C),f2(A,B,C),f3(A,B,C),f4(A,B,C),false,1begin,2,3,4,5,6,7,9end,intA,B,C,S=0;,input(A,B,C);,if(AC)S=f1(A,B,C);,if(ABandAC)S=f2(A,B,C);,if(ABandAC)S=f4(A,B,C);,output(z);,false,false,true,false,T=t,1,:,t:,t,3,:,2,T针对条件覆盖、判定,覆盖是充分的,但没有,发现程序错误!,使用多重条件覆盖准则增,强测试用例集,1begin,T=t,1,:,2,3,4,5,6,7out

22、put(z);9,end,intA,B,C,S=0;,input(A,B,C);,if(AC)S=f1(A,B,C);,if(ABandAC)S=f2(A,B,C);,if(ABandAC)S=f4(A,B,C);,t,2,:,t,3,:,虽然程序有3个判定,6个简单条件,,真正不同的真值组合只有4种!,AC,T,AB,AC,T,AB,AC,T,1,2,3,4,true,true,true,t1,t3,true,true,true,t3,t1,t2,true,true,true,t2,false,false,false,-,false,false,true,-,false,false,true

23、false,false,true,t3,t1,false,t2,false,-,false,使用多重条件覆盖准则增,强测试用例集,1begin,T=t,1,:,2,3,4,5,6,7output(z);9,end,intA,B,C,S=0;,input(A,B,C);,if(AC)S=f1(A,B,C);,if(ABandAC)S=f2(A,B,C);,if(ABandAC)S=f4(A,B,C);,t,2,:,t,3,:,t:,4,只分析1个判定,而不是3个判定即可得到,针对多重条件覆盖准则充分的测试用例集,AC,T,AB,AC,T,AB,AC,T,1,2,true,true,true,t

24、1,t3,true,true,true,t3,t1,true,true,true,t2,false,false,false,t4,3,false,true,t4,false,true,t2,false,true,t3,4,false,false,t2,false,false,t4,false,false,t1,基于条件和判定的其他覆盖,(3)改进的条件/判定覆盖,为什么需要改进的条件/判定覆盖?,多重条件覆盖要求复合条件中的所有简单,条件的真值组合都覆盖,当嵌入很多简单条件时,达到多重条件覆,盖的代价可能非常高,假设建立并执行一条测试用例需要1毫秒的时间,简单条件的数量n,测试用例数2,n,执

25、行所有测试用例所需的时间,1,4,8,16,32,2,16,256,65536,4294967296,2毫秒,16毫秒,256毫秒,65.5秒,49.5天,MC/DC覆盖,基于改进(modied)的条件(condion)/判定,(decision)覆盖(coverage),也称MC/DC,覆盖,准则包含两部分,MC部分,:,设计测试用例使得每个简单条件,独,立地,影响复合条件的输出结果,DC部分:判定覆盖,设C1,C2,CN是软件P中的条件,作为判定的组成部分,每,Dc:所有被覆盖的判定的集合,对于条件覆盖准则是充分的。,Dc=-5,3,t2:,T针对条件/判定覆盖是充分的,实现有错误,缺少一

26、组真值组合!,t1t2t3t4t5满足语句覆盖、块覆盖、,只分析1个判定,而不是3个判定即可得到,elsez=x*x*x;,Dc=-5,De=0,0,Di=0,R1:给定坐标x,y,z以及一个方向值d,程序必须,t3:,件Ci中简单条件的个数;,Ce:软件所有简单条件的集合,示例:复合条件C=(C,1,andC,2,)orC,3,MC充分:设计一个测试用例集,使得每个,简单条件都是独立影响C的输出结果,固定3个条件中的任两个,变化第三个,观察输出结果!,输入,输出结果,C1,C2,true,true,false,false,C3,true,false,true,false,C,true,tru

27、e,true,false,固定C1C2为true,true,变化C3,true,固定C1为true,C2,true,为false,变化C3,true,示例:C=(C,1,andC,2,)orC,3,的MC充分,测试用例集,MC充分:设计一个测试用例集,使得每个,简单条件都是独立影响C的输出结果,测试用例,输入,输出结果,对C有影,C1,C2,C3,C,响的输入,1,2,3,4,5,6,true,true,true,true,true,false,false,true,true,C3,false,false,false,false,false,false,true,true,C2,false,f

28、alse,true,true,true,C1,false,false,示例:C=(C,1,andC,2,)orC,3,的MC充分,测试用例集,MC充分:设计一个测试用例集,使得每个,简单条件都是独立影响C的输出结果,测试用例,输入,输出结果,对C有影,C1,C2,C3,C,响的输入,1,2,3,4,5,6,true,true,true,true,true,false,false,true,true,C3,false,false,false,false,false,false,true,true,C2,false,false,true,true,true,C1,false,false,4条测试用

29、例就可以满足MC/DC准则!,多重条件覆盖v.s.MC/DC覆盖,简单条件数量,最少测试用例数,执行所有测试用例所需时间,多重条件覆盖,2,16,256,65536,4294967296,MC/DC覆盖,2,5,9,17,33,多重条件覆盖,2毫秒,16毫秒,256毫秒,65.5秒,49.5天,MC/DC覆盖,2毫秒,5毫秒,9毫秒,17毫秒,33毫秒,1,4,8,16,32,任何复杂的复合条件的MC/DC充分测试用例集的测试,用例个数与简单条件的个数呈线性关系,MC/DC覆盖,满足需求R的软件P的测试用例集T针对MC/DC覆盖准,则是充分的,如果对P执行T中的测试用例,满足以,下要求:,P中

30、的每个基本块都被覆盖块覆盖,P中每个简单条件都取过真值true和false条件覆盖,P中每个判定都得出过所有可能的输出结果判定覆,盖,P中复合条件C中的每个简单条件对C的输出结果的影响,是独立的MC部分,MC/DC覆盖准则,是基于控制流的4个覆盖准则的混,合体,MC/DC覆盖,满足需求R的软件P的测试用例集T针对MC/DC覆盖准,则是充,条件,分,并,的,非,,,判,如,定,果,的,对,组,P,成,执,部,行,分,T中的测试用例,满,足以下要求,如:,:,A=(py),P中的每个基本块都被覆盖块覆盖,P中每个简单条件都取过真值true和false条件覆盖,P中每个判定都得出过所有可能的输出结果

31、判定覆,盖,P中复合条件C中的每个简单条件对C的输出结果的影响,是独立的MC部分,MC/DC覆盖准则,是基于控制流的4个覆盖准则的混,合体,MC/DC覆盖,满足需,耦,求,合,R,条,的,件,软,(,件,如,P,(A,的,an,测,d,试,B),用,or,例,(C,集,and,T针,A)),对MC/DC覆盖,准则是充,例,满足以下要求:,它的第二次值。在这种情况下,只,分,不,的,能,,,在保,如,持,果,A,对,第,P,一,执,次,行,值,T,不,中,变,的,时,测,,,试,改,用,变,P中的需每证个明基耦本合块条都件被任覆何盖一次块出覆现盖的独,P中每立个影简响单效条果件即都可取。过真值t

32、rue和false条件覆盖,P中每个判定都得出过所有可能的输出结果判定覆,盖,P中复合条件C中的每个简单条件对C的输出结果的影响,是独立的MC部分,MC/DC覆盖准则,是基于控制流的4个覆盖准则的混,合体,MC覆盖定义,设C,1,C,2,C,N,是软件P中的条件;n,i,表示条件C,i,中简单条件的,个数;e,i,表示独立影响C,i,输出结果的简单条件的个数;f,i,表,示C,i,中无效简单条件的个数(如果不能证明一个简单条件,对复合条件C,i,的输出结果有独立影响,则认为这个简单条,件是无效的),满足需求R的软件P的测试用例集T的MC覆盖率MC,C,N,e,i,MC,C,N,i1,(n,i,

33、f,i,),i1,MC覆盖定义,设C,1,C,2,C,N,是软件P中的条件,作为判定的组成部分,每,个条件既可以是简单条件,也可以是复合条件;n,i,表示条,件C,i,中简单条件的个数;e,i,表示独立影响C,i,输出结果的简单,条件的个数;f,i,表示C,i,中无效简单条件的个数(如果不能证,明如一果个测简试单用条例件集对T的复M合C条为件1,C,i,的则输称出T相结对果于有M独C立覆影盖响准,则则,认是为充这分个的简单条件是无效的),C,满足需求R的软件P的测试用例集T的MC覆盖率MC,C,N,e,i,MC,C,N,i1,(n,i,f,i,),i1,改进的MC/DC覆盖,如果测试用例集T针

34、对(P,R)在块覆盖、判定,覆盖、条件覆盖和MC覆盖下都是充分的,,则T针对MC/DC覆盖准则是充分的,块覆盖、判定覆盖、条件覆盖、MC覆盖,示例,需求:,R1:给定坐标x,y,z以及一个方向值d,程序必须,按照下列条件调用函数re1,re2,re3,R1.1:当(xy)and(prev=“East”)成,立时,调用re1,R1.2:当(xy)and(z*zy)and(prev=“South”)成,立时,调用re2,R1.3:当上述两条件都不成立,调用re3,R2:上面描述的调用过程必须反复执行,直到,输入的布尔变量为真,1begin,2,3,4,5,6,7,8,9,10,11,12,13,1

35、4,15,16,17,18,19,20,9end,oatx,y,z;,direcond;,stringprev,current;,booldone;,input(done);,current=“North”;,while(!done),/,条件,C1,input(d);,prev=current;current=f(d);/修改prev和current值,input(x,y,z);,if(xy)and(prev=“East”),/,条件,C2,re1(x,y);,elseif(xy)and(z*zy)and(current=“South”),/,条件,C3,re2(x,y);,else,re3

36、x,y);,input(done);,output(“Firingcompleted.”):,示例,需求:,R1:给定坐标x,y,z以及一个方向值d,程序必须,测试用例,按照下列,需求,条件调,done,用,d,函数re1,x,re2,r,y,e3,t1,t2,t3,t4,z,R1,R1.2,.1:当x,false,y)and(pr,10,e,15,v=“East”,3,)成,立(时,R1.1,,调用,false,re1,South,10,15,4,R1,R1.3,.2:当x,false,y)and(z,North,*zy)and(pr,10,e,15,v=“South”,5,)成,立(时,

37、R2,,调用,true,re2,-,-,-,-,R1.3:当上述两条件都不成立,调用re3,R2:上面描述的调用过程必须反复执行,直到,输入的布尔变量为真,测试用例,需求,done,d,x,y,z,t1,t2,t3,t4,1begin,32,4,5,6,7,8while(!done),/,条件,C1,9,10,11,12,13,14,15,16,17,18input(done);19,20,tR1.2x,y,z;,false,false,East,South,North,-,10,10,10,-,15,15,15,3,4,5,-,diroaecR1.1ond;,stringR1.3prev,c

38、urrenfalset;,boouldone;R2,inpt(done);,current=“North”;,true,-,input(d);,prev=current;current=f(d);/修改prev和current值,input(x,y,z);,if(xy)and(prev=“East”),/,条件,C2,re1(x,y);,elseif(xy)and(z*zy)and(current=“South”),/,条件,C3,re2(x,y);,else,re3(x,y);,t1t2t3t4满足语句覆盖、块覆盖、,判定覆盖,但不满足条件覆盖(xy),output(“Firingcompl

39、eted.”):,21end,测试用例,需求,done,d,x,y,z,t1,t2,t3,t4,t5,1begin,23,4,5,67R1cinp.1urre和t(donR1.2nt=“Ne);orth”;false,8,9input(d);,10,11,12,13,14,15,16else17,18,19,20,tR1.2x,y,z;,false,false,East,South,North,-,South,10,10,10,-,10,15,15,15,-,5,3,4,5,-,5,diroaecR1.1ond;,strinR1.3gprev,currenfalset;,boouldone;R

40、2,true,while(!done),/,条件,C1,prev=current;current=f(d);/修改prev和current值,input(x,y,z);,if(xy)and(prev=“East”),/,条件,C2,re1(x,y);,elseif(xy)and(z*zy)and(current=“South”),/,条件,C3,re2(x,y);,re3(x,y);,input(done);,t1t2t3t4t5满足语句覆盖、块覆盖、,判定覆盖、条件覆盖,执行顺序:t1-t2-t3-t5-t4,MC/DC覆盖准则呢?,output(“Firingcompleted.”):,2

41、1end,测试用例,需求,done,d,x,y,z,t1,t2,t3,t4,t5,1begin,32,4,5,67R1inpc.1urre和t(donR1.2nt=“Ne);orth”;false,tR1.2x,y,z;,false,false,East,South,North,-,South,10,10,10,-,10,15,15,15,-,5,3,4,5,-,5,diroaecR1.1ond;,strinR1.3gprev,currenfalset;,boouldone;R2,true,C2=(xy)and(pre,e),/,条件,C1,v=“East”),测试用例10prexynt=f(

42、d);/p修改rev=“East”prev和currenC2t值,t111,t2,1312,t3,14,t515,t41617,9,input(d);,inputtrue(x,y,z);,if(re1(xx,true,y)and,y);(z*,true,else,true,if(xy)and(falseprev=“falseEast”),/,条件,false,C2,true,true,re2(xfalse,y);,true,-,false,-,false,-,elsre3(xe-,y);,1819,20,21end,input(done);,(prev=“East”)对于C2的结果影响是独立的,但xy呢?,output(“Firingcompleted.”):,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服