第08课白盒测试路径分析测试(基本路径测试)ppt课件.ppt

上传人:小飞机 文档编号:2132733 上传时间:2023-01-15 格式:PPT 页数:63 大小:591KB
返回 下载 相关 举报
第08课白盒测试路径分析测试(基本路径测试)ppt课件.ppt_第1页
第1页 / 共63页
第08课白盒测试路径分析测试(基本路径测试)ppt课件.ppt_第2页
第2页 / 共63页
第08课白盒测试路径分析测试(基本路径测试)ppt课件.ppt_第3页
第3页 / 共63页
第08课白盒测试路径分析测试(基本路径测试)ppt课件.ppt_第4页
第4页 / 共63页
第08课白盒测试路径分析测试(基本路径测试)ppt课件.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《第08课白盒测试路径分析测试(基本路径测试)ppt课件.ppt》由会员分享,可在线阅读,更多相关《第08课白盒测试路径分析测试(基本路径测试)ppt课件.ppt(63页珍藏版)》请在三一办公上搜索。

1、把程序看成装在一个透明的白盒子里,程序的结构和处理呈现过程完全可见,按照程序的内部逻辑测试程序,以检查程序中的每条通路是否都能按照预先要求正确工作。,第3章 白盒测试方法,主要内容,逻辑覆盖测试,白盒测试的常用方法,基本路径测试,相关概念基本路径本质上是从程序入口到出口的一些通路。之所以称其为基本路径,原因在于可以通过对基本路径进行连接或者重复操作得到程序中的其它路径 控制流图基于代码结构构造的有向图,可用于描述程序的控制结构测试思想 根据程序的控制流图找出一个模块所需测试的基本路径,根据这些基本路径设计构造相应的测试用例,基本路径测试,设计步骤根据模块逻辑构造控制流图(Flow Graph)

2、计算控制流图的环复杂度(Cyclomatic Complexity)列出包含起始节点和终止节点的基本路径检查一下列出的基本路径数目是否超过控制流图的环复杂度 设计覆盖这些基本路径的测试用例,控制流图,说明控制流图是由节点和边组成的有向图节点代表了代码或程序流程图中矩形框中所表示的处理,菱形表示的判断处理以及判断处理流程相交的汇合点,在图中用标有编号的圆圈表示边表明了控制的顺序,在图中用有向箭头表示。,控制流图,三种逻辑结构的控制流图,顺序,条件,循环,控制流图,如果判定中的条件表达式是复合条件时,即条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的逻辑表达式,则需要改复

3、合条件的判定为一系列只有单个条件的嵌套的判定。例如对应图(a)的复合条件的判定,应该画成如图(b)所示的控制流图。条件语句 if a OR b 中条件a和条件b各有一个只有单个条件的判定结点。,环复杂度,含义 用V(G)表示用来衡量一个模块判定结构的复杂程度,在数量上表现为独立的路径条数,是需要测试的基本路径数目的上限。,环复杂度,计算公式V(G)=闭合区域的数目由节点和边围成的封闭区域这些封闭区域一定是不可再分的包括周边的区域V(G)=二值判定节点个数+1.V(G)=边的数目-节点的数目+2,环复杂度,环复杂度闭合区域的数目=5二值判定节点个数+1=4+1=5边的数目-节点的数目+2=16-

4、13+2=5,基本路径,实用的定义一条路径是基本路径如果:是一条从起始节点到终止节点的路径.至少包含一条其它基本路径没有包含的边.(至少引入一个新处理语句或一个新判断的程序通路.)注意:对于循环而言,基本路径应包含不执行循环和执行一次循环体。,基本路径,基本路径1-2-111-2-3-4-5-6-10-2-111-2-3-4-5-7-10-2-111-2-3-8-9-10-2-111-2-3-8-10-2-11,基本路径测试方法举例,基本路径测试用例的设计,void sort(int irecordnum,int itype)int x=0;int y=0;while(irecordnum-0

5、)if(itype=0)break;else if(itype=1)x=x+10;else y=y+20;,基本路径测试方法举例,1.依据程序内部逻辑画出相应的流图,R1,R2,R3,R4,基本路径测试方法举例,2.计算流图的环形复杂度(McCabe定义的程序复杂性度量值)计算环路复杂度的三种方法环路复杂度=边数-节点数+2=10-8+2=4环路复杂度=判断节点数+1=3+1=4环路复杂度=区域的数目=4可以计算上图所示流图的环形复杂度为4,基本路径测试方法举例,3.确定独立路径组成的基本路径集合程序的环形复杂度=程序中独立路径的数量路径1:414 路径2:46714路径3:469101341

6、4路径4:46912134144.设计出可强制执行基本集合中每条路径的测试用例,案例2三角形问题,使用基本路径设计测试用例方法推导三角形问题的测试用例,控制流图,81-86,87,88,92,99-100,93,102,95,96,97-98,89-90,94,环复杂度,环复杂度闭合区域的数目=5二值判定节点个数+1=4+1=5边的数目-节点的数目+2=15-12+2=5,基本路径和测试用例(1),基本路径和测试用例81-86-87-88-92-93-95-97-98-102相应的测试用例:测试输入=(68,68,56)预期结果=这是一个等腰三角形!81-86-87-88-92-93-95-9

7、6-102相应的测试用例:测试输入=(68,60,56)预期结果=这是一个不等边三角形!,基本路径和测试用例81-86-87-88-92-93-94-102相应的测试用例:测试输入=(68,68,68)预期结果=这是一个等边三角形!81-86-87-89-90-92-99-100-102相应的测试用例:测试输入=(68,8,60)预期结果=这不是一个三角形!,基本路径和测试用例(2),基本路径与环复杂度,81-86-87-88-92-99-100-10281-86-87-88-92-93-95-97-98-10281-86-87-88-92-93-95-96-10281-86-87-88-92

8、-93-94-10281-86-87-89-90-92-93-94-102,并不是所有的基本路径都对应程序的可执行通路,都可作为设计测试用例的依据。之所以存在这种情况,是因为控制流图中并不包含程序的处理信息,无法明确前后节点之间的逻辑关系。,基本路径与环复杂度,结论如果基本路径必须是可行的,则逻辑关系会压缩基本路径集合数量,因此环复杂度是包含起始点和终止点的基本路径数目的上限,案例分析3,已知程序代码,根据基本路径测试法,导出测试用例,根据基本路径测试法生成测试用例,确保基本路径集中每条路径的执行。以一个求平均值的过程averagy为例,说明测试用例的设计过程。用PDL语言描述的averagy

9、过程如下:,PROCEDURE averagy;*This procedure computes the averagy of 100 or fewer numbers that liebounding values;it also computes the total input and the total valid.INTERFACE RETURNS averagy,total.input,total.valid;INTERFACE ACCEPTS value,minimum,maximum;TYPE value1:100 IS SCALAR ARRAY;TYPE averagy,tot

10、al.input,total.valid,minimum,maximum,sum IS SCALAR;TYPE i IS INTEGER;,i=1;total.input=total.valid=0;sum=0;DO WHILE valuei-999 AND total.input=minimum AND valuei 0THEN averagy=sum/total.valid;ELSE averagy=-999;ENDIFEND averagy,(1)由过程描述导出控制流图 在上面给出的过程中,针对要映射为对应控制流图中一个结点的PDL语句或语句组,标记上用数字表示的标号。加了标号的PDL程

11、序如下(只有可执行语句部分):,对应的控制流图如图所示:,该图所有的6条路径是:path1:1-2-10-11-13path2:1-2-10-12-13path3:1-2-3-10-11-13path4:1-2-3-4-5-8-9-2-10-11-13path5:1-2-3-4-5-6-8-9-2-10-12-13path6:1-2-3-4-5-6-7-8-9-2-3-10-11-13 path4、path5、path6 后面的省略号()表示在控制结构中以后剩下的路径是可选择的。在很多情况下,标识判断结点,常常能够有效地帮助导出测试用例。在上例中,结点2、3、5、6和10都是判断结点。,满足上

12、例基本路径集的测试用例是:path1:输入数据:valuek有效输入,限于 ki(i定义如下)valuei999,当 2i100 预期结果:n个值的正确的平均值、正确的总计数。注意:不能孤立地进行测试,应当作为路径4、5、6测试的一部分来测试。path2:输入数据:value1999预期结果:平均值999,总计数取初始值。path3:输入数据:试图处理101个或更多的值,而前100个应当是有效的值。预期结果:与测试用例1相同。path4:输入数据:valuei有效输入,且 i100valuek最小值,当 ki 时预期结果:n个值的正确的平均值,正确的总计数,path5:输入数据:valuei有

13、效输入,且 i100valuek最大值,当 ki 时预期结果:n个值的正确的平均值,正确的总计数path6:输入数据:valuei有效输入,且 i100预期结果:n个值的正确的平均值,正确的总计数 每个测试用例执行之后,与预期结果进行比较。如果所有测试用例都执行完毕,则可以确信程序中所有的可执行语句至少被执行了一次。,白盒测试用例设计作业,使用逻辑覆盖和基本路径方法完成教材P88页第7题:(1)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径。(2)画出程序的控制流图。用基本路径测试方法设计测试用例。,白盒测试用例设计练习

14、,白盒测试用例设计练习,1.要满足语句覆盖,执行路径通过:12345即可。可设计测试用例:A=4 B=0 X=8(路径12345)2.要满足判定覆盖,两个判定表达式的取真和取假分支都要走到,执行路径通过:135 和 12345即可:1:A=4 B=0 X=8(路径12345 覆盖条件:TA TB)2:A=1 B=1 X=1(路径135 覆盖条件:TA TB),白盒测试用例设计练习,3.要满足条件覆盖,每个判定中的每个条件的可能取值都要取到,即:T1 T2 T3 T4 T1 T2 T3 T4。观察前面设计测试用例:1:A=4 B=0 X=8(路径12345 覆盖条件:T1 T2 T3 T4)2:

15、A=1 B=1 X=1(路径135 覆盖条件:T1 T2 T3 T4)上述测试用例覆盖了4个条件产生的8种情况。4.可见,这组测试用例同时覆盖了两个判定的取真分支和取假分支以及4个条件产生的8种情况,所以它们满足判定-条件覆盖的标准。,白盒测试用例设计练习,5.要满足条件组合覆盖,每个判定中各条件的每一种组合至少要出现一次,在两个判定中有8种可能的组合:A2,B=0:T1,T2 A2,B0:T1,T2 A2,B=0:T1,T2 A2,B0:T1,T2 A=4,X1:T3,T4 A=4,X1:T3,T4 A4,X1:T3,T4 A4,X1:T3,T4 设计测试用例:(沿用前面两个测试用例)1:A

16、=4 B=0 X=8(路径12345 覆盖条件:T1 T2 T3 T4)2:A=1 B=1 X=1(路径135 覆盖条件:T1 T2 T3 T4)3:A=4 B=1 X=1(路径1345 覆盖条件:T1 T2 T3 T4)4:A=0 B=0 X=4(路径1345 覆盖条件:T1 T2 T3 T4),白盒测试用例设计练习,6.要满足路径覆盖,每一条可能的路径至少执行一次,可能的路径包括:135;12345;1345;1235。观察条件组合覆盖的测试用例,可以保留前三个,再增加下面一个新的用例即可:1:A=1 B=1 X=1(路径135 覆盖条件:T1 T2 T3 T4)2:A=4 B=0 X=8

17、(路径12345 覆盖条件:T1 T2 T3 T4)3:A=4 B=1 X=1(路径1345 覆盖条件:T1 T2 T3 T4)4:A=3 B=0 X=0(路径1235 覆盖条件:T1 T2 T3 T4),白盒测试用例设计练习,白盒测试用例设计练习,基本路径数:流图的环形复杂度=5确定独立路径的基本集合。路径1:1 1-1 1-2 2 3-1 3-2 5 输入:A=3,B=0,X=3;预期输出:X=1路径2:1 1-1 3-1 3-2 5 输入:A=0,B=0(任意),X=1;预期输出:X=1路径3:1 1-1 1-2 3-1 3-2 5 输入:A=3,B=1,X=1;预期输出:X=1路径4:

18、1 1-1 1-2 2 3-1 4 5 输入:A=4,B=0,X=1;预期输出:X=1路径5:1 1-1 1-2 2 3-1 3-2 4 5 输入:A=3,B=0,X=6;预期输出:X=3设计执行基本路径集合中每条路径的测试用例。,基本路径测试,相关概念基本路径本质上是从程序入口到出口的一些通路。之所以称其为基本路径,原因在于可以通过对基本路径进行连接或者重复操作得到程序中的其它路径 控制流图基于代码结构构造的有向图,可用于描述程序的控制结构测试思想 根据程序的控制流图找出一个模块所需测试的基本路径,根据这些基本路径设计构造相应的测试用例,总结,基本路径测试思想:根据程序的控制流图找出一个模块

19、所需测试的基本路径,根据这些基本路径设计构造相应的测试用例基本路径测试设计步骤根据模块逻辑构造控制流图(Flow Graph)计算控制流图的环复杂度(Cyclomatic Complexity)列出包含起始节点和终止节点的基本路径设计覆盖这些基本路径的测试用例其中第1、3、4步是重难点。,综合运用白盒测试方法,综合运用白盒测试技术设计下面代码的测试用例,4-46,参考答案,设计步骤构造被测代码的控制流图,运用基本路径测试方法设计相关测试用例针对代码中的各个逻辑条件,运用分支-条件测试方法设计相关测试用例针对代码中的循环,运用循环测试方法设计相关测试用例合并前三步所得结果在第四步的基础上,根据被

20、测对象的特点增加相关测试用例,4-47,以简单条件为节点,4-48,环复杂度,环复杂度闭合区域的数目=6二值判定节点个数+1=5+1=6边的数目-节点的数目+2=17-13+2=6,1,2,3,4,5,6,7,8,9,10,11,12,13,4-49,基本路径,基本路径和相应的测试用例1-2-10-12-13(10-11?)测试用例:测试输入=(-999),0,360)预期结果=-9991-2-3-10-11-13测试用例测试输入=(0.100,-999),0,360),预期结果=49.5,4-50,基本路径,基本路径和相应的测试用例1-2-3-4-5-6-7-9-2-10-11-13测试用例

21、:测试输入=(180,-999),0,360),预期结果=1801-2-3-4-5-8-2-10-12-13测试用例:测试输入=(-10,-999),0,360),预期结果=-999,4-51,基本路径,基本路径和相应的测试用例1-2-3-4-5-6-8-2-10-12-13测试用例:测试输入=(380,-999),0,360),预期结果=-999,4-52,分支-条件测试,需测试的逻辑条件Do while(valuei!=-999)&(inputNumber=minimum)&(valuei 0,4-53,分支-条件测试,分支和相应的测试用例,相应的测试用例测试输入=(180,-999),0

22、,360),预期结果=180测试输入=(-999),0,360),预期结果=-999测试输入=(0.100,-999),0,360),预期结果=49.5,4-54,分支-条件测试,分支和相应的测试用例,相应的测试用例测试输入=(180,-999),0,360),预期结果=180测试输入=(-10,-999),0,360),预期结果=-999测试输入=(380,-999),0,360),预期结果=-999,4-55,分支-条件测试,分支和相应的测试用例,相应的测试用例测试输入=(180,-999),0,360),预期结果=180测试输入=(-999),0,360),预期结果=-999,4-56,

23、循环测试,需测试的循环条件Do while(valuei!=-999)&(inputNumber100)直接跳过循环体 测试用例:测试输入=(-999),0,360),预期结果=-999只执行一遍循环体 测试用例:测试输入=(180,-999),0,360),预期结果=180连续执行两遍循环体 测试用例:测试输入=(10,20,-999),0,360),预期结果=15,4-57,循环测试,需测试的循环条件Do while(valuei!=-999)&(inputNumber100)如果循环次数为n,执行m(m n)遍循环体 测试用例:测试输入=(0.49,-999),0,360),预期结果=2

24、4.5如果循环次数为n,那么执行n-1遍循环体 测试用例:测试输入=(0.98,-999),0,360),预期结果=49.0如果循环次数为n,那么执行n遍循环体 测试用例:测试输入=(0.99,-999),0,360),预期结果=49.5,4-58,循环测试,需测试的循环条件Do while(valuei!=-999)&(inputNumber100)测试用例:测试输入=(0.100,-999),0,360),预期结果=50,4-59,结果合并,合并的结果测试输入=(-999),0,360),预期结果=-999测试输入=(-10,-999),0,360),预期结果=-999测试输入=(180,

25、-999),0,360),预期结果=180测试输入=(380,-999),0,360),预期结果=-999测试输入=(0.100,-999),0,360),预期结果=49.5测试输入=(10,20,-999),0,360),预期结果=15测试输入=(0.49,-999),0,360),预期结果=24.5,4-60,结果合并,合并的结果测试输入=(0.98,-999),0,360),预期结果=49.0测试输入=(0.99,-999),0,360),预期结果=49.5测试输入=(0.100,-999),0,360),预期结果=50,4-61,补充测试用例,对于if语句仅使用分支-条件测试是否可以尽可能多地发现被测代码的缺陷呢可以等于边界点上的测试用例测试输入=(0,-999),0,360),预期结果=0测试输入=(360,-999),0,360),预期结果=360实际中,还可以采用走读的方法,4-62,补充测试用例,考虑到异常输出的出现频率,利用错误猜测再次增加测试输入=(a,-999),0,360),预期结果=“输入错误”测试输入=(10,-999),a,360),预期结果=“输入错误”测试输入=(10,-999),0,a),预期结果=“输入错误”,4-63,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号