プログラムで要件をテ​ストケースにリンクし​、モデルに要件が関連​付けられているかどう​かを確認する方法はあ​りますか?

조회 수: 3 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2025년 8월 28일
답변: MathWorks Support Team 2025년 8월 28일

MATLAB 2021b の Requirement Toolbox でコマンドライン API を使いたいのですが、以下の点を知りたいです。
1. プログラムで要件をテストケースにリンクする方法
2. モデルに要件が関連付けられているかどうかをプログラムで確認する方法

채택된 답변

MathWorks Support Team
MathWorks Support Team 2025년 8월 28일
要件をテストケースにプログラムでリンクする方法は?
Requirement Toolbox の関数 "find" 機能を使用すると、要件、参照、リンクセットを検索できます。詳細については、以下のリンクをご覧ください。
1. プロジェクトを開きます。 MATLAB® コマンド プロンプトで、次のように入力します。
>> slreqCCProjectStart
これにより、サンプルモデル、要件ドキュメント、およびテストファイルを含むプロジェクトがポップアップ表示されます。
2. コントローラーモデル、テストファイル、要件を開きます。 コマンドプロンプトで、次のように入力します。
>> open_system("models/crs_controller")
>> sltest.testmanager.load('DriverSwRequest_Tests.mldatx')
>> slreq.open('crs_req_func_spec')
3. 要件ファイルとテスト ファイルは、この例の目的でのみ変更します。
  プロジェクト内のほとんどの要件は、対応するテスト ケースに既にリンクされているため、この例では、1 つの要件とテスト ケースのペアの既存のリンクを削除し、プログラムでリンクを再作成しようとします。
  • 要件インデックス 1.6 スイッチ検出の有効化を見つけてクリックします。
  • 右側のパネルの「リンク - 検証者」セクションで、既存の「有効化ボタン」リンクを削除します。
  • これで、要件 1.6 にはテスト ケースが関連付けられていないため、コマンド ラインを使用してリンクを再作成する準備が整いました。
4. 要件をリンクするテストケースを定義します。コマンドラインで、次のように入力します。
>> tf = sltest.testmanager.load('DriverSwRequest_Tests.mldatx');
>> ts = getTestSuites(tf);
>> tc = getTestCaseByName(ts,'Enable button');
これは、テストファイルをロードし、テストスイートとテストケースを取得するためのものです。
5. 要件を定義します。コマンドラインで、次のように入力します。
>> reqSet = slreq.load('crs_req_func_spec');
>> requirement = reqSet.find('Type', 'Requirement', 'SID', 9);
6. linkを作成します。コマンドラインで、次のように入力します。
>> link = slreq.createLink(tc, requirement);
このコマンドを実行すると、「要件エディタ」の要件 1.6 の「リンク検証者」セクション (つまり、スイッチ検出を有効にする) の下に、「有効化ボタン」リンクがあることがわかります。
7. テストケースを実行し、検証を更新し、検証結果を取得します。コマンドラインで、次のように入力します。
>> ro = sltest.testmanager.run;
>> reqSet.updateVerificationStatus
>> status = reqSet.getVerificationStatus;
また、要件エディターで「検証ステータス」がオンになっている場合、検証結果をバーとして視覚化することもできます。
モデルに要件が関連付けられているかどうかをプログラムで確認する方法は?
% open up an example project
slreqCCProjectStart
% open up model
modelName = 'crs_controller';
open_system(modelName);
% define the variable 
isLinkToRequirement = false;
% find whether any links are associated with the model
links = slreq.find('Type', 'Link');
% Because links can be associated to test case, other model files etc, we need to go through each link's destination label and check 
for i=1:numel(links)
   if strcmp(links(i).destination.domain, 'linktype_rmi_slreq')
     isLinkToRequirement = true; 
     break
   end
end

추가 답변 (0개)

태그

아직 태그를 입력하지 않았습니다.

제품


릴리스

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!