关闭

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

发表于:2008-3-06 17:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

举例说明:

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

           f

步骤1:导出过程的流图。

           ff

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

          gg

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

55/5<12345
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 风雪满江山
    2009-5-28 05:15:06

    针对xxfjxw的问题, 我的理解:
    基本路径方法是要保证每个语句都能覆盖到,又要求用例最少。
    所以1->2->3->9->11->12路径上的几个节点可以被前面路径1、2、3所覆盖。
    也就是说路径1、2、3执行完毕后,此路径上所有语句都执行过了。
    因此该路径不作为独立路径。
    另外,我的理解,独立路径可以是多簇,上面的例子中6个路径构成一簇,也应该可以选择其他6个构成另外一簇。在于你的选择。

  • xxfjxw
    2009-3-07 14:15:22

    我有一个问题,请教:
    为什么1->2->3->9-说>11->12不是基本路径呢

  • VisualUnit
    2008-4-04 00:18:16

    基路径法的设计者很有水平,本文的作者也写得很好。
    早几年,我们曾想将此方法用于实际测试,但发现太费时了。本文的第一个例子,十行代码(不算{}),第二个例子好象不到二十行,分支还不算太多,做起来已经很难很费时了,实际项目中,四五十行代码的函数比比皆是,分支和路径数量可能会多得多,更不用说上百行的,分支多了,难度会呈几何级数上升。
    不能对付几十行代码的方法,本低手认为是不实用的,不知道高手们怎么看。

  • Jolin_zhou
    2008-3-28 12:56:32

    good!!
    赫赫,就是有点看不懂。

  • y_test
    2008-3-13 15:17:40

    不错 支持一下

  • renf
    2008-3-07 20:23:20

    写的很详细,长了不少见识,谢谢

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号