Simulink Tester for T-VEC
From T-VEC Wiki (Japanese)
Simulink Tester for T-VEC
T-VEC Simulink Tester は、T-VEC VGS と統合され、Simulink/Stateflowモデルを解析して、モデルの検証と、モデルの実装をテストするためのテストケースを割り出す、といった多くのテスト作業を自動化します。 Real-Time Workshop の Generic/Embedded Coderから自動生成されるソースコードに対して、T-VEC Tester は、テストベクタを実行するためのテストドライバ(ハーネス)を生成します。(包括的なテストパッケージ)
Simulinkモデルに対するテスト生成は、モデルの実装を完全に検証するために必要な、単体・結合・システムレベルのテストベクタと、テストドライバを生成します。 デシジョンエラーや、算術エラーを効率的に検出するテストベクタが、ブーリアン、インテジャー、フローティングポイントの各ドメインで生成されます。
VGSは、全atomicサブシステムの、全経路のテストベクタを生成します。各テストベクタは、サブシステム内の制約やそれが参照するより下位層のサブシステムの制約から決定されます。これらのテストは以下を実現します。
- 構造化パスカバレッジ
- 分岐カバレッジ
- MC/DCカバレッジ
- ステイトメントカバレッジ
- インタフェースカバレッジ
詳細は、Simulink/T-VEC Examples を参照。
T-VECをSimulink/Stateflowに用いる上での、制限、使用方法、ガイドライン(limitations, usage issues, and guidelines)があります。
Contents |
デザインモデル
Mathworks社の SimulinkやStateflow(Mathworks' Simulink and Stateflow)は、シミュレーションや、コード生成の為などの、振舞いの仕様を記述できます。
ハイブリッドモデル
Simulinkは、そもそも制御システムモデリングで使用されていました。しかし、Stateflowや他の機能を付加することで、現在は制御システムと状態遷移モデルの統合をサポートする、ハイブリッドモデリングを提供しています。
モデル解析
テストベクタ生成に先駆けて実行される解析により、モデルエラー(矛盾または機能の相互関係問題など)などを検出します。これらのモデルエラーは、結果的にデッドコードや、他の望ましくない影響を与えることになります。
完全な検証結果
T-VEC Testerは、Simulinkモデルを検証するための、完全な成果物を生成します。
- モデル解析レポートにより、モデルエラーを検出。
- テストベクタ
- 入力値
- 期待出力値
- 各テストからSimulinkモデルまでのトレーサビリティ
- テストカバレッジレポート
- GRTやERTコード生成のテストハーネス
- テストのパス・フェイル結果詳細レポート
- 完全な自動プロセスのためのMakefile
拡張可能、階層的なテスト生成
包括的なテストは、単体テストと結合テストの、両方のレベルを必要とする、ボトムアップアプローチでのみ、実現可能です。システムの全コンディションとデシジョンに対して、テストベクタを自動生成する場合、システムの最下位層のサブシステムのみが、分離・独立してテストされ得ます。 上位層のサブシステムは、それらが関連する下位層のサブシステムとの脈略を踏まえて、テストされる必要があるでしょう。 あるいは、上位層のサブシステムに、下位層でサポートされない、経路またはスレッドが存在する可能性があります。特に、複数のサブシステムが関連していて、その変更が結果的に機能相互干渉を引き起こすような場合などです。 一部のテストツールでは、サブシステムの単体テストを、依存する全てのサブシステムを無視、あるいは無いことを前提としてテストを生成しますが、これは、基本的に間違いであり、危険な想定です。
テストシーケンスベクタ
アサーション
テストドライバ生成
Simulink Testerは、Matlab Simulator用だけではなく、Mathworks RTWによってサポートされたERTやGRTコードジェネレータ用のテストドライバスキーマも提供しています。また、ターゲットの実行環境が異なっていようとも、一般的なテストドライバを記述するための多目的なテストドライバテンプレート/スキーマ言語を提供し、テストベクタを実行できるようになっています。そのため、特定ターゲット環境専用のテストドライバースクリプト・プログラムを、制限無く生成させることが出来ます。スキーマは、ゼロから作ることや、インストールで提供されるスキーマを編集して作ることもできます。
これらは、インストールディレクトリの下記場所に置かれています。
C:\t-vec\translators\sl2tvec\test_drivers
LDRAのTBrun環境用に、T-VEC Simulink Testerは、専用の“.tcf”ファイルを生成するためのデフォルト・テストドライバ・スキーマを提供しています。
下記ディレクトリには、TTMトレーニングで使う、他のスキーマ例があります。
C:\t-vec\examples\ttm\course\exercise_answers
ビルド環境における種差は、これら多目的スキーマのカスタマイズが必要です。例えば、これらのサンプルスキーマの1つ(testbed_tcf_ghs.sch)は、Greenhillsコンパイラ環境用に作られています。唯一の作業は、ターゲットコード名とモデル名の関係を記述するオブジェクトマッピングファイルを構成することです。オブジェクトマッピング情報の一部は、自動的にトランスレータによって設定されます。しかし、その一部は、特定し、マッピング情報へ追加される必要があります。 Simulink環境では、ERT とGRT のコード生成ツールに関しては、必要なオブジェクトマッピング情報が自動で得られるようになっています。 Simulink/Stateflowは、必要なオブジェクトマッピング情報を得るためのAPIを提供していませんが、RTWから抽出できるようになっています。異なるコード生成ツールを使用する場合、またはデフォルトのGRT、ERTをカスタマイズして使用する場合、このマッピング情報は、ユーザによって用意される必要があります。
テストドライバジェネレータメカニズムについて、マニュアルやユーザーズガイドに情報があります。しかし、トレーニングクラスやワークショップでもカバーしています。
