根据McCabe环路复杂性度量,下面程序图(图5-2)的复杂度是 (41) ,对这个程序进行路径覆盖测试,可得到的基本路径是 (42) 。
[*]
A.ABCHIK;ABCHJK:ABCDEFG
B.ABCHIK;ABCHJK;ABCDEFGCHIK:ABCDEGCHIK
C.ABCHIK;ABCHJK;ABCDEFGCHIK:ABDEGCHJK
D.ABCHIK;ABCHJK;ABCDEFGCHIK;ABCDEFGCHJK;ABCDEGCHIK
参考答案:B
解析:
对程序图环路复杂度的求解有3种方法。解法1:程序图的环路数是源代码复杂程度的度量。根据McCabe度量法,环路数N=e-n+2,其中,e表示有向图的边数,n表示节点数。图5-2中e=13,n=11,得到N=13-11+2=4。
解法2:计算有向图把平面划分成的区域数。图5-2中有3个闭合区域外加1个开放区域,共4个区域。所以程序图的复杂度是4。
解法3:图5-2中有3个判断节点,即节点C、E、H,所以程序图的复杂度是判断节点数加1,即3+1=4。
路径测试的关键是要找出程序图中所有可能的路径,这些基本路径都是从程序起点到终点,并且包含了至少一条独立的边。对图5-2所示的程序进行路径覆盖测试,可得到4条基本路径:ABCHIK;ABCHJK;ABCDEFGCHIK;ABCDEGCHIK。