開発プロセス全体を通して統合をテストする必要があります。開発段階でテストするには、「ライセンス テスター」 を利用して、このトピックで説明しているシナリオを実践することをおすすめします。ライセンス テスターを構成する手順については、アプリ ライセンスを使用したアプリ内課金のテスト をご覧ください。
ライセンス テスターには、次のような利点があります。
通常、Google Play Billing Library は、未署名で Google Play にアップロードされていないアプリに対してはブロックされます。ライセンス テスターはこのチェックを回避できます。つまり、デバッグ署名を持つデバッグビルドを使用しているアプリであっても、新しいバージョンのアプリをアップロードすることなく、テスト用にアプリをサイドローディングできます。ただし、パッケージ名は、Google Play 用に構成されたアプリのパッケージ名と一致する必要があります。また、Google アカウントは、Google Play Console アカウントのライセンス テスターでなければなりません。
ライセンス テスターは、購入に対して実際の課金が行われないテスト用支払い方法を利用できます。テスト用支払い方法は、支払いが承認されないなどの特定の状況のシミュレートにも使用します。購入フロー内に表示されるテスト用支払い方法を図 1 に示します。
ライセンス テスターは、定期購入の機能を迅速にテストする ことができます。
図 1. ライセンス テスターはテスト用支払い方法を使用できる
テスト購入プロセスに関する追加情報:
テスト購入では、実際の購入と同じアプリ購入フローを使用します。
テスト購入では、税金は計算されません。
Google Play の購入ダイアログの中央に、テスト購入であることを示す通知が表示されます。
購入を行っているアカウントは、購入のダイアログを展開することで確認できます。次の点にご注意ください。
テスト アカウントは、テスターの Android デバイス上に存在する必要があります。
デバイスに複数のアカウントがある場合、アプリをダウンロードしたアカウントで購入が行われます。
いずれのアカウントでもアプリをダウンロードしていない場合は、最初のアカウントで購入が行われます。
アプリを配信する前に、Google Play テストトラック を利用して、その他の検証を行うことができます。たとえば、テストトラックを利用して、QA チームに新しいリリースを評価してもらうこともできます。
テストトラックを使用すると、ユーザーは Google Play からアプリをインストールして、未公開のアプリのバージョンをテストできます。ユーザーは、Google Play 内のどの支払い方法を使用しても、実際の購入を行うことができます。
注: テストトラックでユーザーが購入を行うと、ユーザーがライセンス テスターでない限り、ユーザー アカウントに対して実際に課金されます。
テストトラックを使用して Google Play Billing Library 統合をテストするには、次の手順を実施します。
テストトラック にアプリを公開します。テストトラックにアプリを公開した後、テスターがアプリを利用できるまでに数時間かかることがあります。
各テスターはアプリのテストにオプトインする 必要があります。テスト用オプトイン URL には、テスター向けの注意事項とオプトイン確認のリンクが表示されます。
Android 1.6 以上を搭載するハードウェア デバイスであれば、統合をテストできます。ただし、Google Play アプリの最新バージョンがデバイスにインストールされている必要があります。Android 向けアプリの開発に使用するデバイスのセットアップ方法については、ハードウェア デバイスを使用する をご覧ください。
注: 開発とテストにはライセンス テスターをおすすめしますが、不定期または大きな変更があったときに、ライセンス以外のテストを行うテスターのアカウントを使用したアプリのテストも行ってください。ライセンス テスター以外のアカウントでテストを行うことにより、更新期間などのテスト固有のロジックにアプリが依存していないことを確認できます。 注: テストトラックのユーザーは、アプリのライセンス テスターにもなることができます。 1 回限りのアイテムをテストする
消費可能アイテムをテストする
消費可能アイテムをテストするときは、次のようなさまざまな状況でテストすることをおすすめします。
ユーザーがアイテムを受け取った購入。ライセンス テスターの場合は、「テスト支払い方法 - 常に承認 」を使用できます。
支払い方法に請求できず、ユーザーがアイテムを受け取れない購入。ライセンス テスターの場合は、「テスト支払い方法 - 常に不承認 」を使用できます。
アイテムを複数回購入できるようにする。
また、購入が、購入の処理 の説明のとおりに、適切に承認されることを確認する必要もあります。ライセンス テスターからの購入の場合、アプリが購入を承認しないと、3 分後に払い戻され、キャンセルに関するメールが届きます。Google Play Console の [注文 ] タブで、3 分後に払い戻しが行われたかどうかを確認することもできます。
消費不可アイテムをテストする
消費不可アイテムは、消費可能アイテムと同じようにテストする必要がありますが、アプリ内でアイテムを再度購入できないことを確認する必要があります。2 つのタイプの購入を処理するロジックはそれぞれ異なるため、消費不可アイテムと消費可能アイテムの両方について、購入の承認を確認してください(該当する場合)。
定期購入固有の機能をテストする
1 回限りのアイテムと定期購入の購入フローは似ていますが、定期購入の場合は、更新の承認や不承認などのシナリオが追加されます。更新をテストするには、図 1 に示すように、ライセンス テスターが利用できる「テスト支払い方法 - 常に承認 」と「テスト支払い方法 - 常に不承認 」を使用できます。2 つの支払い方法を使用することで、定期購入の購入後のシナリオをテストします。
1 回限りのアイテムと同じように、購入が購入の処理 の説明のとおりに適切に承認されることを確認する必要もあります。ライセンス テスターからの購入の場合、アプリが購入を承認しないと、3 分後に払い戻され、キャンセルに関するメールが届きます。Google Play Console の [注文] タブで、3 分後に払い戻しが行われたかどうかを確認することもできます。
更新期間
テスト用定期購入は、実際の定期購入よりも短時間で更新され、最大で 6 回更新できます。
テスト用定期購入の更新時間を下記の表に示します。表内の更新時間はおおよその値です。実際の時間は多少異なる可能性があります。この相違を補正するには、定期購入の有効期限ごとに API を呼び出して現在のステータスを確認してください。
本番環境用の定期購入の期間
テスト用の定期購入の更新
1 週間
5 分
1 か月
5 分
3 か月
10 分
6 か月
15 分
1 年
30 分
無料試用など、時間ベースの定期購入機能も、テスト用定期購入の場合は期間が短くなっています。時間ベースの定期購入機能のテスト期間を次の表に示します。
機能
テスト期間
購入の承認
5 分
無料試用
3 分
お試し価格期間
定期購入のテスト期間と同じ
猶予期間(3 日間と 7 日間の両方)
5 分
アカウントの凍結
10 分
一時停止(1 か月)
5 分
一時停止(2 か月)
10 分
一時停止(3 か月)
15 分
テストケース
[表示 / 非表示 ] をクリックして次のセクションを展開し、定期購入の統合の確認に使用するテストシナリオを表示してください。
表示 / 非表示
月間定期購入
時刻
ユーザーの操作
システム イベント
予想されるテスト結果
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します。
定期購入が開始されます
12:05 定期購入が更新されます
12:10 定期購入が更新されます
12:15 定期購入が更新されます
12:20 定期購入が更新されます
12:25 定期購入が更新されます
12:30 定期購入が更新されます
12:35
定期購入が終了します(6 回の更新後)
ユーザーはアプリ内の定期購入コンテンツにアクセスできなくなります
無料試用期間付きの月間定期購入
時刻
ユーザーの操作
システム イベント
予想されるテスト結果
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します
無料試用で定期購入が開始されます
12:03 定期購入が更新されます
12:08 定期購入が更新されます
12:13 定期購入が更新されます
12:18 定期購入が更新されます
12:23 定期購入が更新されます
12:28 定期購入が更新されます
12:33
定期購入が終了します(6 回の更新後)
ユーザーはアプリ内の定期購入コンテンツにアクセスできなくなります
お試し価格ありの年間定期購入
時刻
ユーザーの操作
システム イベント
予想されるテスト結果
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します
お試し価格で定期購入が開始されます
12:30
通常価格で定期購入が更新されます
1:00 定期購入が更新されます
1:30 定期購入が更新されます
2:00 定期購入が更新されます
2:30 定期購入が更新されます
3:00 定期購入が更新されます
3:30
定期購入が終了します(6 回の更新後)
ユーザーはアプリ内の定期購入コンテンツにアクセスできなくなります
猶予期間付きの月間定期購入、ユーザーが再開した場合
時刻
ユーザーの操作
システム イベント
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します
定期購入が開始されます
12:01
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に不承認」に変更します
12:05
定期購入の支払いが不承認となり、ユーザーは猶予期間に入ります
12:08
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に承認」に変更します
定期購入が再開されて猶予期間が終了します
12:10 定期購入が更新されます
12:15 定期購入が更新されます
12:20 定期購入が更新されます
12:25 定期購入が更新されます
12:30 定期購入が更新されます
12:35 定期購入が更新されます
12:40
定期購入が終了します(6 回の更新後)
猶予期間付きの月間定期購入、ユーザーによる非自発的チャーンの場合
時刻
ユーザーの操作
システム イベント
予想されるテスト結果
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します
定期購入が開始されます
12:01
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に不承認」に変更します
12:05
定期購入の支払いが不承認となり、ユーザーは猶予期間に入ります
12:10 非自発的チャーンにより定期購入が解約されます
ユーザーはアプリ内の定期購入コンテンツにアクセスできなくなります
猶予期間付きの年間定期購入(アカウントの凍結を含む)、ユーザーがアカウントの凍結中に再開した場合
時刻
ユーザーの操作
システム イベント
予想されるテスト結果
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します
定期購入が開始されます
12:01
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に不承認」に変更します
12:30
支払いが不承認となり、猶予期間に入ります
12:35
猶予期間が終了しアカウントの凍結が開始されます
ユーザーはアプリ内の定期購入コンテンツにアクセスできなくなります
12:45
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に承認」に変更します
定期購入が再開されて更新され、アカウントの凍結が終了します
ユーザーはアプリ内の定期購入コンテンツに再びアクセスできるようになります
1:15 定期購入が更新されます
1:45 定期購入が更新されます
2:15 定期購入が更新されます
2:45 定期購入が更新されます
3:15 定期購入が更新されます
3:45 定期購入が終了します(6 回の更新後)
猶予期間付きの年間定期購入(アカウントの凍結を含む)、ユーザーによる非自発的チャーンの場合
時刻
ユーザーの操作
システム イベント
予想されるテスト結果
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します
定期購入が開始されます
12:01
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に不承認」に変更します
12:30
支払いが不承認となり、猶予期間に入ります
12:35
猶予期間が終了しアカウントの凍結が開始されます
ユーザーはアプリ内の定期購入コンテンツにアクセスできなくなります
12:45
非自発的チャーンにより定期購入が解約されます
猶予期間なしの月間定期購入(アカウントの凍結を含む)、ユーザーが再開した場合
時刻
ユーザーの操作
システム イベント
予想されるテスト結果
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します
定期購入が開始されます
12:01
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に不承認」に変更します
12:05
支払いが不承認となり、アカウントの凍結が開始されます
ユーザーはアプリ内の定期購入コンテンツにアクセスできなくなります
12:15
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に承認」に変更します
定期購入が再開されて更新され、アカウントの凍結が終了します
ユーザーはアプリ内の定期購入コンテンツに再びアクセスできるようになります
12:20 定期購入が更新されます
12:25 定期購入が更新されます
12:30 定期購入が更新されます
12:35 定期購入が更新されます
12:40 定期購入が更新されます
12:45 定期購入が終了します(6 回の更新後)
猶予期間なしの月間定期購入(アカウントの凍結を含む)、ユーザーによる非自発的チャーンの場合
時刻
ユーザーの操作
システム イベント
予想されるテスト結果
12:00
ライセンス テスト アカウントと「テスト支払い方法 - 常に承認」を使用して、アプリ内定期購入に登録します
定期購入が開始されます
12:01
Google Play アプリの [アカウント] > [定期購入] に移動して、テスト用定期購入をクリックし、支払い方法を「テスト支払い方法 - 常に不承認」に変更します
12:05
支払いが不承認となり、アカウントの凍結が開始されます
ユーザーはアプリ内の定期購入コンテンツにアクセスできなくなります
12:15
非自発的チャーンにより定期購入が解約されます
Google Play Console を使用すると、独自のテスト用のコードを作成 できます。プロモーション コードは、1 つのアプリで管理対象アイテムすべてにわたり、四半期ごとに 500 個しか作成できないことに留意してください。
次のプロモーション コードの利用シナリオをテストする必要があります。
アプリ内で表示された購入ダイアログにプロモーション コードが入力されたとき。
Google Play ストア アプリ内でプロモーション コードが利用されたとき。
左側のナビゲーションの [コードを利用 ] ボタンを使用して https://play.google.com/store でプロモーション コードが利用されたとき。
上記のシナリオでは、できるだけ多くの方法でコードの利用をテストする必要があります。少なくとも以下のテストを行うことをおすすめします。
アプリがインストールされる前の利用。
アプリがフォアグラウンドで実行されているときの利用。このテストでは、Google Play ストア アプリを使用してテストする別のデバイスが必要です。アプリのさまざまな画面から利用のテストを行ってください。
アプリと Google Play ストア アプリの両方が同時に表示されるマルチウィンドウ モード での利用。
各テストで、アイテムが正しく検出され、ユーザーに通知されることを確認します。