




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二、控制流/覆盖测试(Control-flow/CoverageTesting)语句覆盖(StatementCoverage)语句覆盖是一种衡量测试所覆盖的程序语句百分比的措施。通过测试应该达到100%程序语句覆盖的目标。,语句覆盖,语句覆盖”是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。,PROCEDUREExample(A,B:real;X:real);BeginIF(A1)AND(B=0)THENX:=X/A;IF(A=2)OR(X1)THENX:=X+1END;,PROCEDUREExample(A,B:real;X:real);BeginIF(A1)AND(B=0)THENX:=X/A;IF(A=2)OR(X1)THENX:=X+1END;,I.A=2,B=0,X=4-sacbed,e,F,(A1)and(B=0),(A=2)or(X1),X=X/A,X=X+1,2,s,d,1,a,F,4,c,T,b,5,T,6,3,7,为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:A=2,B=0,X=4就可达到“语句覆盖”标准,语句覆盖,从上例可看出,语句覆盖实际上是很弱的,如果第一个条件语句中的AND错误地编写成OR,上面的测试用例是不能发现这个错误的;又如第三个条件语句中X1误写成X0,这个测试用例也不能暴露它,此外,沿着路径abd执行时,X的值应该保持不变,如果这一方面有错误,上述测试数据也不能发现它们。,e,F,(A1)and(B=0),(A=2)or(X1),X=X/A,X=X+1,2,s,d,1,a,F,4,c,T,b,5,T,6,3,7,课堂练习:按语句覆盖的标准设计测试用例voidDoWork(intx,inty,intz)intk=0,j=0;if(x3)/语句块3,voidDoWork(intx,inty,intz)intk=0,j=0;if(x3)/语句块3,为了测试语句覆盖率只要设计一个测试用例就可以把三个执行语句块中的语句覆盖了。测试用例输入为:x=4、y=5、z=5程序执行的路径是:abd,语句覆盖,该测试用例虽然覆盖了可执行语句,但并不能检查判断逻辑是否有问题,例如在第一个判断中把X:real);BeginIF(A1)AND(B=0)THENX:=X/A;IF(A=2)OR(X1)THENX:=X+1END;,X=X/A,I:A=3,B=0,X=1:sacbd,II:A=2,B=1,X=3:sabed,(A1)and(B=0),(A=2)or(X1),X=X+1,2,s,d,1,a,F,4,c,T,b,5,T,e,F,3,7,满足判定覆盖,(A1)and(B=0)为一个判定A1为一个条件,每个语句至少执行一次!每个判定的每种可能都至少执行一次!即每个判定的真假分支都至少执行一次!,6,课堂练习:按判定覆盖的标准设计测试用例voidDoWork(intx,inty,intz)intk=0,j=0;if(x3)/语句块3,设计两个测试用例则可以满足判定覆盖的要求。测试用例的输入为:x=4、y=5、z=5x=2、y=4、z=5上面的两个测试用例虽然能够满足判定覆盖的要求,但是也不能对判断条件进行检查,例如把第二个条件y5错误的写成y1)AND(B=0)THENX:=X/A;IF(A=2)OR(X1)THENX:=X+1;END.例1的程序有四个条件:A1、B=0、A=2、X1为了达到“条件覆盖”标准,需要执行足够的测试用例使得在a点有:A1、A1、B=0、B0等各种结果出现,以及在b点有:A=2、A2、X1、X1等各种结果出现。,PROCEDUREM(VARA,B,X:REAL);BEGINIF(A1)AND(B=0)THENX:=X/A;IF(A=2)OR(X1)THENX:=X+1;END.现在只需设计以下两个测试用例就可满足这一标准:A=2,B=0,X=4(沿路径ace执行);A=1,B=1,X=1(沿路径abd执行)。,每个语句至少执行一次,而且判定表达式中的每个条件都要取得各种可能的结果。,第一判定表达式:设条件A1取真记为T1假F1条件B=0取真记为T2假F2第二判定表达式:设条件A=2取真记为T3假F3条件X1取真记为T4假F4,条件覆盖要求这8种值都要取到,e,F,(A1),(A1),(B=0),(B0),(A=2),(A2),(X1),(X1),:A=1,B=1,X=2:sabed,:A=2,B=0,X=1:sacbed,不满足判定覆盖,F,(A1),(A1),(B=0),(B0),(A=2),(A2),(X1),(X1),:A=1,B=1,X=1:sabd,:A=2,B=0,X=4:sacbed,同时满足判定覆盖,e,F,课堂练习:按条件覆盖的标准设计测试用例voidDoWork(intx,inty,intz)intk=0,j=0;if(x3)/语句块3,对例2中的所有条件取值加以标记。对于第一个判断:条件x3取真值为T1,取假值为-T1条件z5取真值为T4,取假值为-T4,则可以设计测试用例如下,上面的测试用例不但覆盖了所有分支的真假两个分支,而且覆盖了判断中的所有条件的可能值。,条件覆盖,“条件覆盖”通常比“判定覆盖”强,因为它使一个判定中的每一个条件都取到了两个不同的结果,而判定覆盖则不保证这一点。“条件覆盖”并不包含“判定覆盖”,如对语句IF(AANDB)THENS设计测试用例使其满足条件覆盖,即使A为真并使B为假,以及使A为假而且B为真,但是它们都未能使语句S得以执行。,条件覆盖,如设计了下面的测试用例,则虽然满足了条件覆盖,但只覆盖了第一个条件的取假分支和第二个条件的取真分支,不满足判定覆盖的要求。,条件覆盖,实际应用中需考虑的情况,执行看得到的语句A5,语句覆盖,【优点】:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。【缺点】:由于这种测试方法仅仅针对程序逻辑中显示存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖。,判定覆盖,A5,No,Yes,每个判定真假各一次A5yesA5&b5&b=0noa5&b5和a=0有两种共有2*2=4种a5&b5&b=0a=0,【优点】:条件组合覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。【缺点】:线性地增加了测试用例的数量。,路径覆盖,d5,c0,Yes,No,A,B,E,F,走完所有路径A-B-CA-B-DA-E-FA-E-G,b0,Yes,No,D,C,G,【优点】:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。【缺点】:需要设计大量、复杂的测试用例,使得工作量呈指数级增长,不见得把所有的条件组合都覆盖。,两个测试覆盖准则,准则1对于ArelB(rel表示关系,可以是,和)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,AB,AB和AB的情况分别出现一次。,准则1是为了检测rel的错误,两个测试覆盖准则,准则2对于Arel1C(rel1可以是或,A是变量,C是常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 评估委托合同范本与诉讼(仲裁)业务委托代理合同3篇
- 人工智能教育企业股东股权转让与教育资源共享合同
- 旅游景区租赁合同提前终止及游客权益保障协议
- 离婚协议执行中子女抚养权变更及监护权转移操作手册
- 儿童游乐场接送合同范本含司机及儿童安全措施
- 离婚房产变更协议书:分割细则与权益调整指南
- 离异父母子女抚养责任及财产分割合同模板
- 煤炭公司股权并购与资产重组整合协议
- 高效离婚财产分割协议书模板
- 泳池借用合同5篇
- 药物多靶点联合治疗-洞察及研究
- 海洋旅游特色项目案例集
- 2025年口腔诊所感染管理培训计划
- 高校专利申请质量分析:以提升转化运用为目标
- 锁骨下动脉狭窄患者护理
- 低压电工复审课件
- 舌癌护理查房
- 2025年南京市事业单位教师招聘化学学科专业知识试题汇编
- 头皮健康管理课件
- 井下巷道维修管理制度
- 2025-2030中国共享充电宝行业需求趋势与竞争格局分析报告
评论
0/150
提交评论