デシジョンルールの競合
競合テスト
デシジョンテーブルとデシジョンツリーの単体テストは、他のルールタイプと同じ機能を使用して実行できます。 デシジョンテーブルとデシジョンツリーのルールフォームには、競合と完全性をテストするための機能が備わっています。 これらのテストは、欠落している条件、または実行時にテストされない可能性のある条件を特定して、デシジョンルールの実行時に発生し得るギャップの特定に役立ちます。
競合の確認では、デシジョンルールが1つ以上の行またはブランチの使用を常に妨げているかどうかが特定されます。 「Show conflicts」では、不正な条件を確認します。 競合の原因となる行に警告が表示され、評価されない条件が示されます。 たとえば、デシジョンテーブルに300ドルを超える購入リクエストをテストする行が含まれているとします。 次の行は、500ドルを超える購入リクエストをテストします。 この場合、2番目の行は、条件が上の行に含まれているため、評価されることはありません。 競合のないデシジョンルールは一貫性があると言えます。
以下の画像は、デシジョンテーブルとデシジョンツリーの競合のテストを示しています。 このデシジョンテーブルでは、「Credit Score >1000」という条件は、先に評価される「900」という条件より大きいため、評価されないことが示されています。 このデシジョンツリーでは、「UnitPrice < USD25」は、条件「UnitPrice < USD50」が先に評価され、前の条件が含まれるため、到達されないことが示されています。
以下の画像の中央にある垂直線をスライドすると、デシジョンテーブルとデシジョンツリーの競合テストの比較を表示できます。
次の問題に答えて、理解度をチェックしましょう。
完全性テスト
により、条件が欠落しているデシジョンテーブルや分岐が足りないデシジョンツリーが特定されます。 このシステムは、元のデシジョンルールで欠落しているテストを示す行を追加します。 デシジョンルールで値のより詳細な評価が必要とされる場合は、返された結果を追加の行として追加できます。
以下の画像は、デシジョンテーブルとデシジョンツリーに対して、顧客レベルと顧客収益の2つのプロパティ値をテストする完全性テストを示しています。 顧客レベルプロパティは、ローカルリストとして設定され、ブロンズ、シルバー、ゴールドの3つの値が使用できます。 デシジョンテーブルとデシジョンツリーは両方とも、ブロンズ顧客レベルと3つの異なる収益しきい値をベースにした特定の割引率を適用するように設定されます。 Show completeness機能は、以下を確認するための行を追加します。
- 10000以下の収益しきい値。
- シルバーおよびゴールドの顧客レベル。
ユーザーは、提案された条件が必要かどうかを判断します。 以下の画像の中央にある垂直線をスライドすると、デシジョンテーブルとデシジョンツリーの完全性テストの比較を表示できます。
次の問題に答えて、理解度をチェックしましょう。