サイクロマティック複雑度(循環的複雑度)とは?さいくろまてぃっくふくざつど
サイクロマティック複雑度(循環的複雑度)とは、制御フローグラフ上で線形独立な経路が何本あるかを数えた、プログラムの複雑さの尺度。トーマス・マッケーブが提唱し、判定条件の数に1を足す(グラフからは辺数−節点数+2)だけで求まる。この本数がそのまま分岐網羅に要するテストケース数の下限の目安になり、静的解析ツールで自動測定できる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
規模の指標が行数しかなかった頃は、どのモジュールを重点的にテストし分割すべきかを客観的に示せなかった。制御構造の分岐だけを数えれば独立な経路の本数が機械的に求まり、テスト量の見積りと保守しにくさの検知を同じ数字で扱える。支援士の文脈では、コードレビューやセキュアコーディングの品質指標として名前が挙がる。
具体例
判定条件が4個ある関数なら値は5で、分岐網羅には最低5本のテストが要る。SonarQubeなどの静的解析ツールは閾値の超過を警告し、10を超えたら分割を検討、20を超えると保守で不具合を作り込みやすい水準とみなす運用が多い。
試験での引っ掛け
値を決めるのは制御構造の数であって、行数や変数の多さとは直結しない。長いだけの逐次処理は低く、短くても分岐が密なら高くなる。求まるのは分岐網羅に必要な独立経路の本数で、全経路数ではない。低い値はテストのしやすさを示すだけで、バグが無い保証にはならない。
関連用語
出典・参考
公式シラバスの4 開発技術 > 3. 実装・構築 > (6) コードレビューに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。