Main Content

段階的なテスト生成のためのモデル入力の分割

データの制約で説明されているように、Simulink® Design Verifier™ Test Condition ブロックを使用して、モデルの入力値を制約できます。

他の Simulink パラメーター同様、制約値は共通のワークスペース変数を参照することで複数のブロック間で共有でき、また、制約値は MATLAB® コマンドを使用して初期化できます。目的速度、測定速度、平均速度など、速度に関する入力が複数ある場合、それらのすべてを同じ値のセットに制約することを選択できます。

MATLAB の熟練プログラマ向けの高度な手法として、Simulink Design Verifier のパラメーター化された制約および連続実行を使用して、段階的テスト生成の手法の実装が可能です。

  1. モデルの入力のいくつかは定数のままにし、いくつかは Test Condition ブロックを使用して定数のセットに制約して、またいくつかは任意の値をもてるように、モデルの入力を分割します。

  2. テスト ケースを生成し、それらのテスト ケースを実行してモデル カバレッジを収集します。

  3. 新しい値を選択し、これらの新しい値の入力を分割します。

  4. 関数 sldvgencov と現在のテスト カバレッジを使用して、未達カバレッジのテスト ケースを生成します。

    メモ

    既存のテスト スイートを拡張して未達モデル カバレッジを達成する例を表示するには、MATLAB コマンド ウィンドウのコマンド プロンプトで次を入力します。

    showdemo('sldvdemo_incremental_test_generation')

  5. 目的のカバレッジを達成するまで、手順 3 と 4 を繰り返します。

解析の実行時にさらに単純化できるようにモデルの入力を分割します。相互に排他的な 3 つの有効なサブシステムをもつ次のモデルを考えます。

  • ノーマル モード

  • シャットダウン モード

  • 故障モード

解析の実行前に最初の入力を定数値に制約し、それぞれのサブシステムについて段階的にテスト ケースを生成できます。このように、それぞれのサブシステムに対するテスト ケースを作成することで、ソフトウェアは他の 2 つのサブシステムの複雑度を無視します。