【せいてきかいせき】
静的解析 とは?
💡 「動かす前」にバグを見つける
📌 このページのポイント
- Static Analysisの訳で、静的コード解析とも呼ばれる
- コンパイラの警告、リンター、セキュリティスキャナーが代表的
- SonarQube、ESLint、Checkstyle、Semgrepなどのツール
- CI/CDパイプラインに組み込んで自動実行するのがベスト
リンターと何が違うの?
具体的にどんなバグが見つかる?
誤検知(false positive)が多いって聞いたけど?
確かにそこが課題だよ。ツールが「危険かもしれない」と報告しても実際には問題ないケースがある。誤検知が多すぎると開発者がアラートを無視するようになる。ルールの調整や抑制コメントの活用で誤検知を管理しつつ、重要なルールに絞って運用するのがコツだね
おすすめのツールは?
言語による。JavaScript/TypeScriptならESLint、PythonならPylint/Ruff、JavaならSpotBugs、C/C++ならClang Static Analyzer。言語横断ではSonarQubeが定番だよ。セキュリティ特化ならSemgrepやSnyk Codeがおすすめ。まずはCIに1つ入れてみることが第一歩だね
まとめ:ざっくりこれだけ覚えればOK!
「静的解析」って出てきたら「コードを実行せずに問題を検出する分析手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Static Analysis」 = 静的解析
💬 Static(静的=動かさない)Analysis(分析)。対義語はDynamic Analysis(動的解析=実行して分析)だよ