专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »软件测试 » 白盒测试的基本路径测试法 »正文

白盒测试的基本路径测试法

来源: 发布时间:星期四, 2009年2月12日 浏览:26次 评论:0


白盒测试测试思路方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、变异

  其中运用最为广泛是基本路径测试法

  基本路径测试法是在控制流图基础上通过分析控制构造环路复杂性导出基本可执行路径集合从而设计测试用例思路方法

  设计出测试用例要保证在测试中每个可执行语句至少执行

  在控制流图基础上通过分析控制构造环路复杂性导出基本可执行路径集合从而设计测试用例包括以下4个步骤和个工具思路方法:

  1.控制流图:描述控制流种图示思路方法

  2.圈复杂度:McCabe复杂性度量环路复杂性可导出基本路径集合中独立路径条数这是确定中每个可执行语句至少执行次所必须测试用例数目上界

  3.导出测试用例:根据圈复杂度和结构设计用例数据输入和预期结果

  4.准备测试用例:确保基本路径集中条路径执行

  工具思路方法:

  图形矩阵:是在基本路径测试中起辅助作用软件Software工具利用它可以实现自动地确定个基本路径集

  控制流图:描述控制流种图示思路方法

  圆圈称为控制流图个结点表示个或多个无分支语句或源语句

er\" alt=a src=\"/Files/BeyondPic/2008-3/7/2008349891.jpg\">

流图只有 2种图形符号:

  图中个圆称为流图结点代表条或多条语句

  流图中箭头称为边或连接代表控制流

  任何过程设计都要被翻译成控制流图

  如何根据流程图画出控制流程图?

  在将流程图简化成控制流图时应注意:

  n 在选择或多分支结构中分支汇聚处应有个汇聚结点

  n 边和结点圈定区域叫做区域当对区域计数时图形外区域也应记为个区域

  如下页图所示

er\" alt=aa src=\"/Files/BeyondPic/2008-3/7/2008349117.jpg\">

n 如果判断中条件表达式是由个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接复合条件表达式则需要改为系列只有单条件嵌套判断

  例如:

  1 a or b

  2 x

  3

  4 y

  对应逻辑为:

er\" alt=ss src=\"/Files/BeyondPic/2008-3/7/2008348349.jpg\">

独立路径:至少沿条新边移动路径

er\" alt=s src=\"/Files/BeyondPic/2008-3/7/2008341748.jpg\">

基本路径测试法步骤:

  o 第步:画出控制流图

  流程图用来描述控制结构可将流程图映射到个相应流图(假设流程图菱形决定框中不包含复合条件)在流图中个圆称为流图结点代表个或多个语句个处理方框序列和个菱形决测框可被映射为个结点流图中箭头称为边或连接代表控制流类似于流程图中箭头条边必须终止于个结点即使该结点并不代表任何语句(例如:--then结构)由边和结点限定范围称为区域计算区域时应包括图外部范围

er\" alt=d src=\"/Files/BeyondPic/2008-3/7/2008347909.jpg\">


画出其流程图和对应控制流图如下

er\" alt=sss src=\"/Files/BeyondPic/2008-3/7/2008342785.jpg\">

第 2步:计算圈复杂度

  圈复杂度是种为逻辑复杂性提供定量测度软件Software度量将该度量用于计算基本独立路径数目为确保所有语句至少执行测试数量上界独立路径必须包含条在定义的前不曾用到[Page]

  有以下 3种思路方法计算圈复杂度:

  流图中区域数量对应于环型复杂性;

  给定流图G圈复杂度V(G)定义为V(G)=E-N+2E是流图中边数量N是流图中结点数量;

  给定流图G圈复杂度V(G)定义为V(G)=P+1P是流图G中判定结点数量

er\" alt=ssss src=\"/Files/BeyondPic/2008-3/7/2008343602.jpg\">

第 3步:导出测试用例

  根据上面计算思路方法可得出 4个独立路径(条独立路径是指和其他独立路径相比至少引入个新处理语句或个新判断通路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

  根据上面独立路径去设计输入数据使分别执行到上面 4条路径

  o 第 4步:准备测试用例

  为了确保基本路径集中条路径执行根据判断结点给出条件选择适当数据以保证某条路径可以被测试到满足上面例子基本路径集测试用例是:



er\" alt=ddd src=\"/Files/BeyondPic/2008-3/7/2008341489.jpg\">

举例介绍说明:

  例:下例流程图描述了最多输入50个值(以–1作为输入结束标志)计算其中有效学生分数个数、总分数和平均值

er\" alt=f src=\"/Files/BeyondPic/2008-3/7/2008341646.jpg\">

步骤1:导出过程流图

er\" alt=ff src=\"/Files/BeyondPic/2008-3/7/2008348663.jpg\">

步骤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

举例介绍说明:

  例:下例流程图描述了最多输入50个值(以–1作为输入结束标志)计算其中有效学生分数个数、总分数和平均值

[Page] er\" alt=f src=\"/Files/BeyondPic/2008-3/7/2008341646.jpg\">

步骤1:导出过程流图

er\" alt=ff src=\"/Files/BeyondPic/2008-3/7/2008348663.jpg\">

步骤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

er\" alt=gg src=\"/Files/BeyondPic/2008-3/7/2008348329.jpg\">

连接权为“1”表示存在个连接在图中如果行有两个或更多元素“1”则这行所代表结点定是个判定结点通过连接矩阵中有两个以上(包括两个)元素为“1”个数就可以得到确定该图圈复杂度种算法


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: