静的解析 【static code analysis】 静的コード解析
概要
静的解析(static code analysis)とは、コンピュータプログラムに欠陥が無いか検証する手法の一つで、主にソフトウェアを用いてプログラムコードを解析し、誤りがないか確かめること。静的テストの一種。「静的解析ツール」と総称されるツール群を用いて、人間の記述したプログラムのソースコードを解析し、プログラミング言語の文法や仕様を満たしているか、定められたコーディング規約に則っているかなどを調べる。
個々の命令文などの単位では形式的な問題がなくても、実行の流れを解析して、初期化前の変数の内容を参照していたり、確保したメモリ領域の境界を越えてアクセスしようとしているなど、実行時に問題となり得る箇所を指摘してくれるツールもある。
高い安全性や信頼性が求められる航空機や原子炉、人工衛星などの制御システム、セキュリティ分野などでは、定理証明支援系などのツールを用いてプログラムの正しさや安全性を数学的に証明する「形式手法」(formal methods)が用いられることもある。
静的テストの手法としては他に、主に人間(開発者以外の第三者)がソースコードを読んで問題がないか調べる「レビュー」(review)がある。一方、実際にプログラムを実行してみて問題が発生しないか確かめることは「動的解析」(dynamic analysis)と呼ばれ、一般に単にソフトウェアのテストと言えばこちら(のみ)を指すことが多い。
(2022.8.9更新)