循環複雜度

循環複雜度(Cyclomaticcomplexity)也稱為條件複雜度,是一種軟體度量,是由老托馬斯·J·麥凱布(英語:ThomasJ.McCabe,Sr.)在1976年提出,用來表示程式的複雜度,其符號為VG或是M。

循環複雜度由程式的原始碼中量測線性獨立路徑的個數。此概念有些類似的量測文字複雜度的Flesch-Kincaid可讀性測試(英語:Flesch-KincaidReadabilityTest),不過方法不完全相同。
循環複雜度是由程式的控制流圖(英語:controlflowgraph)來計算:有向圖的節點對應程式中個別的程式碼,而若一個程式執行後會立刻執行另一程式碼,會有邊連結二程式碼對應的節點。圈複雜度可套用在程式的子程式、模組、方法或類別。
麥凱布首先提出一種稱為“基礎路徑測試”(BasisPathTesting)的軟體測試方式,是測試程式中的每一線性獨立路徑,此情形的測試用例個數即為程式的循環複雜度。
“循環複雜度”的名稱有時會讓人誤解,因為此複雜度不只計算程式中的循環(循環)個數。循環複雜度是指程式的控制流圖中,若將結束點到啟始點再增加一個邊時,控制流圖中的圈(幾個邊形成封閉路徑)的個數。

相關詞條

熱門詞條

聯絡我們