本記事について
Amazon Developerの開発者コンソールがしばらく前に新しくなりました。それに伴い、開発時に行うテストのための設定方法や実施方法が変わっていますので、ここにメモしておきます。
#公式マニュアル(日本語版)のベータテストのページは、4/29時点でまだ修正されておらず、特にベータテストの設定で迷子になりました。よくよく見ると、ページの構造自体は変わっていないのでもっと早く見つけられても良かったはず・・・。
Alexaスキルのテスト方法について
恐らく、以下のような流れが一般的ではないか、と勝手に思っているため、その順で説明します。
- Lambdaファンクション内の単体テスト
- ファンクション内の関数などを対象にした単体テスト。
- Alexaスキル-Lambdaファンクションの結合テスト
- Alexaシミュレータを利用したテスト。
- IntentやSlotとの関連付けが正常に行われているかどうかや、Alexaスキルの発話を確認。
- Amazon Echo実機テスト(ベータテスト)
- Amazon Echoを紐づけているアカウントを限定して公開し、実機でテスト。
- 音声認識の精度や、ビルトインIntentの動作などを確認。
1. Lambdaファンクション内の単体テスト
適切にモジュール化し、Alexaスキルからの呼び出しに依存しない部分はこの段階でテストしましょう。実施方法については、特筆することはなく、各種のランタイムで一般的に実施されている方法で問題ないと思います。
2. Alexaスキル-Lambdaファンクションの結合テスト
開発者コンソールのテストのタブにて、Alexaスキルのシミュレータが利用できますので、こちらを活用し、Alexaスキル-Lambdaファンクションの連携についてテストしましょう。
以下が、テストタブを利用してテストを実施した画面です。
①に利用者の想定発話を入力することでテストを実施できます。上手くLambdaファンクションと連携ができていれば、文章の発音なども①の下部、および②にAlexaスキルの応答発話が記載されます。シミュレータでは実機のEchoがありませんが、応答部分の音声が出力されますので、意図通りの発話(発音やSSMLの設定など)を確認することが可能です。
Lambdaファンクションへ渡される入力JSONは③の部分に出力されており、準備したIntentや、その内部構造も確認することが可能です。入力を受けたLambdaファンクションからの応答が④に記載されますので、想定どおりの動作ができているか確認を行いましょう。
上手く動作しておらず、上記の情報で原因を特定できない場合は、Lambdaファンクションの実行ログ(CloudWatch Logs)を確認しましょう。
画面付きのデバイスを利用するスキルの場合は、さらに下部の「Echo Showの画面」に表示されるはず・・ですが利用したことがありませんので、説明は割愛。
3. Amazon Echo実機テスト(ベータテスト)
自己所有しているEchoやテストに協力していただける方のEchoにて開発中のスキルを有効化し、実機テストを行います。前提として、公開申請ができる状態までスキルの設定が完了していることが必要です。
#旧コンソールからしか有効化したことがなく、テストタブの方ばかり見に行ってしまって、かなり迷いました。
以下が設定の画面です。
公開タブ ⇒ 公開範囲 ⇒ ベータテスト を選択します。
ベータテストに利用するAmazon Echoを関連付けているアカウントのメールアドレスを追加し、「ベータテストを有効化」すると、スキルをベータテスターに限定して公開することができます。メールアドレス宛に、以下のような参加依頼メールが送付されます。自己所有の1台でのみテストを行う場合は、「ベータテスト管理者用Eメールアドレス」と「テスターのEメールアドレス」は同一のものでもOKです。
日本語環境(amazon.co.jp)へAmazon Echoを関連付けている場合は、赤い矢印のURLから承認すれば、インストールされます。現時点でのベータテスト期間は最長90日間で、それをすぎると自動で停止されます。(スキルのオーナー、ベータテスターにメールで以下のような通知が送られます。)
一度設定した後は、スキル一覧のアクションに「ベータテストの管理」の項目ができますので、こちらからも設定を変更可能です。ベータテストの状態を有効化した状態では、ステータスが「開発中」のスキルが動作する状態となっており、公開中のバージョンは動作していないはず・・・です。
#おわりに
開発環境もどんどん進化しており、本記事もすぐに陳腐化(というかマニュアルが更新?)されるかもしれませんので、最新の情報は随時ご確認ください。