更多“程序的环路复杂度V(G)也称为McCabe复杂性度量,它是构成基本路径集的独立路径数的上界,可依此得出 ”相关问题
  • 第1题:

    Mcc:abe度量法是通过定义环路复杂度,建立程序复杂性的度量,它基于一个程序模块的程序图中环路的个数。计算有向图G的环路复杂性的公式为:V(G)=m—n+2,其中V(G)是有向图G中的环路个数,m是G中的有向弧数,n是G中的节点数。下图所示程序图的程序复杂度是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:要采用McCabe度量法度量程序复杂度,需要先画出程序流图,识别有向图中节点数n=8,有向弧数m=7,然后利用环路复杂性计算公式V(G)=m-n+2进行计算,得出程序图的程序复杂度是3。

  • 第2题:

    根据Mccabe环路复杂性度量,下面程序图的复杂度是(20),对这个程序进行路径覆盖测试,可得到的基本路径是(21)。

    A.2

    B.3

    C.4

    D.5


    正确答案:C
    解析:程序图的环路数是源代码复杂程度的度量。根据McCabe度量法,环路数N= e-n+2,这里e表示有向图的边数,n表示结点数。图中e=13,n=11,得到N=4。另外一种方法是计算有向图把平面划分成的区域数,这里有3个闭合区域外加1个开放区域,共4个区域。所以程序图的复杂度是4。
      路径测试的关键是要找出程序图中所有可能的路径。对这个程序进行路径覆盖测试,可得到4条基本路径:
      A—B—C—H—I—K
      A—B—C—H—J—K
      A—B—C—D—E—F—G—C—H—I—K
      A—B—C—D—E—G—C—H—I—K
      所有基本路径都是从程序起点到终点,并且包含了至少一条独立的边。

  • 第3题:

    对下图所示的程序流程图进行语句覆盖测试和路径覆盖测试,采用McCabe度量法计算其环路复杂度为( )。

    A.1
    B.2
    C.3
    D.4

    答案:D
    解析:
    覆盖2条路径就能达到语句覆盖的要求,用2个测试用例即可。路径覆盖需要把程序中的3条路径均覆盖一遍,需要4个用例。整个程序流程图转化为节点图之后,一共11个节点,13条边,根据环路复杂度公式有:13-11+2=4。

  • 第4题:

    下图所示的程序流程图中有 (34)条不同的简单路径。采用McCabe度量法计算该程序图的环路复杂性为 (35) 。

    A.3

    B.4

    C.5

    D.6


    正确答案:A
    本题考查程序结构和复杂性的基本概念和相关知识。重新画出上述流程图,给相关的操作加上编号,并给出对应的等价图,如下图(a)和(b)所示。从图(a)可知,共有3条简单路径,即①②③④;①②③⑤⑦③;①②③⑤⑥⑦③根据图(b)计算程序复杂性,得到n=7,e=8,因此复杂性为e-n+2=3。

  • 第5题:

    下图所示的程序流程图中有(34)条不同的简单路径,采用McCabe度量法计算该程序图的环路复杂性为(35)。

    A.3
    B.4
    C.5
    D.6

    答案:A
    解析:
    三条简单路径分别为begin->y=n-1成立->output A->end;begin->y=n-1不成立->A[i]>A[i+1]不成立->y=n-1成立->end;begin->y-n-1不成立->A[i]>A[i+1]成立->swapA[I],A[i+1]->y=n-1成立->end;MacCabe度量法公式为V(G)=m-n+2,V(G)是有向图G中环路数,m是图G中弧数,n是图G中结点数。本题中m=10,n=9,故V(G)=3。