软件测试白盒测试基本路径优秀PPT.ppt
基本路径测试 上面的例子是一个很简洁的程序函数,只有四条路径.但在实践中,一个不太困难的程序,其路径都是一个浩大的数字,要在测试中覆盖全部的路径是不现实的.为了解决这一难题,只得把覆盖的路径数压缩到确定限度内,例如,程序中的循环体只执行一次.下面介绍的基本路径测试就是这样一种测试方法,它在程序限制流图的基础上,通过分析限制流图的环形困难性,导出基本可执行路径集合,从而设计测试用例的方法.设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次.白盒测试的基本概念为了清晰描述这种白盒测试方法,须要为了清晰描述这种白盒测试方法,须要首先对有关白盒测试的几个基本概念进首先对有关白盒测试的几个基本概念进行说明:行说明:流图流图环形困难度环形困难度图矩阵图矩阵1、流图在程序设计时在程序设计时,为了更加突出限制流的结构为了更加突出限制流的结构,可对程可对程序流程图进行简化序流程图进行简化,简化后的图称为限制流图简化后的图称为限制流图.简化简化后所涉及的图形符号只有两种后所涉及的图形符号只有两种,即节点和限制流线即节点和限制流线.132512435abcdef节点节点标有编号的圆圈标有编号的圆圈 程序流程图中矩形框所表示的处理程序流程图中矩形框所表示的处理 菱形表示的两个甚至多个出口推断菱形表示的两个甚至多个出口推断 多条流线相交的汇合点多条流线相交的汇合点 边边由带箭头的弧或线表示由带箭头的弧或线表示与程序流程图中的流线一样与程序流程图中的流线一样,表明白限制的依表明白限制的依次次它代表程序中的限制流。它代表程序中的限制流。限制流线通常标出名字限制流线通常标出名字常见语句的限制流图顺序语句While语句do while语句If语句Case语句包含条件的节点被称为推断节点(也叫包含条件的节点被称为推断节点(也叫谓词节点),由推断节点发出的边必需谓词节点),由推断节点发出的边必需终止于某一个节点,由边和节点所限定终止于某一个节点,由边和节点所限定的范围被称为区域。的范围被称为区域。这里我们假定在流程图中用菱形框表示的这里我们假定在流程图中用菱形框表示的判定条件内没有复合条件,而一组依次处判定条件内没有复合条件,而一组依次处理框可以映射为一个单一的结点。理框可以映射为一个单一的结点。限制流图中的箭头(边)表示了限制流的限制流图中的箭头(边)表示了限制流的方向,类似于流程图中的流线,一条边必方向,类似于流程图中的流线,一条边必需终止于一个结点。需终止于一个结点。在选择或者是多分支结构中分支的汇聚处,在选择或者是多分支结构中分支的汇聚处,即使汇聚处没有执行语句也应当添加一个即使汇聚处没有执行语句也应当添加一个汇聚结点。汇聚结点。流程图 限制流图将程序流程图转化为限制流图三角形问题(流程图流图)假如判定中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则须要变更复合条件的推断为一系列只有单个条件的嵌套的推断。复合条件分解限制流图2、环形困难度(圈困难度)一种为程序逻辑困难度供应定量尺度的一种为程序逻辑困难度供应定量尺度的软件度量软件度量.亦可将该度量用于基本路径方法亦可将该度量用于基本路径方法,它可以它可以供应程序基本集的独立路径数量和确保供应程序基本集的独立路径数量和确保全部语句至少执行一次的测试数量上界全部语句至少执行一次的测试数量上界.独立路径指程序中至少引入一个新的处独立路径指程序中至少引入一个新的处理语句集合或一个新条件的程序通路理语句集合或一个新条件的程序通路,它它必需至少包含一条在本次定义路径之前必需至少包含一条在本次定义路径之前不曾用过的边不曾用过的边.环形困难度计算1.流图中区域的数量对应于环形困难度流图中区域的数量对应于环形困难度;2.给定流图给定流图G的环形困难度为的环形困难度为V(G),定义为定义为V(G)=E-N+2,E是流图中边的数量是流图中边的数量,N是是流图中节点的数量流图中节点的数量.3.给定流图给定流图G的环形困难度的环形困难度V(G),定义为定义为V(G)=P+1,P是流图是流图G中判定节点的数量中判定节点的数量.3、图矩阵图矩阵即流图的矩阵表示。其维数等于流图的节点图矩阵即流图的矩阵表示。其维数等于流图的节点数。每列和每行都对应于标识的节点,矩阵元素对应数。每列和每行都对应于标识的节点,矩阵元素对应于节点的边。于节点的边。节点12341a2b3c4d流图对应的矩阵图说明流图的节点一般用数字标识,边则可以流图的节点一般用数字标识,边则可以用字母标识。用字母标识。上例中,若矩阵记为上例中,若矩阵记为M,则,则M(4,1)“d”,表示边,表示边d连接节点连接节点4和节点和节点1。须要留意的是,边须要留意的是,边d的方向是节点的方向是节点4到到节点节点1习题依据左图给出的程序流程图,完成以下要求:(1)画出相应的限制流图。(2)计算环形困难度。(3)给出相应的图矩阵。(4)找出程序的独立路径集合。void sort(int irecordnum,int itype)1.2.int x=0;3.int y=0;4.while(irecordnum-0)5.6.if(itype=0)7.break;8.else 9.if(itype=1)10.x=x+10;11.else 12.y=y+20;13.14.基本路径测试方法1.画出限制流图画出限制流图2.任何过程设计都要被翻译成限制流图。任何过程设计都要被翻译成限制流图。以以C/C+语句中的限制语句为例。语句中的限制语句为例。3.画出程序的限制流图(用题中给出的画出程序的限制流图(用题中给出的语句编号表示)。图中的每一个圆称语句编号表示)。图中的每一个圆称作流图的节点,代表一条或多条语句。作流图的节点,代表一条或多条语句。流图中的箭头称做边或连接,代表限流图中的箭头称做边或连接,代表限制流。制流。画出其程序流程图及限制流图467810111314程序段的限制流图2、计算环形困难度环形困难度是一种为程序逻辑困难性供应定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保全部语句至少执行一次的测试数量的上界,独立路径必需包含一条在定义之前不曾用到的边。可以用以下三种方法计算环形困难度:环形困难度计算如下:1.流图中有流图中有4个区域;个区域;2.V(G)=E-N+2,V(G)=10(条边条边)-8(个节点个节点)+2=4;3.V(G)=P+1,V(G)=3(个判定节点个判定节点)14。4.因此,该函数的环形困难度是因此,该函数的环形困难度是4。更重要。更重要的是,的是,V(G)的值供应了组成基本集的独的值供应了组成基本集的独立路径的上界,并由此得出覆盖全部程立路径的上界,并由此得出覆盖全部程序语句所需的测试设计数量的上界。序语句所需的测试设计数量的上界。3、导出测试用例依据上面的计算方法,导出基本路径集,依据上面的计算方法,导出基本路径集,列出程序的独立路径。可得出程序段的列出程序的独立路径。可得出程序段的基本路径集中有基本路径集中有4条独立路径:条独立路径:路径路径1:414路径路径2:46714路径路径3:4691013414路径路径4:46912134144、设计测试用例输入数据输入数据预期输出预期输出Test1irecordnum=0itype=0 x=0y=0Test2irecordnum=1itype=0 x=0y=0Test3irecordnum=1itype=1x=10y=0Test4irecordnum=1itype=2x=0y=20留意:假如在程序中遇到复合条件,例如条件语句中的假如在程序中遇到复合条件,例如条件语句中的多个布尔运算符(逻辑多个布尔运算符(逻辑OR、AND)时,为每一个)时,为每一个条件创建一个独立的节点,包含条件的节点称为条件创建一个独立的节点,包含条件的节点称为判定节点,从每一个判定节点发出两条或多条边。判定节点,从每一个判定节点发出两条或多条边。例如:例如:if(a or b)xelse y.三角形问题流程图习题编写程序,输入一组字符(以编写程序,输入一组字符(以#结束),结束),对该组字符做一个统计,统计字母、数对该组字符做一个统计,统计字母、数字和其他字符的个数,输出统计结果。字和其他字符的个数,输出统计结果。1.main()2.3.char c;int i=0,j=0,k=0;4.c=getchar();5.while(c!=#)6.7.if(c=A&c=a&c=0&c=9)10.j+;11.else 12.k+;13.c=getchar();14.15.printf(i=%d,j=%d,k=%dn,i,j,k);16.ASC|代码与字符比照表!“#$%&()*+,.33343536373839404142434446/09:;?A4748575859606162636465Z-az|90919293949597122123124125126