要件に基づくテストに対する仕様モデルの使用
この例では,仕様モデルを使用して要件に基づくテストを実行する方法を説明します。この例では,要件に対して設計モデルを検証する体系的なアプロ,チに従います。仕様モデルの詳細な説明にいては,仕様モデルとはを参照してください。
手順1:要件エディタ,で要件を作成する
この例では,航空機のロ,ル角を制御する設計モデルである,ロ,ル自動操縦コントロ,ラ,RollAutopilotMdlRef
を使用します。ロル自動操縦コントロラは,2の上位モドで動作します。
1.ロ,ル維持モ,ド:このモ,ドは,航空機の現在のロ,ル角を維持するか,ユ,ザ,指定の角度に応じて変更します。
2.機軸方位保持モ,ド:このモードは,現在の機首方位を維持するか,航空機を回転してユーザー指定の機首方位値を取得します。ロル自動操縦コントロラシステムの詳細にいては,模型开发的基于需求的测试(金宝app仿真软件测试)を参照してください。
自動操縦コントローラーの場合,要件はコントローラーのシステムインターフェイス,上位システムモード,想定される動作について説明します。これらの要件は要件エディタ,で作成され,AP_Controller.slreqx
ファ@ @ルに保存されます。要件エディタの詳細にいては,要件エディタ,での要件の処理(需求工具箱)を参照してください。要件を表示するには,次を入力して要件エディタ,を開きます。
slreq.open (“AP_Controller”);
要件エディタ,に,ロ,ル維持モ,ドと機軸方位保持モ,ドに対する上位レベルの要件が表示されます。各要件をクリックすると,タブに要件の詳細がリストされます。
手順2:仕様モデルを作成する
仕様モデルを作成する場合は,要件のタイプ,模型ブロックの選択,抽象化のレベルなど,いくつかの要素を考慮しなければなりません。仕様モデルの作成で説明するガ▪▪ドラ▪▪ンに従ってください。
一連の自動操縦要件をカバ,するsldvexSpecPartial
仕様モデルを開きます。
spec_model =“sldvexSpecPartial”;open_system (spec_model);
sldvexSpecPartial
モデルは入力ンタフェスと出力ンタフェスで構成されます。真理値表は要件を取得します。
真理値表を開くには,次を入力します。
open_system ('sldvexSpecPartial/AP控制器要求');
手順3:要件を仕様モデルにリンクする
次の手順を実行し,要件を仕様モデルにリンクします。
1.仕様モデルでAP控制器要求
という名前の真理値表を右クリックします。コンテキストメニュ,で,[要件]、[金宝appSimulinkとのリンクを選択]をクリックします。
2.要件エディタで要件を開きます。真理値表にリンクする要件を右クリックし,[AP控制器要求(真值表)からのリンク]をクリックします。それぞれが要件のグル,プを指定する複数の真理値表がある場合,それらもリンクします。
手順4:仕様モデルのテストケ,スを生成する
sldvoptions
を使用して仕様モデルのテストケ,スを生成します。各要件には,sldv.test ()
を使用して個別のテスト生成オブジェクティブが関連付けられています。
Opts = sldvoptions;选择。模式=“TestGeneration”;选择。ModelCoverageObjectives =“没有”;[~, files] = sldvrun(spec_model,opts,true);
解析が完了すると[検証結果の概要]ウィンドウに6つのオブジェクティブのうち6つが達成されたことが表示されます。
手順5:テスト変換システムを作成して設計モデルでテストを実行する
自動操縦コントローラーの仕様モデルと設計モデルのインターフェイスは異なるため,手順4で生成したテストは設計モデルにおけるシミュレーションの実行でサポートされません。
たとえば,航空機ロ,ル角は仕様における列挙範囲型ですが,設計モデルにおいては双型です。
テスト変換プロセス中にRA_Horizontalなどの信号値が範囲である場合,その範囲に該当する任意の値を選択できます。中間点(範囲の中間点を選択できる),境界値(範囲の下限と上限を選択できる),またはランダムな手法(範囲内の乱数値を選択できる)など,さまざまなヒューリスティックな方法を使用できます。自動操縦コントロ,ラ,の場合,サブシステムsldvexDesignHarness /测试转换
では,次に示すようにハ,ネスモデルで中間点の手法を実装します。
design_model =“sldvexDesignHarness”;load_system (design_model);open_system (“sldvexDesignHarness /测试转换”);
手順6:設計モデルでテストケ,スをシミュレ,トして,不足している要件を特定する
設計モデルは要件ドキュメントを使用して個別に開発されます。設計を検証するには,次の4のサブシステムが含まれるハネスモデルを作成します。
(i)仕様モデル。
(ii)設計モデル。
(iii)手順5で説明するテスト変換サブシステム。
実行時検証ブロック。このブロックは設計信号値が仕様モデルで指定された範囲内にあるかどうかをチェックします。
sldvruntest
を使用して設計モデルで手順5のテストを実行し,モデルカバレッジレポ,トを生成します。
cvots = sldvruntestopts;cvopts。coverageEnabled = true;[~, initCov] = sldvruntest(design_model,files.DataFile, copts);cvhtml (“InitialCov”, initCov);
解析結果により,roll_ap_mod
のフルカバレッジは達成されず,設計モデルのサブシステムカバレッジが達成されたことがレポートされます。
手順7:不足している要件を追加して仕様モデルを更新する
要件を解析用のsldvexSpecFull
仕様モデルに追加します。
spec_model =“sldvexSpecFull”;open_system (spec_model);
(a)更新された仕様モデルでテストケ,スを生成する
sldvoptions
を使用してテストケ,スを生成します。
Opts = sldvoptions;选择。模式=“TestGeneration”;选择。ModelCoverageObjectives =“没有”;[~, files] = sldvrun(spec_model,opts,true);
(b)設計モデルでテストケ、スをシミュレ、トして、カバレッジレポ、トを生成する
設計モデル,仕様モデル,テスト変換サブシステムが含まれるsldvexDesignHarness
モデルを開きます。
design_model =“sldvexDesignHarness”;open_system (design_model);
sldvruntest
を使用してテストケ,スをシミュレ,トし,モデルカバレッジレポ,トを生成します。
cvots = sldvruntestopts;cvopts。coverageEnabled = true;[~, FinalCov] = sldvruntest(design_model,files.DataFile,cvopts);cvhtml (“FinalCov”, FinalCov);
カバレッジレポ,トには,設計モデルのフルカバレッジが達成されたことが示されます。
bdclose (“所有”);slreq.clear;