Main Content

verify ステートメントを使用したモデルのシミュレーションの評価

Test Assessment ブロックで verify ステートメントを使用してモデルのシミュレーションを検証できます。verify ステートメントは論理式を評価し、ステートメントがパス、失敗、または未テストのいずれであるかを示します。その後、テスト マネージャーでテスト結果を確認できます。

verify ステートメントの作成

verify ステートメントを使用して論理式を評価すると、verify ステートメントは、各タイム ステップとシミュレーション全体について、passfail、または untested の結果を返します。いずれかのタイム ステップで結果が fail になると、シミュレーション全体の結果が fail になります。失敗になる結果が 1 つもない場合、いずれかのタイム ステップで pass になると、シミュレーション全体の結果が pass になります。それ以外の場合、全体の結果は untested になります。

sltestVerifyExample モデルの Test Assessment ブロックでは、親ステップで verify ステートメントを使用して、シミュレーション中に 2 つのローカル変数 xy を比較します。この例の verify ステートメントには、テスト マネージャーの結果にラベルを付けるオプションの引数が含まれています。verify の構文の詳細と使用する際の考慮事項については、verifyを参照してください。

Verify statements that compare two values

テスト ケースはテスト マネージャーを使用して作成できます。テスト ケースを実行すると、テスト結果の [verify ステートメント] セクションに結果が表示されます。この例では以下のようになります。

  • verify(x >= y) は、テスト シーケンス全体について true になるため全体にパスします。

  • verify(x == y)verify(x ~= y) は、それぞれ step_1_2step_1_1 で失敗になるため失敗します。

テスト マネージャーに次の結果が表示されます。

Plot of results of when x is not equal to y

Test Assessment ブロックの verify ステートメントの有効化

When 構造シーケンスでは、シミュレーション条件に基づいてステップが有効になります。Test Assessment ブロックで When 構造シーケンスを使用して、verify ステートメントを含むステップを有効にするシミュレーション条件を定義できます。

  • モデルで Test Sequence ブロックをソースとして使用する場合、それぞれの verify ステートメントを Test Sequence ブロックのアクティブなステップを使用して有効にすることを検討します。

  • モデルで Test Sequence ブロックをソースとして使用しない場合、またはテスト シーケンス ステップが検証する条件と対応しない場合は、それぞれの verify ステートメントを信号条件を使用して有効にします。

When 構造シーケンスの使用の詳細については、When 構造を使用したモデルの評価を参照してください。

テスト シーケンス ステップを使用した verify ステートメントの有効化

Test Sequence ブロックと Test Assessment ブロックを Test Sequence ブロックからのアクティブなステップ信号で接続し、それぞれの verify ステートメントをアクティブなステップで有効にできます。たとえば、Harness1_TestSeqAndTestAssessment ハーネスには Test Sequence ブロックと Test Assessment ブロックが含まれています。ブロックは Active_Step 信号で接続されています。

Test Assessment ブロックに 4 つのサブステップをもつ When 構造シーケンスが含まれています。各サブステップに verify ステートメントがあり、Test Sequence ブロックの異なるステップで有効になります。

この例の Else ステップにはアクションはなく、前の when 条件のいずれにも一致しないシミュレーション条件を処理します。このステップに when 条件を含めることはできません。

A test harness with a Test Sequence and Test Assessment block connected by a signal.

Test Assessment の verify ステートメントを Test Sequence ブロックのアクティブなステップを使用して有効にするには、Test Sequence ブロックのアクティブなステップのデータ出力を作成します。Test Sequence ブロックを選択し、プロパティ インスペクターで [アクティブなステップの監視用データを作成] を選択して [データ型]Enum に設定します。[Enum 名] に名前を入力します。

Property Inspector for the Test Sequence block

次に、Test Assessment ブロックのデータ入力を作成します。Test Assessment ブロックを開き、[シンボル] ペインで [入力] をポイントして [データの追加] をクリックし、入力に名前を付けます。Test Sequence ブロックの出力を Test Assessment ブロックの入力に接続します。

Test Assessment ブロックで When 構造を作成します。Test Assessment ブロックには、既定で When 構造シーケンスがあります。標準のシーケンスと When 構造シーケンスで切り替えるには、親ステップを右クリックして [when 構造] を選択します。それぞれの When 構造ステップについて、そのステップがアクティブなステップの列挙データを使用してアクティブになるタイミングを定義します。

VerifyBoth when TSActiveStepIN == ...
    TSActiveStepEnum.PressBothButtons

信号条件を使用した verify ステートメントの有効化

モデルで Test Sequence ブロックをソースとして使用しない場合、または Test Sequence ブロックのステップが検証する条件と対応しない場合は、一意の信号条件を使用して verify ステートメントを含むステップを有効にできます。verify ステートメントを When 構造シーケンスに配置し、When 条件で条件ステートメントを使用します。

たとえば、テスト ハーネス Harness2_AssessWithSignalInputs では Signal Editor ブロックの入力を使用しています。

Test harness with a Test Assessment block and inputs from a Signal Editor block

ハーネスの Test Assessment ブロックに When 構造シーケンスがあり、各サブステップに verify ステートメントが含まれています。各サブステップが一意の信号条件で有効化されます。

Plot of when decomposition sequence and associated Test Assessment verify statements

参考

| | | | | |

関連するトピック