Reactis for C Plugin

Reactis for C Plugin は、Reactis for Simulink からシームレスに利用でき、 モデルに含まれる C コード部分(S-Function、C Caller ブロック、Stateflow から呼び出される C コード)の ホワイトボックステストと検証を可能にします。Reactis for Simulink と C Plugin により、 Simulink、Stateflow、C コードで構築されたモデルからのテストデータ生成と モデルの検証を自動化します。

C コードを含む Simulink モデルを開発している場合、Reactis for C Plugin は、 次のような開発作業に要するコストと時間の両方を削減します:

  • C コード(C Caller ブロック、S-Function、Stateflow カスタムコード)のランタイムエラーの検出
  • C コードのテスト
  • C コードのデバッグ

Simulink と Stateflow をテストする同じ環境で C コードのテストと検証を自動化することにより、 Reactis for C Plugin は、C コードをより徹底的に、はるかに短時間で解析することを可能にします。

Reactis for C Plugin の使い方

C Plugin を使用しない場合、Reactis for Simulink は C Caller ブロック、S-Function、 Stateflow カスタム C コードをブラックボックスとして扱います。Reactis for C Plugin を使用すると、 このブラックボックスの中が開かれ、含まれる C コードを解析できるようになります。

Reactis Tester は、モデルからテストデータを自動生成します。ツールは、デシジョンカバレッジ、 コンディションカバレッジ、Modified Condition/Decision Coverage (MC/DC) などの 構造カバレッジ基準を使ってテストデータを選択します。C Plugin を使用すると、Reactis は、 モデルの Simulink と Stateflow 部分に加えて、C コードの構造カバレッジも目標とします。

Reactis Validator では、モデルの動作を評価するためのチェックや、テストデータの生成を 誘導するためのターゲットをモデルに装着できます。Reactis for C Plugin を使用すると、 モデルの C 部分もこの検証の対象にできます。

Reactis Simulator は、モデルの実行を可視化します。Simulator のユーザーインターフェースは、 プログラミング言語の従来のデバッガーに似ており、モデルの実行を手動でステップ実行したり、 ブレークポイントを設定したりできます。Simulator は、リバース実行、Reactis Tester が 生成したテストのリプレイ、各種カバレッジメトリクスのグラフィカルな表示、 Tester が生成したテストスイートの微調整もサポートします。

Reactis for C Plugin により、これらの高度なデバッグ機能が Simulink と Stateflow を超えて C コードにまで拡張されます。Simulink から S-Function や C Caller ブロックの中へ、 あるいは Stateflow からカスタム C コードの中へシームレスにステップインできます。 C コードにブレークポイントを設定してカバレッジを追跡することも可能です。

テストの生成

Reactis のテストスイート生成コンポーネントである Tester は、モデルカバレッジメトリクス (カバレッジ基準とも呼ばれます)を利用してテストを生成します。ツールは、テストデータを 計算する際に複数のカバレッジ基準を計測し、これらの基準の未到達の要素を使って、 以降に生成するテストを誘導します。

Reactis for C Plugin を使用すると、Tester は、モデルの Simulink と Stateflow 部分に加えて、 C コードのカバレッジも計測します。新しいカバレッジターゲットには、C のステートメントに加えて、 C コード内のデシジョン、コンディション、MC/DC ターゲットが含まれます。その結果、 Simulink と Stateflow 部分のカバレッジターゲットのみを追跡する場合よりも、 包括的なテストが得られます。

Tester は、guided simulation と呼ばれる特許技術を用いてテストを生成します。 Reactis におけるテストはシミュレーションの実行に対応し、実行の各ステップにおける入力が テストに使用する入力データとなります。シミュレーションの各ステップで、Tester は、 モデルと C コードの未到達部分に関する情報を使って、モデルのカバレッジを前進させる 入力データを選択します。

ランタイムエラーの検出

Reactis for C Plugin は、S-Function、C Caller ブロック、Stateflow カスタムコードの ランタイムエラーを見つけ、診断し、修正するために、様々なチェックを行ってエラーを検出します。

メモリーエラーは C では特に発生しやすく、デバッグは非常に難しいと言えます。 Reactis for C Plugin は、メモリーエラーを自動的に検出します。メモリーエラーとは、 プログラムが不正なアドレスから読み出し、又は不正なアドレスへ書き込みを行う場合に 発生するエラーです。一般的なメモリーエラーには、配列の範囲外インデックス、 バッファオーバーラン、解放済みのヒープ領域を指すポインター(メモリー領域の解放後に その領域を参照)、無効な stack pointer(関数の処理終了後に、その関数のローカル変数への ポインターにアクセス)、そして不正な数値からキャストされたポインターの使用があります。

Reactis Tester がランタイムエラーを検出すると、エラーに至る正確なシーケンスを示すために Reactis Simulator で実行できるテストを返します。

Reactis for C Plugin を試す!

Reactis for C Plugin が S-Function、C Caller ブロック、Stateflow カスタム C コードの テストとデバッグにどのように役立つか、ぜひお試しください。機能制限のない無償の 評価版は、Reactis User Pages からダウンロードできます。

Reactis for C Plugin は Reactis for Simulink のインストーラーに含まれているため、 プラグインの個別のダウンロードはありません。

詳細は、Reactis for C Plugin を使って C Caller ブロック、S-Function、Stateflow カスタムコードをテストし、 デバッグする方法を紹介した 8 分間のビデオをご覧ください。

ご購入の場合、Reactis for C Plugin は、永久ライセンスまたは年間ライセンスのいずれでも ご利用いただけます。ノードロックとフローティングの両方のオプションがあります。