循環複雜度 循環複雜度Cyclomatic complexity也稱為條件複雜度或圈复杂度是一種軟體度量是由老托馬斯J麥凱布英语Thomas J McCabe Sr在年提出用來表示程式的複雜度其符號為VG或是M循環複雜度由程式的源代碼中量測線性獨立路徑的個數此概念有些類似的量測文字複雜度的FleschKincaid可讀性測試英语FleschKincaid Readability Test 不過方法不完全相同 循環複雜度是由程式的控制流圖來計算有向圖的節點對應程式中個別的程式碼而若一個程式執行後會立刻執行另一程式碼會有邊連結二程式碼對應的節點圈複雜度可應用在程式的子程序模組方法或類別 麥凱布首先提出一種稱為基礎路徑測試Basis Path Testing的軟體測試方式是測試程式中的每一線性獨立路徑此情形的測試用例個數即為程式的循環複雜度 循環複雜度的名稱有時會讓人誤解因為此複雜度不只計算程式中的迴圈循環個數循環複雜度是指程式的控制流圖中若將結束點到啟始點再增加一個邊時控制流圖中的圈幾個邊形成封閉路徑的個數