第5章 テストシナリオ

Red Hat Decision Manager のテストシナリオでは、ルール、モデル、およびイベントの機能を実稼働環境にデプロイする前に検証できます。テストシナリオでは、ファクトまたはプロジェクトモデルのインスタンスと似ている条件のデータを使用します。このデータは指定のルールセットと照合され、想定された結果が実際の結果と一致するとテストに成功します。想定された結果が実際の結果と一致しない場合はテストに失敗します。

テストシナリオをすべて実行した後、シナリオの状態は Reporting パネルに報告されます。

図5.1 速度テストシナリオ画面

Speed test Scenario screen

テストシナリオは、1 度に 1 回またはグループ単位で実行できます。グループの実行では、1 つのパッケージのすべてのシナリオが対象になります。テストシナリオは独立したものであり、1 つのシナリオが他のシナリオを変更したり、影響を与えたりすることはありません。

5.1. 制限速度シナリオのテスト

スピード違反のガイド付きデシジョンテーブルを作成したときに指定したデータを使用して制限速度のシナリオをテストします。

前提条件

  • Driver department traffic violations プロジェクトが作成されている必要があります。
  • Violation および Driver データオブジェクトが作成されている必要があります。
  • スピード違反のガイド付きデシジョンテーブルが作成されている必要があります。

手順

  1. Decision Central にログインします。 MenuDesignProjects をクリックした後、Driver department traffic violations をクリックします。
  2. ProjectsCreate New AssetTest Scenario をクリックします。
  3. Create new Test Scenario window ウィザードで以下の値を入力します。

    1. Test Scenario: Speed limit 10-20.
    2. Package: com.myteam.driverdepartmenttrafficviolations を選択
  4. OK をクリックします。
  5. +GIVEN をクリックして New input ウィンドウを開きます。
  6. Insert a new fact プルダウンメニューで Violation を選択します。
  7. Fact name フィールドに violation と入力し、Add をクリックします。
  8. Insert 'Violation'[violation] の下にある Add a field をクリックして Choose a field to add ウインドウを開きます。
  9. Choose a field to add プルダウンメニューで speedLimit を選択し、OK をクリックします。
  10. 6191 をクリックした後、speedLimit の横にある Literal value をクリックします。
  11. Field value ウインドウの Literal value をクリックした後、speedLimit フィールドに 40 を入力します。
  12. Insert 'Violation'[violation] をクリックし、Choose a field to add ウインドウの Choose a field to add プルダウンメニューで type を選択し、OK をクリックします。
  13. 6191 をクリックした後、Literal value の横にある Literal value をクリックします。
  14. type フィールドに Speed と入力します。
  15. Insert 'Violation'[violation] をクリックし、Choose a field to add プルダウンメニューで actualSpeed を選択し、OK をクリックします。
  16. 6191 をクリックした後、Literal value の横にある Literal value をクリックします。
  17. actualSpeed フィールドに 55 と入力します。
  18. +Expect をクリックして New expectation ウインドウを開きます。
  19. Rule プルダウンメニューを展開して Row 1 SpeedViolationRule を選択し、OK をクリックします。
  20. +GIVEN をクリックして New input ウインドウを開き、Activate rule flow group フィールドに trafficViolation と入力し、Add をクリックします。
  21. +Expect をクリックして New expectation ウインドウを開き、Fact value: violation の横にある Add をクリックします。
  22. Violation 'violation' has values: をクリックし、 Choose a field to add ウインドウを開きます。
  23. Choose a field to add プルダウンメニューで fineAmount を選択し、OK をクリックします。
  24. fineAmount: equals フィールドに 100.0 と入力します。
  25. Violation 'violation' has values: をクリックし、 Choose a field to add ウインドウを開きます。
  26. Choose a field to add プルダウンメニューで points を選択し、OK をクリックします。
  27. points: equals フィールドに 1 を入力します。
  28. Save をクリックした後、Save をクリックして変更を確認します。
  29. Run scenario をクリックします。

    図5.2 速度テストの結果画面

    Speed test results screen

5.2. 運転免許停止シナリオのテスト

Driver License Suspension のルールおよびアクションを設定したときに指定したデータを使用して運転免許停止シナリオをテストします。

前提条件

  • Driver department traffic violations プロジェクトが作成されている必要があります。
  • Violation および Driver データオブジェクトが作成されている必要があります。
  • Driver License Suspension のルールおよびアクションが設定されている必要があります。

手順

  1. Decision Central にログインします。 MenuDesignProjects をクリックした後、Driver department traffic violations をクリックします。
  2. Create New AssetTest Scenario をクリックします。
  3. Create new Test Scenario window ウィザードで以下の値を入力します。

    1. Test Scenario: Suspend due to total points.
    2. Package: com.myteam.driverdepartmenttrafficviolations を選択
  4. OK をクリックします。
  5. +GIVEN をクリックして New input ウィンドウを開きます。
  6. Insert a new fact プルダウンメニューで Driver を選択します。
  7. Fact name フィールドに driver と入力し、Add をクリックします。
  8. 'Driver'[driver] の下にある Add a field をクリックして Choose a field to add ウインドウを開きます。
  9. Choose a field to add プルダウンメニューで totalPoints を選択し、OK をクリックします。
  10. totalPoints の横にある 6191 をクリックして Literal value をクリックした後、totalPoints フィールドに 10 を入力します。
  11. +GIVEN をクリックして New input ウィンドウを開きます。
  12. Insert a new fact プルダウンメニューで Violation を選択します。
  13. Fact name フィールドに violation と入力し、Add をクリックします。
  14. Insert 'Violation'[violation] の下にある Add a field をクリックして Choose a field to add ウインドウを開きます。
  15. Choose a field to add プルダウンメニューで points を選択し、OK をクリックします。
  16. 6191 をクリックした後、Literal value の横にある Literal value をクリックします。
  17. points フィールドに 10 を入力します。
  18. +Expect をクリックして New expectation ウインドウを開きます。
  19. Rule プルダウンメニューを展開して DriverLicenseSuspensionRule を選択し、OK をクリックします。
  20. +GIVEN をクリックして New input ウインドウを開き、Activate rule flow group フィールドに trafficViolation と入力し、Add をクリックします。
  21. +Expect をクリックして New expectation ウインドウを開き、Fact value: driver の横にある Add をクリックします。
  22. Driver 'driver' has values: をクリックし、 Choose a field to add ウインドウを開きます。
  23. Choose a field to add プルダウンメニューで state を選択し、OK をクリックします。
  24. state: equals フィールドに suspend と入力します。
  25. Save をクリックした後、Save をクリックして変更を確認します。
  26. Run scenario をクリックします。

    結果

    ルールが実行され、点数の合計が >= 20 であるため、運転者の運転免許が停止となります。

    図5.3 停止テストの結果画面

    Suspension test results screen

5.3. 複数違反シナリオのテスト

Suspend due to total points アセットをコピーおよび編集し、Driver License Suspension ルールおよびアクションの設定時に指定したデータを使用して複数の違反行為を行ったドライバーの運転免許停止シナリオを作成します。

前提条件

  • Driver department traffic violations プロジェクトが作成されている必要があります。
  • Violation および Driver データオブジェクトが作成されている必要があります。
  • 運転免許停止のルールおよびアクションが設定されている必要があります。

手順

  1. Decision Central にログインします。 MenuDesignProjects をクリックした後、Driver department traffic violations をクリックします。
  2. Suspend due to total pointsCopy をクリックし、New Asset Name フィールドに Suspend due to multiple violations を入力して Make a Copy をクリックします。

    図5.4 Make a copy ウインドウ

    Making a copy panel
  3. SpacemyteamDriver department traffic violations をクリックした後、Suspend due to multiple violations アセットを選択します。
  4. +GIVEN をクリックして New input ウィンドウを開きます。
  5. Insert a new fact プルダウンメニューで Violation を選択します。
  6. Fact name フィールドに violation2 と入力し、Add をクリックします。
  7. points の横にある 6191 をクリックし、Literal value をクリックした後、pointsviolation2 フィールドに 5 を入力します。
  8. totalPoints の値を 10 から 5 に変更します。
  9. Save をクリックした後、Save をクリックして変更を確認します。
  10. Run scenario をクリックします。

    図5.5 停止テストの結果画面

    Suspension test results screen