会話テストでは、エンドツーエンドの会話フローをシミュレーションして、ダイアログタスクの評価やリグレッションを行うことができます。さまざまなビジネスシナリオをキャプチャするために、テストケースを作成し、さらに後の時点でそれらを実行してボットのパフォーマンスを検証することができます。
テストケース
テストケースは、会話フローをキャプチャする一連のテストステップで構成されています。テストステップはそれぞれ、ステップ番号、テスト入力、想定出力、実際の出力、テスト結果などの組み合わせになります。 ステップ#は、実行の順序を定義します。 テスト入力は、会話の中のユーザーメッセージ部分を表しています。 想定出力は、ボットから予測されるボットメッセージを表します。 実際の出力は、テスト実行中におけるボットの応答を表します。プラットフォームは、想定出力に対する実際の出力を評価して、テストステップが合格するかどうかを決定します。 テスト結果は、実際の出力が想定出力と同じであるかどうかを示します。テスト結果は、合格、不合格、不実施のいずれかです。
テストケースの作成
新しいテストケースは、ボットと会話を使用しながら、会話を記録することにより作成することができます。以下の手順で、新しいテストケースを作成します。 ステップ1:画面右下のアイコンをクリックして「ボットと会話」を起動します。「ボットと会話」は、プラットフォーム上のいずれのモジュールからでも起動できます。
ステップ2:「会話の記録」をクリックすると、テストケースの一部となるメッセージの記録が始まります。
ステップ3:関連するユーザーメッセージを入力して、ボットと対話します。
ステップ4:新しいテストケースを作成するには、「記録停止」をクリックしてから「テストケースの作成」をクリックします。
ステップ5:次画面において、「テストケース名」、「説明」、「タグ」など必要情報を追加して、「追加」をクリックします。
ステップ6:会話テストモジュールに移動して、追加したテストケースを実行するか、または同じ手順で別のテストケースを追加します。
タグ
タグは、テストケースを分類して整理するのに役立ちます。タグの追加は、テストケースの作成時に行うか、テストケースのプロパティの「一般設定」から行うかを選択できます。
一般設定
テストケースを作成した後、オーバーフローメニューから「一般設定」にアクセスできます。一般設定には、いくつかの編集可能なプロパティおよびわずかな表示専用のプロパティがあります。
以下のプロパティに編集するオプションがあります。
- テストケース名
- テストケースの説明
- テストケースのタグ
さらに、以下のプロパティを表示はできますが、編集はできません。
- テストケース作成の日時
- テストケースを作成したユーザーの名前
- 直近の更新日時
- テストケースを直近に更新したユーザーの名前
テストケースの実行
以下の手順で、テストケースを実行する方法、および実行に基づいた詳細な分析レポートを取得する方法について説明します。 ステップ1:実行したいテストケースを選択します。ステップ2:「テストケースの実行」をクリックして、実行を開始します。 ステップ3:次に、テストしたいボットのバージョンを選択する必要があります。選択したバージョンに基づいて、テストケースの一環としてのサービスコールを行うボットに対する有効な認証トークンがあることをご確認ください。 ステップ4:テストケースとステータスドッカーに対する最終結果の列から、進捗状況を監視することができます。 ステップ5:テストケースの実行が終わると、そのテストケースをクリックして実行履歴を表示することができます。 ステップ6:リストアップされたテスト実行のうちからいずれかをクリックすると、そのテスト実行の詳細が表示されます。 テストケースは非同期に実行されています。つまり、複数テストケースが選択されているときでも、実行は順番に行われています。テストの実行が完了する前に、実行をキャンセルするオプションがあります。 テストケースの実行が開始されると、1つ以上のテストステップが不合格であっても、プラットフォームはテストケースを実行し続けます。しかし、テストの実行が1つのテストステップで60秒以上停止したままになると、プラットフォームはタイムアウトし、実行を中止します。
テスト結果の解釈
すべてのテスト実行に対して、以下の詳細が保存されます。
- 実行完了の日時。
- テストケースがボット開発中のバージョン、あるいは公開済みのバージョンのどちらに対して実行しているかを示すバージョンタイプ。
- 実行の結果を示す「実行結果」です。テストステップが少なくとも1つ不合格であれば、テストケースは不合格として扱われます。
- 実行時間は、実行の合計時間を示します。
- テストステップの詳細は、合格、不合格、または未実行のステップの合計を表します。
- 実行エラーの詳細は、ユーザーがテストケースを中止したか、テストステップがエラーによりタイムアウトしたために、プラットフォームがテスト実行を完了できなかった場合にのみ表示されます。
制限事項
以下のモジュールは、現在のバージョンの会話テストではテストできません。
- デジタルフォーム
- コンテンツやコンテキスト変数を使用して動的に生成されるボットメッセージ。
ランナーツールのテスト
記録したテストケースをJSONとしてダウンロードするオプションがあります。このJSONファイルは、同じ会話でボットをテストするために、Kore Githubリポジトリで提供されているテストランナーで使用することができます。このツールは、ブランチをフォークして要件に応じて変更できるオープンソースコードであることに注意してください。キーポイント
- ボットとの会話中、いつでも記録を開始および停止することができます。
- 会話全体がテストケースとして保存されます。
- テストケースを分割してテストスイートを作成したい場合は、会話中に“discard all”コマンドを使用して、実現できます。“discard all”以前の会話をテストケースとして保存すると、その後の会話は別のテストケースとなります。両方のテストケースは、テストスイートとして1つのファイルに保存されます。必要に応じて、会話をいくつものテストケースに分割することができます。
- 会話全体はJSONファイルに格納されていますので、記録を終了したあとは、ダウンロードすることができます。
テストツールは、JSONファイルからのユーザー入力を用いてボットと会話し、ボットレスポンスと記録されたボットレスポンスを比較します。結果は、テスト結果スプレッドシートに記録され、開発者の入力、実際の結果と想定結果、テスト実行のステータス(合格または不合格)など、テスト実行の総合的レポートが提供されます。このスプレッドシートを使用して、不合格となったテストケースの報告、記録、再テストを行うことができます。テストランナーの詳細については、Kore Githubをご参照ください。