圈複雜度:在軟體測試的概念裡,它用來衡量乙個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即 合理的預防錯誤所需測試的最少路徑條數。圈複雜度的原理:(其實就是分支的個數)圈複雜度大說明程式**可能質量低且難於測試和維護,根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。
圈複雜度為1,意味著**只有一條路徑。對於有一條分支的**,它的圈複雜度為2。
圈複雜度
**狀況
可測性維護成本
1-10
清晰、結構化高低
11-20複雜中
中21-30
非常複雜低高
>30
不可讀不可測
非常高計算公式1:
\[v(g)=e-n+2p\]
式中:e表示控制流圖中邊的數量,n表示控制流圖中節點的數量,p表示圖的連線元件數目(圖的元件數是相連節點的最大集合)。因為控制流圖都是連通的,所以p為1.
計算公式2:
\[v(g)=區域數=判定節點數+1\]
其實,圈複雜度的計算還有更直觀的方法,因為圈複雜度所反映的是「判定條件」(如if、while等)的數量,所以圈複雜度實際上就是等於判定節點的數量再加上1,也即控制流圖的區域數。注意:對於多分支的case結構或if-elseif-else結構,統計判定節點的個數時需要特別注意一點,要求必須統計全部實際的判定節點數,也即每個elseif語句,以及每個case語句,都應該算為乙個判定節點。
計算公式3:
\[v(g)=r\]
式中:r代表平面被控制流圖劃分成的區域數。總結:
軟體測試 圈複雜度
圈複雜度 在軟體測試的概念裡,它用來衡量乙個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即 合理的預防錯誤所需測試的最少路徑條數。圈複雜度 大 說明程式 可能 質量低且難於測試和維護 根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。圈複雜度的原理 其實就是 分支的個數 圈複雜度為1,...
圈複雜度計算
一 公式 vg m n p vg m n 2p g 代表強連通有向圖,m 代表強連通有向圖的弧數,n 代表強連通有向圖的節點數,p 是g中分離部分的數目,預設是1 m和n都很清晰,當我們要用公式計算的時候p的值不固定,很難計算。為什麼會出現p和2p的情況呢 如圖所示,這是乙個控制流圖,入度是2,出度...
圈複雜度評價及工具
圈複雜度用來評價 複雜度,以函式為單位,數值越大表示 的邏輯分支越多,理解起來也更複雜。圈複雜度可以成為編碼及重構的重要參考指標,以指導撰寫可讀性高的 有關圈複雜度的定義,可以自行搜尋。大全 有如下的定義 計算子程式中決策點數量的技術 大全2,19章p458 1.由1 計數,一直往下通過程式。2.一...