静的解析とは、ソースコードを対象としてソフトウェアの構造や動作を解析(analyze)する技術です。通常、静的解析は、静的解析ツールにソースコードを読み込ませる形で行い、その結果はソースコード上の問題点の指摘やメトリクスの形などで出力されます。こうした解析をソフトウェアを動作させずに行うので「静的」と呼ばれます。
静的解析を導入するメリットの1つは、欠陥を検出するために、テストケースを準備したり、テストを実行するための時間を用意しなくても良いことです。静的解析ツールはソースコードから直接欠陥を発見するので、用意するのは解析の時間だけで済みます。
静的解析というと、古くはUNIX系でよく知られたlintコマンドのように、書かれたプログラムの構文のおかしさや、コンパイルは通るが危険なプログラム(初期化していない変数の利用等)を検出できるものの、問題ない部分を指摘してしまう誤検出も多く、解析に時間もかかるため、実務で使うには難のあるツールという印象でした。
しかし、現在では誤検出も減り、PCの性能向上により解析時間も短くなったため、実用に耐えるツールとなってきています。
最近の静的解析ツールでは以下の様なものを解析できるようになっています。
このように、現在の静的解析ツールではさまざまな観点から解析を行えるようになっているため、欠陥検出だけでなく、設計上の問題点の発見といった用途でも使えるようになってきています。
Copyright © ITmedia, Inc. All Rights Reserved.