Edit the Blog Post Header component above this, then place your content here, then fill out the Related Articles section below, if possible. You should have at least one related article and ideally, all three.
Feel free to add supplementary content to the sidebar at right, but please retain the Twitter component (it can live at the bottom of your added content).
This text component can be edited or deleted as necessary.
Related articles only have an image (the squarer version of the banner) and a title. This text can be deleted. Place 1-3 related articles.
Amazonアプリストア向けのアプリを作成している開発者であれば、多くの場合、アプリ内課金(IAP)の3つのテストオプションを見ながら「どれを使えば良いのだろう」と考えた経験があるでしょう。 それぞれのツールは異なるテストシナリオを想定して設計されています。いつ何を使用するのが適切かを理解すれば、テストワークフローの効率が大幅に向上します。どの環境を設定するかで悩んだり、複雑に考えすぎたりすることもなくなります。
ここでは、テストの効率を最大限に高め、開発の適切な段階で問題を捕捉するために、各ツールを使用するべき場面について説明します。
Amazonの3つの主要なIAPテストツールはそれぞれ、開発プロセスの異なる段階とニーズに合わせて設計されています。
各ツールの詳細については、Amazon開発者ポータルのドキュメントを参照してください。
App Testerは、開発の最中に迅速なフィードバックループが必要な場合に使用します。App Testerでは、ローカルJSONファイルに保存された模擬データを使用してアプリのIAP API呼び出しに応答するため、アプリが受け取る購入レスポンスを開発者が厳密に制御できます。エッジテストケースやエラーシナリオのテストに最適です。
あらかじめ定義されたレスポンスを使用してすべてローカルで動作するため、イテレーションサイクルを迅速に回すことができます。ネットワーク呼び出しを待機したり、サービスのダウンタイムに対処したりする必要はありません。コードがIAPイベントを正しく処理するかどうかだけに集中できます。
App Testerの実行方法は単純です。詳細な手順はこちらに記載されています。ここでは、主な手順を簡単に説明します。
1. adbを通じてコンピューターをデバイスに接続します。
2. adb shell setpropを使用して、アプリがサンドボックスモードを使用するように設定します。
3. IAP用のJSONファイルをデバイスにコピーします。ファイルの形式とデバイス上の保存場所については、こちらの手順に従ってください。
4. AmazonアプリストアからApp Testerをインストールします。
6. テストするアプリの動作に合わせて、各呼び出しのIAP APIレスポンスを構成します。たとえば、Purchase APIのレスポンスをINVALID_SKUに設定して、そのレスポンスがアプリでどのように処理されるかをテストできます。
これらの手順が完了したら、アプリを実行してIAPフローのテストをすぐに開始できます。App TesterはIAP API呼び出しをインターセプトし、構成された模擬データと動作で応答します。
IAP用DevTestは、定期購入型アイテムの管理、商品カタログの統合、購入の復元など、実際のAmazonサービスが必要となる複雑なフローをテストする場合に使用します。
DevTestは、コードの変更を必要とせずに既存のIAP実装を使用して動作します。その機能は単純で、Appstore SDK APIの呼び出しを、本番サーバーの代わりにAmazonのテストサーバーにルーティングするだけです。
DevTestでは、アプリの申請に伴うオーバーヘッドを排除してイテレーションサイクルを迅速に進めながら、模擬的なレスポンスでは完全には模倣できないシナリオに対処することが可能です。たとえば、さまざまなデバイス構成やユーザー状態について繰り返しテストする場合に役立ちます。
DevTestの設定は、コードの統合よりも、登録とテスター管理が中心になります。ここでは、公式のワークフローから主な手順を説明します。
1. アプリの署名に使用する証明書を生成します。
openssl req -x509 -nodes -newkey ec -pkeyopt ec_paramgen_curve:secp384r1 -keyout key.pem -out cert.pem
2. 開発者コンソールの [IAP用Amazon Appstore DevTest] で、証明書データを使用してアプリを登録します。
3. テスターを追加します(最大10人)。テスターには、テスト中にアプリ内課金(IAP)を実行する権限が与えられます。
4. 登録に使用したものと同じ証明書でアプリに署名します。
5. アプリをビルドして署名付きAPKを生成します。
6. 署名付きAPKをテスターに配布し、adb installを実行してサイドロードします。
DevTestを設定したら、実際のサービスとやり取りする必要のあるシナリオに焦点を当てます。
DevTestを使用すると、迅速なイテレーションサイクルを維持しながら、実際のAmazonサービスを利用しなければ見つからない、統合に関する問題を把握できます。このツールは、開発中、複雑なフローや統合をテストしている段階にあって、承認とベータテスト向けに公開する準備はできていない場合に最適です。
LATは、公開前の実環境でのチェックとして機能します。本番環境でIAP実装とやり取りする実際のユーザーから、フィードバックを提供してもらう必要がある場合に使用します。これは、実際のユーザーの動作パターンでしか見つからない問題を把握するために役立ちます。ユーザーは開発中に予想しなかった形でアプリを操作することがあるものですが、LATを実行することで、そのようなシナリオを早期に検出できます。
LATでは、支払い処理、レシートの配信、コンテンツのアンロックなど、ユーザーエクスペリエンス全体が検証されます。重要な点として、 LATのテストセッション中はIAP購入を無料で実行でき、実際に課金されることはありません。
LATの設定には、アプリの申請プロセス全体とテスター管理が含まれます。ここでは、LATのワークフローから主な手順を説明します。
1. Amazon開発者コンソールで、アプリ一覧にまだアプリがない場合は作成します。
2. [ライブアプリテスト] に移動し、[新規ライブアプリテストを作成] をクリックします。
3. アプリビルドのAPKファイルをアップロードし、必須のメタデータフィールドを入力します。
4. IAPアイテムを追加し、[テスト用に申請] オプションをクリックして申請します([テスト・公開用に申請] ではありません)。これらのテスト用IAPアイテムには「テスト」というラベルが付き、LATの実行中のみ利用可能になります。
5. テスターを追加します。個別に追加するか、CSVをアップロードできます。
6. テストを送信します。準備ができると、テスターに招待Eメールとプッシュ通知が届きます。
7. テスターがアプリを使用している間、LATダッシュボードを通じてフィードバックをモニタリングして収集します。
実際のユーザーが使用することで初めて表面化するような、実世界で起こり得るシナリオに焦点を当てます。
LATでは本番環境のAmazonサービスと実際のユーザーアカウントが使用されるため、アプリにアクセスできるユーザーを制御しながら、可能な限り最も現実に近いテスト環境を得ることができます。テストが完了したら、テスト用IAPアイテムを公開ステータスに昇格させて、実際のリリースで使用できます。
各ツールにはそれぞれ適した場面があります。最も効果的なアプローチは、シンプルに進めていくことです。
App Tester ⇒ IAP用DevTest ⇒ LAT
これにより、早期に問題を捕捉して低いコストで修正でき、本番環境に近づくにつれて安定した動作が確立されます。
3つのテストフローをとおして包括的なログを収集します。それぞれのテストツールからは異なるフィードバックが提供されます。ログを相互に関連付けることで、単独のテストアプローチでは明らかにならないパターンを特定できる場合もあります。
ユーザーは、IAP機能が確実に動作することを期待しています。適切なアプローチでテストを実行すれば、適切な機能を提供することができます。