技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

情報処理技術者試験対策「静的解析ツール・動的解析ツール」

情報処理技術者試験では、「静的解析ツールとは何か」「動的解析ツールとは何か」を問う問題が出題されます。
この記事では、これらのツールは何か、何のために使うのか、といったことについて簡単に書いていきます。
 
【静的解析ツールの説明】
静的解析ツールとは、実行しない状態でソースコードのチェックを行うツールです。
コンパイル前に、コンパイルエラーや実行時エラーとなる箇所、若しくはエラーになる可能性が高かったり可読性が低下したりする箇所を見つけ、警告を出してくれます。
エラーや可読性低下につながる箇所を最速のタイミングで見つけることができ、また人間によるソースコードレビューと異なり見落としが出ることもないので、静的解析ツールを適切に使うことで品質が向上しやすくなります。
 
EclipseJavaソースコードを書く時に、未使用のインポートや変数が存在する時に黄色の波線が出た経験はないでしょうか?
静的解析ツールは、その機能をよりリッチにしたものと考えて良いです。
Eclipse自体も静的解析ツールの機能を含んでいると考えて良いと思っています)
Javaの場合、「FindBugs」や「SonarQube」といったツールが代表的な静的解析ツールとして挙げられます。
 
【動的解析ツールの説明】
動的解析ツールとは、実行時にプログラムの実行状態を解析するツールです。
変数の内部状態の表示や、プログラムの呼び出し回数・実行時間の計測、プログラムの命令や分岐の網羅率の計測、アサーションチェック(変数状態等が期待結果と一致していることの確認)等を行います。
単純に実行結果を見るだけでは分からない情報を見ることができるので、バグの調査やテストの実施状況確認、テストの実行結果の確認といった作業を効率良く行うことができるようになります。
 
Eclipseデバッグ機能を使うと、各ステップ毎で変数の内部状態の変化を見ることができます。
Eclipseがサポートするこの機能も、動的解析ツールと呼べるものです。
 
----------------------
 
目次
https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM