テストケース

組み込みのテスト機能を使用すると、バグを発見して回帰を防ぐことができます。エージェントをテストするには、シミュレータを使用してテストケースを作成して、ゴールデン テストケースを定義し、その後、必要に応じてテストケースを実行します。テスト実行では、テストケースで定義されたエンドユーザー入力に対して、エージェントのレスポンスが変更されていないことを確認します。

以下の手順ではコンソールの使用方法を紹介しますが、API も同じ機能を備えています。

シミュレータの設定

最初にシミュレータを開くときは、エージェント環境またはフローのバージョンと有効なフローを選択する必要があります。ほとんどの場合、下書き環境とデフォルトの開始フローを使用する必要があります。

また、Webhook 切り替えボタンを使用すると、Webhook 呼び出しを随時、有効または無効にできます。Webhook の無効化は、テストケースを定義する際に有用です。

シミュレータの入力

シミュレータを操作する場合は、エンドユーザー入力をテキストとして入力し、Enter キーを押すか、 ボタンをクリックします。書式なしテキストに加えて、 セレクタで代替の入力タイプを選択することもできます。

  • パラメータ: パラメータの値を挿入します。新しいパラメータを指定することも、既存のパラメータのプリセット値を指定することもできます。
  • イベント: イベントを呼び出します。
  • DTMF: テレフォニー インタラクション用にデュアルトーン マルチ周波数信号(Touch-Tone)入力を送信します。

テストケースを作成する

会話を作成する手順は、次のとおりです。

  1. Dialogflow CX Console を開きます。
  2. GCP プロジェクトを選択します。
  3. エージェントを選択します。
  4. [Test Agent] をクリックしてシミュレータを開きます。
  5. エージェントとチャットして、テスト対象の機能を網羅した会話を作成します。ターンごとに、トリガーされたインテント、エージェントのレスポンス、アクティブなページ、セッション パラメータに正しい値が設定されていることを確認します。

シミュレータのスクリーンショット

会話をテストケースとして保存する手順は、次のとおりです。

  1. [save ] ボタンをクリックします。
  2. テストケースの表示名を入力します。すべてのテストケースに一意の表示名が必要です。
  3. 必要に応じてタグ名を入力します。タグは、テストケースを整理するうえで有用です。すべてのタグの先頭は「#」にする必要があります。
  4. 必要に応じて、テストケースの目的を説明するメモを入力します。
  5. 必要に応じて、テストケースでトラッキングするパラメータを選択します。推奨パラメータのリストが提供されます。他のパラメータを入力してトラッキングすることもできます。トラッキング パラメータを選択すると、テストケースの実行時にパラメータ アサーションがチェックされます。パラメータ アサーションの詳細については、テストケースを実行するをご覧ください。
  6. [保存] をクリックして、テストケースを保存します。

テストケースを実行する

エージェントのすべてのテストケースを表示するには、[Manage] タブで [Test Cases] をクリックします。テストケースの表には、テスト名、タグ、最新のテスト時間と環境、最新のテスト結果が表示されます。

テストケースを実行する手順は、次のとおりです。

  1. 実行するテストケースを選択し、[Run] をクリックします。 または、[Run all test cases] をクリックします。
  2. テストケースを実行する環境を選択します。
  3. テストが開始され、タスクのステータスはタスクキューに表示されます。終了すると、テスト結果が更新されます。

テストの詳細な結果を表示するには、テストケースをクリックします。ゴールデン テストケース最後の実行の会話は並べて表示されます。

シミュレータのスクリーンショット

任意のエージェントの会話のターンをクリックすると、そのターンの詳細を確認できます。 テストエンジンは、次のタイプのデータを順番にチェックして、テスト結果を評価します。

  • エージェント ダイアログ:

    会話の各ターンについて、ゴールデンと最後の実行との間でエージェントによる対話が比較されます。相違が認められる場合は警告が表示されます。エージェントによる対話は、エージェントが同一の状態であっても異なる場合が多いため、このような相違によってテストに合格することが妨げられることはありません。

  • 一致したインテント:

    テストに合格するには、同じインテントが各ターンで一致している必要があります。

  • 現在のページ:

    テストに合格するには、各ターンでアクティブなページが同じである必要があります。

  • セッション パラメータ:

    テストケースの作成時にトラッキング パラメータを追加した場合、テスト エンジンは対応するセッション パラメータを確認し、欠落しているパラメータや想定されないパラメータまたはパラメータ値の不一致があるとテストを失敗とします。

状況によっては、エージェントの更新によりテストケースで想定した失敗が発生する可能性があります。最後の実行の会話に想定された変更が反映されたら、[Save as golden] をクリックしてゴールデン テストケースを上書きできます。

テストケースを編集する

テストケースを編集するには、[テストケース] テーブルからテストケースを選択し、テストケース名の横にある編集アイコン をクリックします。[テストケースのアップデート] ダイアログが表示されます。

テストケースのメタデータと設定を編集するには、[設定] タブをクリックします。

  1. [Test case name]、[Tags]、[Note] の各フィールドを編集できます。または新しいトラッキング パラメータを追加することもできます。

  2. [保存] をクリックします。

テストケースのユーザー入力を編集するには、[ユーザー入力] タブをクリックします。

  1. JSON 形式のユーザー入力を追加、削除、編集できます。

  2. [確認] をクリックします。自動のテスト実行が開始され、テスト実行が完了すると更新された会話が表示されます。

  3. [保存] をクリックして元のゴールデン テストケースを上書きするか、[名前を付けて保存] をクリックして変更を加えた新しいテストケースを作成します。

テスト カバレッジを表示する

すべてのテストケースのテスト カバレッジ レポートを表示するには、[Coverage] をクリックします。

[Coverage] ページには、次のタブが表示されます。

  • トランジション カバレッジは、テストケースによって実行される移行ターゲットがあるすべての状態ハンドラ(ルートグループを除く)を対象に決定されます。ソースフロー/ページおよび遷移ターゲット フロー/ページが表で表示されます。

  • インテント カバレッジは、テストケースで一致したすべてのインテントを対象に決定されます。

  • ルートグループ カバレッジは、テストケースに一致するすべてのルートグループを対象に決定されます。

テストケースをインポートおよびエクスポートする

テストケースをエクスポートする手順は、次のとおりです。

  1. テストケースを選択し、[Export] をクリックするか、[Export all test cases] をクリックします。
  2. [Download to local file] をクリックするか、Cloud Storage バケット URI を入力して、[Export to Google Cloud Storage] をクリックします。

テストケースをインポートする場合、Dialogflow は常にターゲット エージェントの新しいテストケースを作成します。既存のテストケースは上書きしません。テストケースをインポートする手順は、次のとおりです。

  1. [インポート] をクリックします。
  2. ローカル ファイルを選択するか、Cloud Storage バケットの URI を指定します。