スキルのテスト
このドキュメントでは、作成中のAlexaスキルをテストする手順について説明します。
スキルをテストする方法
開発中の新しいスキルをテストする方法はいくつかあります。
- 発話プロファイラー - カスタム対話モデルをテストするには、発話プロファイラーを使用します。サービスのコードを作成する前に、発話を入力し、インテントやスロットがどのように解決されるかを確認できます。
- スキルシミュレーター - 開発者コンソールのテストページにあるシミュレーターを使用します。シミュレーターでは、デバイスを使用しなくてもほぼすべてのAlexa Skills Kit機能にアクセスできます。Alexaとの対話には、音声またはテキストを使用します。
- Alexaデバイス - Alexa搭載デバイスでテストします。
- Alexaアプリ - Android/iOS用Alexaアプリでスキルをテストできます。
- ASKコマンドラインインターフェース(CLI)- コマンドラインからASK CLIを使用してスキルをテストします。invoke-skillやsimulate-skillといったASK CLIコマンドを使ってスキルをテストできます。コマンドラインからスキルを管理する方法の詳細については、ASK CLIクイックスタートを参照してください。
- スキル管理API - スキル管理APIのスキルのテスト機能を使用します。
スキルの最小コンフィギュレーション
スキルのテストを有効にするには、スキルに含まれる対話モデルに必要な最小コンフィギュレーション要件を満たすよう設定します。これらの設定は、ビルドページで設定できます。
カスタムモデルの最小コンフィギュレーション
正常にモデルを保存してビルドできたら、発話プロファイラーを使用してカスタム対話モデルをテストできます。このテスト用にエンドポイントのコンフィギュレーションを行う必要はありません。
完全なエンドツーエンドのテストを行う場合は、以下のコンフィギュレーションを設定します。
セクション | 要件 |
---|---|
カスタム>対話モデル |
対話モデルには、以下を含める必要があります。
モデルはエラーなしでビルドする必要があります。 |
カスタム>エンドポイント |
有効なAWS Lambda ARNまたはHTTPSエンドポイントを指定します。
|
スキルのテスト要件に応じて、ビルドページの適切なセクションに入力します。
- カスタム>インターフェース: スキルがデバイスインターフェースを使用する場合は、ビルドページで有効にします。
-
アカウントリンク: スキルがアカウントリンクを使用する場合、ここで設定します。
認証を必要としないインテントのテストには、完全なアカウントリンクのコンフィギュレーションは必要ありません。ただし、
LinkAccountCard
を返すか、認証の必要なインテントをテストする場合は必要となります。 - アクセス権限: 権限(デバイスアドレスAPIの権限など)を使用するスキルの場合、ここで有効にします。
プリビルドモデルの最小コンフィギュレーション
モデル | 必須フィールド |
---|---|
フラッシュブリーフィング |
|
スマートホーム |
デバイス制御クラウド用に設定したアカウントと、そのアカウントで検出可能なデバイスも必要となります。 |
ビデオ |
|
スキルコードをデプロイする
スキルをテストするには、開発者コンソールでスキルに最低限必要なデータを設定し、クラウドベースのサービス用にコードをデプロイする必要があります。サービスをデプロイする方法は、スキルに使用する対話モデルによって異なります。
モデル | スキルサービスのホスティングオプション |
---|---|
カスタム |
以下のいずれかの方法があります。
|
フラッシュブリーフィング |
なし: サービスはRSSまたはJSONフィードです。詳細については、フラッシュブリーフィングスキルAPIフィードのリファレンスを参照してください。 |
スマートホーム |
AWS Lambda関数を使用する必要があります。スマートホームスキルの作成手順のLambda関数を追加するを参照してください。 |
ビデオ |
AWS Lambda関数を使用する必要があります。ビデオスキルの作成手順のLambda関数を追加するを参照してください。 |
開発者コンソールでスキルをテストする
テストページにはシミュレーターがあり、デバイスなしでもスキルをテストすることができます。スキルをテストする準備ができたら、テストページに移動します。
-
このスキルでテストを有効にしていない場合、このスキルでは、テストは無効になっていますオプションが表示されていることを確認します。このとき、ドロップダウンリストは非公開に設定されています。このリストから、スキルのテストステージを選択します。開発中、公開中のいずれかです。
-
テストが有効な場合、スキルテストが有効になっているステージ:リストから、開発中、公開中のいずれかのスキルテストステージを選択します。非公開を選択すると、テストは無効になります。
スキルのテストで一度に選択できるステージは1つだけです。たとえば、公開中のスキルでテストを有効にすると、それに応じて開発中のスキルではテストが無効になります。また、公開中のスキルは、開発者アカウントでサインインした開発者コンソール、SMAPI、ASK CLI、デバイスで引き続き利用できます。開発者コンソールで公開中スキルのテストを有効にすると、ページは公開中ステージのURLにリダイレクトされ、セッションとコンテキスト情報がすべてリセットされます。保持しておきたい情報がある場合は、保存してからテストを有効にします。このアクティビティにより新しいユーザーIDが生成されるため、初回起動時のユーザーエクスペリエンスをシミュレートできます。ライブバージョンのLambdaを使って公開中のスキルのコンフィギュレーションを行っている場合、このバージョンがテストに使用されます。
テストページを使用して、スキルのほぼすべての機能(マルチターンの対話、プログレッシブ応答(制限あり)、エンティティ解決など)をテストできます。
ページの左側に、3種類のテスト用タブが表示されます。
タブ | 説明 |
---|---|
Alexaシミュレーター (カスタムスキルとスマートホームスキル) |
シミュレーターを使用すると、テキスト、音声のいずれかでカスタムスキルやスマートホームスキルと対話できます。シミュレーターでもデバイスと同様にスキルのセッションが維持されるため、ダイアログフローのテストが可能です。また、シミュレーターはスキルがAlexaアプリに返すカードも、デバイスと同じように送信します。スキルが複数の言語をサポートする場合、ドロップダウンリストからテストする言語を選択します。 詳細については後述のセクションを参照してください。 |
JSONエディター (カスタムスキルのみ) |
JSONエディターを使うと、JSONリクエストを直接入力して、スキルが返すJSON応答を確認できます。 このオプションではスキルセッションは維持されません。これは、LambdaコンソールでJSONリクエストをテストする場合と非常によく似ています。 デバイスの画面とデバイスのログのオプションは、JSONエディターではサポートされません。 スキルが地域固有のエンドポイントを複数サポートする場合、ページの末尾近くにあるリストからテストするエンドポイントを選択できます。 |
音声と語調 |
プレーンテキストまたはSSMLを入力して、そのテキストをAlexaがどう読み上げるかを聞くことができます。下部のリストから聞きたい言語を選択します。このリストには、利用可能なすべての言語が表示されます。そのスキルがサポートしているかどうかは関係ありません。 |
カスタムスキルとスマートホームスキルに対してAlexaシミュレーターを使用する
シミュレーターとは、テキストまたは音声で対話できます。スキルセッションは、デバイスのようなタイムアウトをしないことに注意してください。これは、テスト中、応答の入力に時間をかけられるようにするためです。スキルのセッションが開いたままの場合、「アレクサ、止めて」と言って終了することができます。
スキルI/Oを有効にすると、会話のターンごとにスキルに送信されるJSONとAlexaに返されるJSONを確認できます。JSONは、カスタムスキルでのみ使用できます。吹き出しをクリックすると、そのターンに関連するJSONを確認できます。
デバイスの画面を有効にすると、スキルが画面付きのデバイスにおおよそでどう表示されるかを確認できます。シミュレーターでAPLスキルをテストする方法の詳細については、開発者コンソールのシミュレーターでAPLスキルをテストするを参照してください。
デバイスのログを有効にすると、スキルの対話中にAlexaに送信されるイベントと、デバイスに送信されるディレクティブを確認できます。インテントのデバッグを参照してください。
Alexaスマートホーム(ベータ)を有効にすると、スキルがAlexaイベントゲートウェイに送信するChangeReport
イベントを確認できます。このオプションは、スマートホームスキルでのみ利用できます。詳細については、状態および変更レポートについておよびスマートホームスキルのテストとデバッグを参照してください。
シミュレーターを使用してカスタムスキルをテストする場合、context.System.device.supportedInterfaces
プロパティにはカスタム>インターフェースページで選択したインターフェースが反映されます。たとえば、AudioPlayerとAlexa Presentation Languageを選択した場合、シミュレーターからスキルに送信されるリクエストには次のcontext
オブジェクトが含まれ、そのリクエストがこれらのインターフェースの両方をサポートするデバイスから受け取ったことがわかります(簡潔にするため、すべてのプロパティは記載していません)。
{
"context": {
"System": {
"device": {
"deviceId": "amzn1.ask.device.1",
"supportedInterfaces": {
"AudioPlayer": {},
"Alexa.Presentation.APL": {
"runtime": {
"maxVersion": "1.5"
}
}
}
}
}
}
}
さまざまな画面付きデバイスでのテスト
シミュレーターを使用して、画面付きのデバイスにコンテンツを表示するスキルをテストできます。詳細については、開発者コンソールのシミュレーターでAPLスキルをテストするを参照してください。
Alexaシミュレーターの制限事項
以下の制限事項は、Alexaシミュレータータブでの音声およびテキストのテストに適用されます。
機能 | Alexaシミュレーターのサポート範囲 |
---|---|
Alexaシミュレーターにはオーディオ再生機能はありません。その代わり、スキルI/Oセクションにスキルに送信される 再生機能がないため、再生中にイベントによってトリガーされる |
|
|
テスト発話を入力するときに、「2019/4/15」といった日付の省略表記は使用しないでください。 略さずに話し言葉で日付を書きます。 たとえば、次のフレーズを使うと、有効な日付が日付スロットに生成されます。
「2019-04-15」、「2019/4/15」、「4/15」などの入力値は正しく日付に解決されません。
|
デバイスアドレスAPIを使用すると、ユーザーのデバイスに関連付けられた所在地情報をリクエストできます。Alexaシミュレーターを使ったテスト時に、スキルはデバイスアドレスAPIを呼び出してエラーのない応答を受け取ることができます。ユーザーがデバイスアドレスの権限を付与しなかった場合のフローをテストすることもできます。 ただし、応答の住所フィールドは テストページをAlexaアプリの完全なデバイスとして設定することはできません。 |
|
|
|
Alexaシミュレーターはフラッシュブリーフィングスキルのテストをサポートしていません。 |
|
位置情報サービスを使用すると、スキルからユーザーのデバイスに関連付けられた動的な位置情報をリクエストできます。Alexaシミュレーターを使用してテストしている場合、ユーザーが位置情報サービスを許可していないときのフローをテストできます。 ただし、シミュレーターはユーザーがアクセスを許可しているケースはテストできません。 テストページをAlexaアプリの完全なデバイスとして設定することはできません。 |
|
Alexaは、ユーザーがリモコンなどの機器を操作したときに、このリクエストをスキルに送信します。Alexaシミュレーターではこのリクエストをテストできません。 |
|
シミュレーターでは、フル応答の準備ができると、プログレッシブ応答とフル応答が同じオーディオストリームで再生されます。つまり、プログレッシブ応答が聞こえてから、続けてフル応答が聞こえます。 |
|
シミュレーターは、スキルで想定されるリマインダーを提供しません。 |
|
シミュレーターでは、Alexaデバイスのように、対話の終了後にユーザーへの再プロンプトは行われません。 |
|
通常、Alexa設定APIを使用すると、ユーザーのAlexa設定からタイムゾーン、長さの単位、温度の単位を取得できます。ただし、Alexaシミュレーターで生成された |
|
スマートホームライブデバッガーはベータ版であり、予告なく変更されることがあります。詳細については、スマートホームスキルのテストとデバッグを参照してください。 |
|
Alexaシミュレーターにビデオ再生機能はありません。その代わり、スキルI/Oセクションにスキルから送信される |
|
Alexaシミュレーターは、Alexa.Presentation.HTMLインターフェースとAlexa Web API for Gamesのテストをサポートしていません。 |
|
キャラクターディスプレイ付きのデバイス(Echo Dot with clockなど) |
スキルはテストできますが、Alexaシミュレーターでは、キャラクターディスプレイで応答がどう表示されるかは確認できません。 |
インテントのデバッグ
Alexaシミュレーターでは、デバイスのログにJSON応答で返されたconsideredIntents
が表示されるため、Alexaによって候補に挙げられたが破棄されたインテントを確認できます。この情報を使用してインテントのデバッグを実行し、意図したインテントとスロットに発話を解決するようにモデルをトレーニングするために、追加のサンプルをどのように使用するか決めることができます。
開発者アカウントを使用してAlexa搭載デバイスでスキルをテストする
Alexa搭載デバイス(Amazon Echoなど)を使ってスキルをテストするには、Amazon開発者ポータルで開発者アカウントのサインアップに使用したのと同じメールアドレスでデバイスを登録する必要があります。デバイスのロケールが、スキルで使用可能なロケールのうち少なくとも1つと一致していることを確認します。ウェイクワードと呼び出し名を使用してスキルを呼び出すことができます。 「アレクサ、<呼び出し名>を開いて」
開発者アカウント以外のアカウントでデバイスのコンフィギュレーションが行われている場合は、デバイスをリセットしてから、開発者アカウントを使用して再登録します。詳細については、対象のデバイスのヘルプを参照してください。
デバイスのユーザーとして開発者アカウント以外のアカウントを再度追加する場合、[Household][echo_household]機能を使用して登録できます。(日本未対応)
Alexaアプリでテストする
もう1つのテストオプションとして、iOSまたはAndroidモバイルデバイスにインストールされたAlexaアプリを使用してスキルをテストする方法があります。
Alexaアプリのロケールが、スキルで利用可能なロケールのうち少なくとも1つと一致していることを確認します。たとえば、スキルがen-USロケールに対応している場合は、AlexaアプリをEnglish (United States)に設定します。
Alexaアプリのロケールを設定するには
- モバイルデバイスでAlexaアプリを開きます。
- その他>設定>このスマートフォンのAlexaに移動します。
- 言語で、スキルのロケールに合わせて言語を設定します。
関連トピック
カスタムスキル:
フラッシュブリーフィング:
スマートホーム:
ビデオ:
開発者コンソール: