テスト作成エージェントを使用してブラウザテストを作成する場合、エージェントはプロンプトを使用してテストのアウトラインを作成し、Trainerでステップを構築します。トレーニングセッションを最大限に活用するには、効果的なブラウザテストプロンプトを作成するための以下のガイドラインに従ってください。
プロンプトを作成する前に
テストプロンプトを作成する前に、以下の準備ができていることを確認してください:
- 明確な目標 - そこに到達するためのステップだけでなく、検証したい結果を把握してください。例えば、「新規顧客がチェックアウトを完了できることを確認する」は、クリックのリストよりも有用です。
- テストデータ - プロンプトに含めるクレデンシャル、配送先住所、SKU、またはその他の入力データを準備してください。
- 正しい開始状態 - テストが期待する状態にアプリケーションがあることを確認してください。例:テストがログインフローから始まる場合、アプリがログアウトしていることを確認します。
テストをプランする
意図から始める
意図と全体的な結果に焦点を当てましょう。アプリが時間とともに変化すると、結果に到達するために必要なクリックが変わる可能性がありますが、mablが根本的な意図を理解していれば、自動修復を使用してインテリジェントに適応できます。
プロンプトを構成する
より長く複雑なテストプロンプトの場合は、指示を以下のセクションに整理してください:
- 前提条件 - 直接URLや初期データ設定などの開始状態。
- 失敗ケース - テストしたい無効な入力やエラー状態。意図しない状態変更を避けるため、成功ケースの前に実行してください。
- 成功ケース - メインワークフロー、または「ハッピーパス」。
- 検証 - テストの最後にアサートすべき内容。
- クリーンアップ - ログアウトなどのリセットアクションで、アプリを次のテストに備えた状態にします。
すべてのテストに5つのセクションすべてが必要なわけではありません。シンプルなログインテストでは、事前条件、成功ケース、検証のみが必要な場合もあります。しかし、有効な入力と無効な入力の両方をカバーするテストの場合、この構造によりエージェントが正しい順序でステップを実行できるようになります。
指示を記述してください
明確で個別の指示を提供する
手動テスターにワークフローの検証方法を伝えるように、テストケースを記述してください。テストの高レベルな目標が「絵筆を購入する」である場合、アプリとのやり取り方法について個別の手順を含めます:
「検索バーを使用してペイントブラシを検索します。最初に一致するアイテムを選択します。アイテムの詳細ページに複数の画像が表示されていることを確認します。次の配送先情報でチェックアウトプロセスを実行します:100 Maple St. Boston, MA 02111。」
テストがアプリの分かりにくい領域を操作する場合、詳細な手順が特に役立ちます。たとえば、テストで見つけにくいページに移動する必要がある場合は、テストのその部分に追加の詳細を含めてください:
「まず設定をクリックし、次にサブメニューで設定をクリックして、ユーザー設定に移動してください。」
エージェントは関連するフローを自動的にインポートします。特定のフローがインポートされる可能性を高めたい場合は、プロンプトでそのフローを指定してください。フローを実行する前に、必要な前提条件のステップを必ず示してください:
「連絡先情報を更新した後、フロー「Logout - App」を使用してください。」
書式設定
書式設定を使用すると、モデルがプロンプトをより適切に解釈できるようになります。長い指示のリストがある場合は、カンマ区切りのリストを使用するのではなく、リストの各項目を新しい行に配置することをお勧めします。
表示属性でターゲット要素を記述する
エージェントは、ステップを作成する際の主要なコンテキストソースとしてスクリーンショットを使用します。プロンプトでは、ターゲット要素を視覚的な外観や、テキストなどの目に見える属性に基づいて説明するようにしてください。例:
「フォームの右下にある青い「Submit」ボタンをクリックしてください。」
エージェントはページのHTMLにアクセスできません。aria-labelやdata-testidなどの非表示属性に基づいて要素を識別することはできません。
重要な検証を強調する
エージェントは、アプリが期待通りに動作していることを検証するために、自動的にアサーションを追加します。検証を指定しない場合、エージェントはモデルが重要だと判断した内容に基づいてアサーションを追加します。たとえば、カートにアイテムを追加した後、エージェントは通常、アイテムが正常に追加されたことをアサートします。
ページ上の特定の項目を検証する必要がある場合は、プロンプトに含めてください。例えば、注文確認ページの形式をテストで検証したい場合は、プロンプトで次のように指定します:
「注文確認にお客様の名前と選択された商品が含まれていることを確認する」
特殊なケースを処理する
関連リソースの使用方法を説明する
エージェントは、関連するデータテーブルやクレデンシャルを含む、すべてのテスト変数にアクセスできます。テストで特定の変数を使用したい場合は、それらを明示的に指定し、エージェントにどのように使用してほしいかを説明してください。
たとえば、ローカライゼーションを検証するためにテストをデータテーブルに関連付ける場合、テストプロンプトに次のような説明を含めることができます:
「データテーブル変数を使用してページヘッダーを検証します。ログインヘッダーを
{{@login}}で検証し、ユーザー設定ヘッダーを{{@user_settings}}で検証して、ユーザー設定ページのヘッダーを検証します。」
手動介入が必要なアクションを示す
エージェントは、ヘルプを求めずにタスクを完了しようとする傾向があります。テストに特定のサポートされていないステップタイプが必要であることがわかっている場合は、テストプロンプトにそのことを記載してください。たとえば、プロンプトに「ファイルアップロードの実行についてヘルプを求める」と追加すると、エージェントはいつ入力を求めるべきかを認識します。
ステップを手動で追加する場合は、要求されたアクションのみを実行してからエージェントを再起動してください。関連のない追加のステップを加えると、エージェントが予期しない動作をする可能性があります。
反復
アプリのプロンプトをカスタマイズする
エージェントがアプリとのやり取りで特定のミスをすることに気づいた場合は、プロンプトを改善して正しい動作に導いてください。
指示をより具体的にする - エージェントが正しい要素と対話していない場合は、関連する指示にコンテキストを追加してみてください。効果的な指示には、エージェントに実行してほしいアクション、適切な要素を見つけるためのコンテキスト、そして必要に応じて期待される動作を絞り込む制約が含まれます:
変更前:「青いボタンをクリックします。」
After: 「アプリケーションを送信」ボタンをクリックして確認画面に進みます。
ナビゲーションヒントを追加する - エージェントが正しいページに移動できない場合は、より明確な指示を与えてください:
「常にメニューを使用してナビゲートしてください。設定は環境設定オプションの下に隠れています。」
エージェントの動作を制約する - エージェントが意図しないステップを追加する場合は、「テストケースに記載されていないステップを追加しないでください」などの指示を含めてください。
既知の問題に関するメモセクションを追加する - プロンプトの最後に、過去の失敗パターンとその回避策を記録したメモセクションを含めてください。エージェントは計画時にこの情報を参照できます。例:
「注意:」
チェックアウトページのモーダルは、外側をクリックしても閉じません。代わりにEscキーを使用してください。検索バーは、送信するためにEnterキーを押す必要があります。入力時に自動検索は行われません。