軟體測試 圈複雜度

2021-10-25 06:15:56 字數 1276 閱讀 4149

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

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

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

圈複雜度為1,意味著**只有 一條路徑 。

對於有一條分支的**,它的圈複雜度為2。

從1開始 ,一直往下經過程式。

一旦遇到以下關鍵字,或者其它同類的詞,就 +1 。

如 if、while、repeat、for、and、or 。

給 case語句 中的每一種情況都 +1 。

計算方法

程式的控制流圖

計算公式1:

式中:e表示控制流圖中邊的數量, n 表示控制流圖中節點的數量, p 表示圖的連線元件數目(圖的元件數是相連節點的最大集合)。

因為控制流圖都是連通的,所以 p為1 .

模組的控制流圖

計算公式2:

其實,圈複雜度的計算還有更直觀的方法,因為圈複雜度所反映的是「判定條件」(如 if、while等 )的數量,所以圈複雜度實際上就是等於判定節點的數量再加上1,也即控制流圖的區域數。

注意:對於多分支的case結構或if-elseif-else結構,統計判定節點的個數時需要特別注意一點,要求必須統計全部實際的判定節點數,也即每個elseif語句,以及每個case語句,都應該算為乙個判定節點。

複雜的控制流圖

計算公式3:

式中:r代表平面被控制流圖劃分成的區域數。

針對 程式的控制流圖 時,最好還是採用第乙個公式,即 v(g)=e-n+2 ;

針對 模組的控制流圖 時,可以直接統計判定節點數,這樣更為簡單;

針對 複雜的控制流圖 時,使用區域計算公式v(g)=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.一...