第4章 テストシナリオ
Red Hat Decision Manager のテストシナリオでは、ビジネスルールを実稼働環境にデプロイする前に、ビジネスルールとビジネスルールデータの機能 (ルールベースのテストシナリオの場合)、および DMN モデルの機能 (DMN ベースのテストシナリオの場合) を検証できます。このテストシナリオでは、プロジェクトのデータを使用して、指定した条件と、定義した 1 つ以上のビジネスルールで想定される結果を設定できます。シナリオを実行する際は、想定した結果と、ルールのインスタンスから実際に得られた結果を比較します。想定される結果が実際の結果と一致すると、テストは成功します。想定された結果が実際の結果と一致しないと、テストは失敗します。
Red Hat Decision Manager は現在、新規の テストシナリオ デザイナーと以前の テストシナリオ (レガシー) デザイナーの両方を含みます。デフォルトのデザイナー、新規のテストシナリオデザイナーで、ルールと DMN モデルのテストをサポートし、テストシナリオの全体的な使用感が改善されています。必要に応じて、レガシーのテストシナリオをそのまま使用することができますが、ルールベースのテストシナリオしかサポートされません。
レガシーのテストシナリオデザイナーは、Red Hat Decision Manager バージョン 7.3.0 で非推奨になりました。今後の Red Hat Decision Manager リリースで削除される予定です。代わりに、新しいテストシナリオデザイナーを使用してください。
プロジェクトレベルや、特定のシナリオアセット内で利用可能なテストシナリオを実行するなど、複数の方法で定義済みのテストシナリオを実行できます。テストシナリオは独立しており、他のテストシナリオに影響を与えたり、テストシナリオを変更したりできません。テストシナリオは、Business Central のプロジェクト開発時にいつでも実行できます。テストシナリオを実行するために、デシジョンサービスをコンパイルまたはデプロイする必要はありません。
別のパッケージからのデータオブジェクトは、テストシナリオと同じプロジェクトパッケージにインポートできます。同じパッケージに含まれるアセットはデフォルトでインポートされます。必要なデータオブジェクトとテストシナリオを作成したら、テストシナリオデザイナーの Data Objects タブを使用して、必要なデータオブジェクトがすべてリストされていることを検証するか、アイテムを追加 して既存のデータオブジェクトをインポートします。
テストシナリオのドキュメント全体で、テストシナリオ および テストシナリオデザイナー に関する言及はすべて、レガシーバージョンと明示的に記載がない限り、新規バージョンを対象としています。
4.1. テストシナリオを使用した交通違反のテスト
Business Central のテストシナリオデザイナーを使用して DMN 意思決定要件図 (DRD) をテストし、交通違反プロジェクトのデシジョン論理を定義します。
図4.1 交通違反の例のテストシナリオ
前提条件
- Business Central で交通違反プロジェクトを作成している。
手順
- traffic-violation プロジェクトのホーム画面で Add Asset をクリックして Add Asset 画面を開きます。
Test Scenario をクリックして Create new Test Scenario ダイアログを開きます。
-
Test Scenario フィールドに
Violation Scenarios
と入力します。 -
Package リストから
com.myspace.traffic_violation
を選択します。 -
Source type で
DMN
を選択します。 - Choose DMN asset リストから DMN アセットへのパスを選択します。
- Ok をクリックして、Test Scenarios デザイナーで Violation Scenarios テストシナリオを開きます。
-
Test Scenario フィールドに
- Driver 列サブヘッダー下で、State、City、Age、および Name の値のセルを右クリックし、コンテキストメニューから Delete column を選択してそれらを削除します。
- Violation 列サブヘッダー下で Date と Code の値のセルを右クリックし、Delete column を選択してそれらを削除します。
以下の情報をテストシナリオの 1 行目に入力します。
-
Scenario description:
Above speed limit: 10km/h and 30 km/h
-
Points (Given 列ヘッダー下):
10
-
Type:
"speed"
-
Speed Limit:
100
-
Actual Speed:
120
-
Points:
3
-
Amount:
500
Should the driver be suspended?:
"No"
1 行目を右クリックし、Insert row below を選択して新たな行を追加します。
-
Scenario description:
以下の情報をテストシナリオの 2 行目に入力します。
-
Scenario description:
Above speed limit: more than 30 km/h
-
Points (Given 列ヘッダー下):
10
-
Type:
"speed"
-
Speed Limit:
100
-
Actual Speed:
150
-
Points:
7
-
Amount:
1000
Should the driver be suspended?:
"No"
2 行目を右クリックし、Insert row below を選択して新たな行を追加します。
-
Scenario description:
以下の情報をテストシナリオの 3 行目に入力します。
-
Scenario description:
Parking violation
-
Points (Given 列ヘッダー下):
10
-
Type:
"parking"
- Speed Limit: 空白のまま
- Actual Speed: 空白のまま
-
Points:
1
-
Amount:
100
Should the driver be suspended?:
"No"
3 行目を右クリックし、Insert row below を選択して新たな行を追加します。
-
Scenario description:
以下の情報をテストシナリオの 4 行目に入力します。
-
Scenario description:
DUI violation
-
Points (Given 列ヘッダー下):
10
-
Type:
"driving under the influence"
- Speed Limit: 空白のまま
- Actual Speed: 空白のまま
-
Points:
5
-
Amount:
1000
Should the driver be suspended?:
"No"
4 行目を右クリックし、Insert row below を選択して新たな行を追加します。
-
Scenario description:
以下の情報をテストシナリオの 5 行目に入力します。
-
Scenario description:
Driver suspended
-
Points (Given 列ヘッダー下):
15
-
Type:
"speed"
-
Speed Limit:
100
-
Actual Speed:
140
-
Points:
7
-
Amount:
1000
-
Should the driver be suspended?:
"Yes"
-
Scenario description:
- Save をクリックします。
再生 ボタン をクリックして、テストシナリオが合格するかどうかを確認します。
図4.2 交通違反の例のテストシナリオ実行結果
失敗した場合は、エラーを修正してサイドテストシナリオを実行します。