軟體測試 圈複雜度

2022-01-09 23:42:57 字數 1513 閱讀 7937

圈複雜度:在軟體測試的概念裡,它用來衡量乙個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即 合理的預防錯誤所需測試的最少路徑條數。

圈複雜度說明程式**可能質量低且難於測試和維護,根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。

圈複雜度的原理:(其實就是分支的個數

圈複雜度為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.一...