単体テスト
アプリケーションのルール設定が誤っていると、ケース処理に遅れが生じることがあります。 エラーが発生した場合、エンドユーザーへの仕事の再割り当てや、管理者によるケースの修正が必要になることもあります。 たとえば、フルフィルメント部門にルーティングする必要があるケースについて考えてみましょう。 そのケースが代わりに経理部門にルーティングされると、経理担当者がフルフィルメントにルーティングし直す必要があります。 経理担当者は仕事の再ルーティングに時間を費やし、フルフィルメント部門は待機することになります。 その結果、ケースの再割り当て中に顧客に対して遅れが発生します。
アサインメントの誤ったルーティングなどの設定エラーを防ぐには、デベロッパーがアプリケーションをテストします。 アプリケーションテストの最も基本的な形式は、個々のルールの単体テストです。 単体テストは、最小単位の機能の品質テストを可能にし、継続的なアプリケーションデリバリーをサポートします。 Pegaアプリケーションの場合、最小単位は個々のルールです。 単体テストの目的は、アプリケーションの各要素(たとえば、デシジョンテーブルやレポートディフィニッションなど)が想定通りに機能するかどうかを検証することです。 あるルールの設定エラーがアプリケーション内の別のルールに影響を及ぼすと、ケース処理に大幅な遅れが生じますが、単体テストを行うことでそのようなリスクを軽減できます。
単体テストを使って、設定エラーを削減してください。 たとえば、プロパティを評価するデシジョンツリーについて考えてみましょう。 次の図に示すように、アプリケーションでレポートディフィニッションをソースとするデータページからプロパティが読み取られます。 個々のルールを設定するときにそれらのルールを単体テストすると、それぞれのルールが想定通りに機能することがわかります。 デシジョンツリーが誤った結果を返す場合、データページに正しいデータが含まれていれば、そのエラーをデシジョンツリーに分離できます。
次の問題に答えて、理解度をチェックしましょう。
個々のルールの単体テスト
「Rule form」ツールバーのActions > Runをクリックすると、指定したテストデータを使ってルールをテストできます。
補足: バイナリファイルルールなど一部のルール タイプに対しては、Pegaは単体テストのオプションを提供していません。 ルールの単体テストを実行できない場合、Runオプションは使用できません。
Run Ruleウィンドウの外観はルールのタイプによって異なるため、ルールを実行する方法はルールのタイプによって異なります。 ただし、一般的にルールはテストについて定義したテストページからデータを使って実行します。
ルールを実行すると、ルールレゾリューションが利用されます。 ルールの単体テストを実行するときに新しいバージョンのルールがある場合は、新しいバージョンのルールが実行されます。
自動テスト用の単体テストの記録
テストの実行後に、そのテストを再利用可能なテストケースに変換することもできます。そうすれば、テストをいつでも実行できるようになります。 テストケースは、ルールが想定通りの結果を返すかどうかを判定するために使う、1つまたは複数のテスト可能な条件を特定します。 再利用可能なテストケースを作成すると、継続的デリバリーモデルに対応でき、新しいルールや変更されたルールの影響を確認するためにルールを繰り返しテストする手段となります。 単体テストケースの使用方法についての詳細は、Pega Communityの記事「Understanding unit test cases」を参照してください。
ヒント: 保存されている単体テストをルールから実行することも、PegaUnitテストファシリティを使って単体テストを自動的に実行させることもできます。
テストケースを作成するには、「Run Rule」ウィンドウでテストを変換し、単体テストが成功したことを示す結果を定義します。 想定される結果はそれぞれ、1つ以上のテスト条件と各条件に対する期待される結果を記述するアサーションで構成されます。 テストケースは、ルール実行のさまざまな側面をテストするように複数のタイプのアサーションに対応しています。 テストケースで使用できるアサーションは、テストしたルールのタイプによって異なります。
補足: サポートされるアサーションのタイプとその用途の詳細な説明については、コミュニティ記事「Defining expected test results with assertions」を参照してください。
アサーションとその用途の例を次の表に示します。
評価タイプ | 利用目的 | 例 |
---|---|---|
プロパティ | 指定されたプロパティの値をテストします。 プロパティが定義されているページ、比較演算、比較する値が必要です。 | pxUrgencyWorkが10と等しい |
デシジョンの結果 | デシジョンルールによって返される値をテストします。 デシジョンルールで想定される結果が返されるために必要な各入力プロパティの値が必要です。 | 「Referred by employee」が「false」の場合、「RecruitingWB」を返す |
想定される実行時間 | ルールが許容時間内に実行されるかどうかをテストします。 比較演算と許容時間(秒)が必要です。 | 想定される実行時間は3秒以内である |
ページ | メモリー内でページの存在をテストします。 ページの名前と比較演算が必要です。 | ページ「D_CoursesList」にエラーがない |
想定される結果のセットを作成したら、テストケースの設定を保存します。 保存したテストケースには、ルールからアクセスできます。 ルールについて記録したすべてのテストケースと、各テストケースの最終実行時のステータスがリストに表示されます。
テストケースを再度実行し、失敗した場合は、結果を表示して、想定される結果を返さなかったアサーションを個別に特定します。 テストケースで想定される結果が返された場合は、緑色の「Passed」ステータスボタンが表示されます。
単体テストの設定に関するベストプラクティス
テストケースの保存
テストケースを保存するには、テストケースの格納用に設定されているルールセットへのアクセス権が必要です。 選択したルールセットがテストケースの格納用に設定されていない場合は、Pega Platformからエラーが返されます。 単体テストを記録する前に、システム管理者と連携して、テストケースを格納する適切なルールセットを確認してください。
テストケースは保守およびパッケージング用の専用のテストルールセットに保存します。 設定を簡単にするために、開発したアプリケーション上に構築されたアプリケーションを使って、テストケース専用に設計されたルールセットを含めてください。 開発したアプリケーションを本番環境にリリースする際は、テストケースを含めずにアプリケーションを移行できます。
テストケースの実行
Dev Studioの「Unit testing」ランディングページには、アプリケーションに定義されているすべてのテストケースと、各テストケースの最終実行時のステータスがリスト表示されます。 ランディングページでは、関連する1つまたは複数のテストケースから構成されるテストスイートも作成できます。 Pegaの単体テストスイートを使って、複数のテストケースを指定した順序で実行できます。
ヒント: Configure メニューでApplication > Quality > Automated Testing > Unit Testing を選択すると、ランディングページにアクセスできます。
次の問題に答えて、理解度をチェックしましょう。
If you are having problems with your training, please review the Pega Academy Support FAQs.