单元测试基本路径覆盖法

单元测试基本路径覆盖法
的测试⽅法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。
  其中运⽤最为⼴泛的是基本路径测试法。
  基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执⾏路径集合,从⽽设计测试⽤例的⽅法。
  设计出的测试⽤例要保证在测试中程序的语句覆盖100%,条件覆盖100%。
  在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执⾏路径集合,从⽽设计测试⽤例。包括以下4个步骤和⼀个⼯具⽅法:
  1.程序的控制流图:描述程序控制流的⼀种图⽰⽅法。
  2.程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独⽴路径条数,这是确定程序中每个可执⾏语句⾄少执⾏⼀次所必须的测试⽤例数⽬的上界。
  3.导出测试⽤例:根据圈复杂度和程序结构设计⽤例数据输⼊和预期结果。
抗菌防臭袜
  4.准备测试⽤例:确保基本路径集中的每⼀条路径的执⾏。
  ⼯具⽅法:
  图形矩阵:是在基本路径测试中起辅助作⽤的软件⼯具,利⽤它可以实现⾃动地确定⼀个基本路径集。
  程序的控制流图:描述程序控制流的⼀种图⽰⽅法。
  圆圈称为控制流图的⼀个结点,表⽰⼀个或多个⽆分⽀的语句或源程序语句
流图只有⼆种图形符号:正弦波滤波器
  图中的每⼀个圆称为流图的结点,代表⼀条或多条语句。
  流图中的箭头称为边或连接,代表控制流
  任何过程设计都要被翻译成控制流图。
  如何根据程序流程图画出控制流程图?
  在将程序流程图简化成控制流图时,应注意:
  1)在选择或多分⽀结构中,分⽀的汇聚处应有⼀个汇聚结点。
  2)边和结点圈定的范围叫做区域,当对区域计数时,图形外的区域也应记为⼀个区域。
如下图所⽰
3)如果判断中的条件表达式是由⼀个或多个逻辑运算符 (OR, AND, NAND, NOR)连接的复合条件表达式,则需要改为⼀系列只有单条件的嵌套的判断。
  例如:
  1 if a or b
  2 x
  3 else
  4 y
  对应的逻辑为:
独⽴路径:⾄少沿⼀条新的边移动的路径
基本路径测试法的步骤:
  第⼀步:画出控制流图
  流程图⽤来描述程序控制结构。可将流程图映射到⼀个相应的流图(假设流程图的菱形决定框中不包含复合条件)。在流图中,每⼀个圆,称为流图的结点,代表⼀个或多个语句。⼀个处理⽅框序列和⼀个菱形决测框可被映射为⼀个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。⼀条边必须终⽌于⼀个结点,即使该结点并不代表任何语
句(例如:if-else-then结构)。由边和结点限定的范围称为区域。计算区域时应包括图外部的范围。
画出其程序流程图和对应的控制流图如下
第⼆步:计算圈复杂度
  圈复杂度是⼀种为程序逻辑复杂性提供定量测度的软件度量,将该度量⽤于计算程序的基本的独⽴路径数⽬,为确保所有语句⾄少执⾏⼀次的测试数量的上界。独⽴路径必须包含⼀条在定义之前不曾⽤到的边。
  有以下三种⽅法计算圈复杂度:
猴车
亨润成型机炮筒公司  流图中区域的数量对应于环型的复杂性;
  给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;
  给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。
第三步:导出测试⽤例
  根据上⾯的计算⽅法,可得出四个独⽴的路径。(⼀条独⽴路径是指,和其他的独⽴路径相⽐,⾄少引⼊⼀个新处理语句或⼀个新判断的程序通路。V(G)值正好等于该程序的独⽴路径的条数。)
  ü路径1:4-14
  ü路径2:4-6-7-14
  ü路径3:4-6-8-10-13-4-14
  ü路径4:4-6-8-11-13-4-14
  根据上⾯的独⽴路径,去设计输⼊数据,使程序分别执⾏到上⾯四条路径。
  o第四步:准备测试⽤例
  为了确保基本路径集中的每⼀条路径的执⾏,根据判断结点给出的条件,选择适当的数据以保证某⼀条路径可以被测试到,满⾜上⾯例⼦基本路径集的测试⽤例是:
举例说明:
  例:下例程序流程图描述了最多输⼊50个值(以–1作为输⼊结束标志),计算其中有效的学⽣分数的个数、总分数和平均值。模拟社区
步骤1:导出过程的流图。
步骤2:确定环形复杂性度量V(G):
  1)V(G)= 6 (个区域)
  2)V(G)=E–N+2=16–12+2=6
  其中E为流图中的边数,N为结点数;
  3)V(G)=P+1=5+1=6
  其中P为谓词结点的个数。在流图中,结点2、3、5、6、9是谓词结点。
  步骤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-4-5-6-8-2…
  路径6:1-2-3-4-5-6-7-8-2…
  步骤4:为每⼀条独⽴路径各设计⼀组测试⽤例,以便强迫程序沿着该路径⾄少执⾏⼀次。
  1)路径1(1-2-9-10-12)的测试⽤例:
  score[k]=有效分数值,当k < i ;
  score[i]=–1, 2≤i≤50;
蜗轮滚刀
  期望结果:根据输⼊的有效分数算出正确的分数个数n1、总分sum和平均分average。
  2)路径2(1-2-9-11-12)的测试⽤例:
  score[ 1 ]= – 1 ;
  期望的结果:average = – 1,其他量保持初值。
  3)路径3(1-2-3-9-10-12)的测试⽤例:
  输⼊多于50个有效分数,即试图处理51个分数,要求前51个为有效分数;
  期望结果:n1=50、且算出正确的总分和平均分。
  4)路径4(1-2-3-4-5-8-2…)的测试⽤例:
  score[i]=有效分数,当i<50;
  score[k]<0, k< i ;
 期望结果:根据输⼊的有效分数算出正确的分数个数n1、总分sum和平均分average。
连接权为“1”表⽰存在⼀个连接,在图中如果⼀⾏有两个或更多的元素“1”,则这⾏所代表的结点⼀定是⼀个判定结点,通过连接矩阵中有两个以上(包括两个)元素为“1”的个数,就可以得到确定该图圈复杂度的另⼀种算法。
<

本文发布于:2024-09-21 10:42:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/231587.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:路径   结点   流图   基本   程序   测试   区域
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议