第11,12课时路径分析测试_第1页
第11,12课时路径分析测试_第2页
第11,12课时路径分析测试_第3页
第11,12课时路径分析测试_第4页
第11,12课时路径分析测试_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件测试技术与实践软件测试技术与实践 路径分析测试 控制流图 圈复杂度 独立路径测试 Z路径覆盖测试上一节课我们学了什么呢控制流图控制流图(可简称流图)是对程序流程图进行简化后得到的,它可以更加突出的表示程序控制流的结构。控制流图中包括两种图形符号:节点和控制流线。 节点由带标号的圆圈表示,可代表一个或多个语句、一个处理框序列和一个条件判定框(假设不包含复合条件)。 控制流线由带箭头的弧或线表示,可称为边。它代表程序中的控制流。对于复合条件,则可将其分解为多个单个条件,并映射成控制流图。常见结构的控制流图其中,其中,包含条件的节点包含条件的节点被称为被称为判定节点判定节点(也叫谓词节点),(也

2、叫谓词节点),由判定节点发出的边由判定节点发出的边必须终止于某一个节点必须终止于某一个节点,由边和节点所,由边和节点所限定的范围被称为限定的范围被称为区域区域,当对区域计数时,图形外的区域也,当对区域计数时,图形外的区域也应记为一个区域。应记为一个区域。流程图转换为流图n如果判断中的条件表达式是由一个或多个逻辑运算符如果判断中的条件表达式是由一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达式,连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。(则需要改为一系列只有单条件的嵌套的判断。(A和和B叫做判断节点)叫做判断节点)例如: 1 if a or

3、b 2 x 3 else 4 y对应的逻辑为:流程图转换为流图n一个节点包含一个节点包含1个或多个连续的无分支语句个或多个连续的无分支语句n节点不允许节点不允许含有含有复合复合节点节点待测试程序用流图表示的待测试程序流程图转换为流图1762,38910114,5 76 231 8 4 511 910节点边区域区域:由边和解点封闭起来的区域计算区域:不要忘记区域外的部分待测试程序用流图表示的待测试程序环路复杂度 环路复杂度也叫圈复杂度,其值等于流程图中的区域个数,利用圈复杂度可以确定程序基本路径集合的独立路径数。 圈复杂度的计算公式有三个:1、圈复杂度=流图中的区域个数2、圈复杂度=流图边数-节

4、点数+23、圈复杂度=流图中谓词节点数+1独立路径独立路径:至少沿一条新的边移动的路径1762,38910114,5路径1:1-11路径2:1-2-3-4-5-10-1-11路径3:1-2-3-6-8-9-10-1-11路径4:1-2-3-6-7-9-10-1-11对以上路径的遍历,就是至少一次地执行了程序中的所有语句。基本路径测试方法(续)void Sort ( int iRecordNum, int iType )1 2 int x=0;3 int y=0;4 while ( iRecordNum- 0 )5 6 If ( iType=0 )7x=y+2;break;8 else9 If

5、( iType=1 )10 x=y+10;11 else12 x=y+20;13 14 基本路径测试方法(续)第一步:画出控制流图: 467810111314467148101113程序流程图 控制流图基本路径测试方法(续)第二步:计算环形复杂度:有以下三种方法计算环路复杂度:1、流图中区域的数量对应于环型的复杂性;2、给定流图G的环路复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;3、给定流图G的环路复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。 基本路径测试方法(续)第二步:计算环路复杂度计算如下:流图中有四个区域;V(G)=10

6、V(G)=10条边-8-8结点+2=4;+2=4;V(G)=3V(G)=3个判定结点+1=4+1=4。467910121314基本路径测试方法(续)467910121314第三步:导出测试用例根据上面的计算方法,可得出四个独立的路径根据上面的计算方法,可得出四个独立的路径。( (一一条独立路径是指,和其他的独立路径相比,至少条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。引入一个新处理语句或一个新判断的程序通路。V(G)V(G)值正好等于该程序的独立路径的条数。值正好等于该程序的独立路径的条数。) ) 路径路径1 1:4-144-14 路径路径2 2:4-6

7、-7-144-6-7-14 路径路径3 3:4-6-8-10-13-4-144-6-8-10-13-4-14 路径路径4 4:4-6-8-11-13-4-144-6-8-11-13-4-14根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。基本路径测试方法(续)n第四步:准备测试用例第四步:准备测试用例 为了确保基本路径集中的每一条路径的执为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是:上面例子基本路径集的测

8、试用例是:基本路径测试方法(续)路径1:4-14输入数据:iRecordNum0,或者取iRecordNum 0)5. 6. if(0= =iType)7. x=y+2; break;8. else9. if(1= =iType)10. x=y+10;11. else12. x=y+20;13. 14. 基本路径测试方法(续)案例:案例:下例程序流程图描述了最多输入下例程序流程图描述了最多输入5050个值(以个值(以1 1作为输入结束标志),计算其中有作为输入结束标志),计算其中有效的学生分数的个数、总分数和平均值。效的学生分数的个数、总分数和平均值。开始 i =1,n1=n2=0,sum=0

9、Score i -1 AND n20 AND scorei0average=sum/n1average= 1 返回FFFTTT12和345和6789101112开始 i =1,n1=n2=0,sum=0Score i -1 AND n20 AND scorei0average=sum/n1average= 1 返回FFFTTT12和345和6789101112123456789111012R1R2R3R4R5R6步骤1:导出过程的流图。步骤步骤2:2:确定环形复杂性度量确定环形复杂性度量V(G)V(G):1 1)V(G)= 6 V(G)= 6 (个区域)(个区域)2 2)V(G)=EV(G)=

10、EN+2=16N+2=1612+2=612+2=6其中其中E E为流图中的边数,为流图中的边数,N N为结点数;为结点数;3 3)V(G)=P+1=5+1=6V(G)=P+1=5+1=6 其中其中P P为谓词结点的个数。在流图中为谓词结点的个数。在流图中,结点,结点2 2、3 3、5 5、6 6、9 9是谓词结点。是谓词结点。123456789111012R1R2R3R4R5R6步骤3:确定基本路径集合(即独立路径集合)。于是可确定6条独立的路径:路径1:1-2-9-10-12路径2:1-2-9-11-12路径3:1-2-3-9-10-12路径4:1-2-3-4-5-8-2路径5:1-2-3-

11、4-5-6-8-2路径6:1-2-3-4-5-6-7-8-2123456789111012R1R2R3R4R5R6步骤4:为每一条独立路径各设计一组测试用例,以便强迫程序沿着该路径至少执行一次。1)路径1(1-2-9-10-12)的测试用例: scorek=有效分数值,当k i ; scorei=1, 2i50;期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。开始 i =1,n1=n2=0,sum=0Score i -1 AND n20 AND scorei0average=sum/n1average= 1 返回FFFTTT12和345和678910111

12、22)路径2(1-2-9-11-12)的测试用例: score 1 = 1 ; 期望的结果:average = 1 ,其他量保持初值。3)路径3(1-2-3-9-10-12)的测试用例: 输入多于50个有效分数,即试图处理51个分数,要求前51个为有效分数;期望结果:n1=50、且算出正确的总分和平均分。开始 i =1,n1=n2=0,sum=0Score i -1 AND n20 AND scorei0average=sum/n1average= 1 返回FFFTTT12和345和67891011124)路径4(1-2-3-4-5-8-2)的测试用例: scorei=有效分数,当i50; s

13、corek0, k i ;期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。5)路径5的测试用例: scorei=有效分数, 当i100, k i ;期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。开始 i =1,n1=n2=0,sum=0Score i -1 AND n20 AND scorei0average=sum/n1average= 1 返回FFFTTT12和345和67891011126)路径6(1-2-3-4-5-6-7-8-2)的测试用例: scorei=有效分数, 当i50;期望结果:根据输入的有效分数

14、算出正确的分数个数n1、总分sum和平均分average。开始 i =1,n1=n2=0,sum=0Score i -1 AND n20 AND scorei0average=sum/n1average= 1 返回FFFTTT12和345和6789101112习题1、使用基本路径测试方法,为以下程序段设计测试用例。 void Do (int X,int Y,int A,int B) While(X-0)&(Y-0)If(A-0|B-0) 输出A*B;/执行语句1else return; 2、在三角形问题中,要求输入三个边长:a,b,c。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形的周长。若是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论