このレッスンでは、アプリケーション検証および実行時エラー検出をカバーする演習を行います。C++test でのアプリケーション検証と実行時エラー検出の詳細については、「実行時エラー検出」の章を参照してください。
このセクションの内容:
前提条件
- C++test Server 9.0 以上がインストールされ、実行時エラー検出のライセンスが設定されていなければなりません。
- C++test サンプルの Sensor プロジェクトが利用可能でなければなりません。C++test でプロジェクトを作成する方法については、「C++test プロジェクトの作成 - チュートリアル」 を参照してください。
C++test 実行時エラー検出の概要
C++test の実行時エラー検出は、アプリケーション レベルで、または単体テスト中に実行できます。実行時エラー検出は動的なコード レビューを行います。つまり、実行中のアプリケーションを解析し、動的ルールのセットを適用し、ルール違反をレポートします。メモリ アクセス エラー、メモリ リーク、メモリ破壊などのメモリー エラーを検出できます。実行時エラー検出を行うためのインストゥルメンテーションは軽量であり、組込みシステムのターゲット ボードでの実行に適しています。
C++test アプリケーション検証の概要
C++test はインストゥルメントされたバージョンのアプリケーション実行ファイルを準備します。選択されたコンフィギュレーションに応じて、カバレッジ 統計およびアプリケーション実行中に発見されたメモリ エラーのどちらか、あるいは両方がレポートされます。
演習のセットアップ
以降の演習の準備として、「C++test プロジェクトの作成 - チュートリアル」 で説明した手順に従って、新しくコピーした Sensor サンプル コード ( [C++test_Install_DIR] \Examples\Sensor
) でプロジェクトをセットアップする必要があります。GNU/ホスト ベースのテストの詳細については、以下を参照してください。
GNU ホストベース テストの手順
- Sensor サンプル コードを使った単体テスト用のプロジェクト ディレクトリを作成します。
- 例:
C:\C++test\Tutorial\SensorEclipseGnu\Sensor
- 例:
Makefile
およびsensor.c
を新しいプロジェクト ディレクトリにコピーします。これらのファイルは[C++test インストール ディレクトリ\Examples\Sensor]
にあります。- 以下のいずれかの操作を実行します。
- デフォルトの Windows 環境に gcc、g++、make などへのパスがすでに設定されている場合、デスクトップ アイコンまたはメニューの [スタート] > [すべてのプログラム] メニューから C++test を起動します。
- これらのパスが設定されていない場合、コマンド プロンプトを開いてコンパイラおよび C++test のパスを設定し、「cpptest」と入力して C++test を起動します。
- ワークスペースの設定を行い、Sensor の 親ディレクトリに新しいワークスペースを作成します。 例:
C:\C++test\Tutorial\SensorEclipseGnu\workspace
- [C++test] パースペクティブで [ファイル] メニューの [新規] > [プロジェクト] をクリックします。
- [C/C++] を展開して [C プロジェクト] を選択し、[次へ] をクリックします。
- [プロジェクト名] フィールドに
Sensor
と入力します。 - [デフォルト・ロケーションの使用] チェックボックスをオフにします。
- [参照] ボタンをクリックして Sensor の Makefile の場所を指定します。 例:
C:\C++test\Tutorial\SensorEclipseGnu\Sensor
- [プロジェクト・タイプ] から [Makefile プロジェクト] を選択して展開します。
- [ツールチェーン] から[Cygwin GCC] または [Linux GCC] を選択します。
- [終了] ボタンをクリックします。
- 関連付けられたパースペクティブを開くかどうかを訊ねるダイアログが表示された場合、どちらを選択してもかまいません。C/C++ パースペクティブまたは C++test パースペクティブのどちらで作業してもかまいません。
- sensor.c を静的解析し、プロジェクトのセットアップが正しいかどうかをチェックします。 静的解析の実行の詳細については「静的解析とコーディング スタンダード - チュートリアル」を参照してください。