アプリの審査をリジェクトなしでクリアするために Marketplace Testkit を活用しよう

Windows Phone Advent Calendar 17日目になります。

本日はアプリを申請する前にやっておいたほうが良いテストについて記述します。


Windows Phone アプリはiPhoneアプリと同様、APP HUBを通してアプリの審査が行われます。

この審査は4営業日〜6営業日(筆者体験談)かかり、審査に不合格の場合は再度申請をおこなう必要があります。

この審査をいかに一発でパス(合格)するかが、アプリ開発者にとっての命運となります。

そのために便利なツールとして Marketplace Testkit というのがあります。

Marketplace Testkit とは、Microsoft実際におこなっている審査をセルフでテストすることができるものになります。


Marketplace Testkit は、開発環境であるVisual Studio 2010 Express for Windows Phone に統合されています。

[メニュー:プロジェクト] > [Marketplace Testkit を開く]で簡単に起動することができます。


実際に起動すると、次のような画面が表示されます。

[アプリケーションの詳細]
この画面では、Marketplace へ申請するのに必要な画像ファイルを確認する場所です。

それぞれのタイルには、分かりやすくイメージファイルの大きさが記述されています。

「省略可能」と記述してある以外の4つの画像は、申請に必ず必要なので事前に用意しておいてください。


必須の画像ファイルをすべてセットしたところで、画面の左にある「自動テスト」の項目をクリックします。

[自動テスト]
この画面では、アプリケーションパッケージの要件、アプリケーションで使用される機能の検証、先ほどの必須の画像について、正しいかどうかをテストする部分になっています。

ここで「テストの実行」をクリックしてください。


問題がなければ結果に「成功」が表示され、何か問題があれば結果に「失敗」と表示され、その理由が「結果の詳細」に表示されますので大変分かりやすくなっています。

※ このテストを実行するには、Release モードでアプリをコンパイルしておく必要があります。


[監視対象のテスト]
この画面では、実際にデバイス上でアプリの動作を検証するためのツールです。


※ このテストには、ZUNEクライアントを立ち上げてから、Windows Phone とPCを接続しておく必要があります。

このテストでは
・起動時間
・ピーク時のメモリ消費量
・アプリケーションが途中で例外を発生しないかどうか
・アプリトップ画面からの「戻る」ボタンでのアプリの終了
をテストすることができます。

※ このテストでは、必ずデバイスでの終了を行いましょう。テストツールで終了をしてしまうと、最後のテスト(アプリトップ画面からの「戻る」ボタンでのアプリの終了)が成功しません。


[手動テスト]
最後のこの画面では、Microsoftも実際にこの項目に従って手動でテストをおこなっているらしいです。


このテストは上記までの自動テストとは異なり、テスト項目(50項目)とそのテスト手法が記述してあるだけになります。

結果 テスト名 テスト方法
アプリケーションのタイル画像 ・アプリケーション一覧を開きます
・99x99xの画像が表示されています
・アプリを長押しして「スタート画面に追加」を選択します
・173x173の画像がスタートアップに表示されます
複数のデバイスのサポート ・2つ以上のWindows Phone にアプリをインストールします
・それぞれの端末でアプリの起動と終了までにエラーをおこさないことを確認します
アプリの終了 ・アプリケーションを起動します
・アプリケーションの全体を遷移したのち、アプリケーションを終了します
・アプリケーションが正しく閉じることを確認します
アプリケーションの応答 ・アプリケーションを起動します
・アプリケーションの応答が3秒以内で終わることを確認してください
・もし3秒以上かかる場合は、進行状況が表示されているか確認します
アプリケーションを閉じた後の応答 ・アプリケーションを起動します
・「戻る」ボタンでアプリケーションを終了してください
・5秒以内に再度アプリケーションを起動します
・20秒以内にアプリケーションからの応答があることを確認します
非アクティブ時のアプリケーションの応答 ・アプリケーションを起動します
・「スタート」ボタンでアプリケーションを閉じます
・5秒以内に再度アプリケーションを起動します
・20秒以内にアプリケーションからの応答があることを確認します
・アプリケーションに一時停止機能がある場合、再度正しく実行することができることを確認します
「戻る」ボタンで前のページに戻る ・1画面以上遷移します
・「戻る」ボタンを押します
・1つ前のページに戻ることを確認します
「戻る」ボタンでアプリの終了 ・アプリケーションを起動します
・「戻る」ボタンを押してアプリが正しく終了することを確認します
「戻る」ボタンでコンテキストメニューやダイアログの終了 コンテキストメニューやダイアログを表示させます
・「戻る」ボタンを押すとコンテキストメニューやダイアログが終了することを確認します
ゲームでの「戻る」ボタン ・ゲームアプリを起動します
・ゲームを開始します
・「戻る」ボタンを押すと、ゲームが一時停止することを確認します
試用版 ・試用版のアプリを起動します
・完全版のアプリを起動します
・それぞれのアプリのバージョンやパフォーマンスを比較します
・試用版がsection 5.2.1 〜 5.2.5までを満たしているかを確認します
着信電話 ・アプリケーションを起動します
・アプリケーションの起動中に着信を受けてください
・電話の最中に、アプリケーションの音量や動作など電話の品質が落ちていないかを確認します
・通話を終了します
・アプリケーションが再開されることを確認します
SMSやMMSメッセージ 機内モードになっていないことを確認します
・アプリケーションを起動します
・アプリケーションを「スタート」ボタンで停止します
・SMSまたはMMSが使えるか確認します
・送信してから最大10分間待ちます
・「スタート」ボタンを押してSMSまたはMMSを閉じます
・SMSまたはMMSの送信先に送信内容が届いているかを確認します
着信またはメッセージ受信時のアプリケーションの応答 機内モードになっていないことを確認します
・アプリケーションを起動します
・着信、SMSまたはMMSを受信してください
・アプリケーションが着信、受信時に終了しないことを確認します
・「戻る」ボタンで着信、SMSまたはMMSを終了してください
・アプリが再び起動することを確認します
悪意のあるアプリケーション ・アプリケーションを起動します
・アプリケーションがウイルス、またはスパイウェアではないことを確認します
ローカライズ ・アプリケーションの説明文を確認します
・ターゲット言語で表示されていることを確認します
・アプリケーションを起動します
・アプリケーションのUIのテキストがターゲット言語で表示されていることを確認します
コンテンツとテーマ ・アプリケーション設定画面を表示します
・テーマを「黒」に変更します
・アプリケーションを起動します
・アプリケーションのテキストがテーマカラーによって見え辛くないことを確認します
・再びアプリケーションの設定画面を開き、今度はテーマ「白」を選択します
・先ほどと同じでテキストなどで見え辛いものがないことを確認します
サポート情報 ・アプリケーションを起動します
・アプリケーション名、バージョン情報、連絡先(テクニカルサポート)が表示されているページがあることを確認します
GPS ・アプリケーション設定ページを開きます
・位置情報サービスを「on」に設定します
・アプリケーションを起動します
GPSで地図の現在位置を確認します
・「スタート」ボタンでアプリケーションを停止します
・アプリケーション設定ページを開き、今度は位置情報サービスを「off」にします
・停止していたアプリケーションを再開します
・先ほど取得した位置情報がプロットされていることを確認します
ユーザ設定 ・アプリケーションを起動します
・トースト表示やUIメニューなどの設定がある場合、ユーザがその通知をon/offに切り替えることができることを確認します
トースト通知の許可 ・アプリケーションを起動します
・アプリケーションがトースト通知を受信するための明示的な許可を要求しているか確認します
ロック画面の電力消費 ・アプリケーションを起動します
・デバイスをロックします
・タイマーなどの停止中にも起動している処理を除き、アプリケーションが停止されていることを確認します
ロック画面中のオーディ再生とバッテリー ・アプリケーションを起動します
・音楽ファイルを再生します
・デバイスをロックします
・バッテリーの寿命が6時間以上あることを確認します
ロック中のアイドル状態の挙動 ・アプリケーションを起動します
・デバイスをロックします
・アプリケーションは停止していることを確認します
ロック画面中の最小電力 ・デバイスを限界まで充電してください
・アプリケーション設定画面で「機内モード」に設定してください
・アプリケーションを起動します
・デバイスをロックします
・バッテリーの寿命は少なくとも120時間あることを確認してください
ミュージック&ビデオハブ ・アプリケーションを起動します
・アプリから音楽/ビデオを再生します
・アプリケーションが正しく音楽/ビデオを再生できることを確認します
ミュージック&ビデオハブの履歴やプレイリスト ・アプリから音楽/ビデオのリストや履歴から再生します
・アプリケーションが正しく音楽/ビデオを再生できることを確認します
ミュージック&ビデオハブの履歴の更新 ・アプリケーションを起動します
・アプリケーション内のビデオまたは音楽のメディアファイルを再生します
・ミュージック&ビデオハブを表示します
・履歴リストが更新されていることを確認します
ミュージック&ビデオハブの履歴の新規更新 ・アプリケーションを起動します
・アプリケーションでミュージックまたはビデオデータを作成します
・ミュージック&ビデオハブを表示します
・履歴リストが更新されていることを確認します
ミュージック&ビデオハブのコンテナ ・アプリケーションを起動します
・アプリケーションでミュージックまたはビデオデータを作成します
・作成したコンテナの情報が更新されていることを確認します
ミュージック&ビデオハブのコンテンツ ・ミュージック&ビデオハブを表示します
・メディア情報に不要または公序良俗に違反していないかを確認します
ミュージック&ビデオハブの画像ルール ・ミュージック&ビデオハブを表示します
・それぞれの音楽やビデオタイトルにアプリケーションのタイルやロゴが含まれていることを確認します
・ロゴの画像サイズは358x358です
・他のリストのタイル画像は173x173です
・タイル画像にメディアやコンテンツにちなんだテキストが表示されている
ミュージック&ビデオの初期起動 ・音楽ファイルを再生します
・アプリケーションを起動します
・アプリケーション動作中に音楽ファイルが一時停止などしないか確認します
ミュージック&ビデオの設定 アプリケーションを起動します
・アプリケーションはユーザがバックグラウンドにある音楽などの音量を設定できるか確認します
・これらの設定を行ったとしてもアプリケーションの音楽再生には影響しないことを確認します
ミュージック&ビデオの一部を再生 ・音楽ファイルを再生します
・音楽再生中にアプリケーションを起動します
・アプリケーション上で音楽ファイルを再生します
・それまでに再生していたバックグラウンドの音楽に影響がないことを確認します
効果音とBGM ・音楽ファイルを再生します
・アプリケーションを起動します
・アプリケーションの効果音またはBGMに影響がないことを確認します
ピクチャーハブ拡張の機能 ・アプリケーションを起動します
・アプリケーションが写真を操作することが可能であることを確認します
ピクチャーハブ拡張の起動 ・ピクチャーハブで画像を選択します
・メニューが開き、そこからアプリケーションを起動できることを確認します
Share Picker拡張の機能 ・ピクチャーハブで画像を選択します
・メニューが開き、そこからアプリケーションを起動します
・アプリケーション上に選択した画像が表示され、操作できることを確認します
写真共有アプリケーションの起動 ・ピクチャーハブで画像を選択します
・メニューが開き共有からアプリケーションを起動します
・アプリケーションが写真をアップロードしたり共有できることを確認します
ピクチャーハブ拡張のメイン機能 ・アプリケーションを起動します
・アプリケーションからカメラが起動することを確認します
ユーザ主導のバックグラウンド再生 ・アプリケーションを起動します
・バックグラウンドオーディオを再生できるアプリケーションであることを確認します
・アプリケーションのUI操作からバックグラウンドのオーディオを再生できることを確認します
バックグラウンド停止 ・アプリケーションを起動します
・バックグラウンドオーディオを再生できるアプリケーションであることを確認します
・アプリケーションのUI操作からバックグラウンドのオーディオを停止できることを確認します
ボリューム操作 ・アプリケーションを起動します
・オーディオを再生します
・アプリケーションを停止します
・オーディオはバックグラウンドで再生し続けていることを確認します
・またオーディオ操作のコントロールが可能であることを確認します
ボリューム表示 ・アプリケーションを起動します
・オーディオを再生します
・アプリケーションを停止します
・オーディオはバックグラウンドで再生し続けていることを確認します
・またボリューム情報が表示されることを確認します
バックグラウンドオーディオストリーミングエージェント ・アプリケーションを起動します
・アプリケーションを停止します
・バックグラウンドオーディオストリーミングエージェントがストリーミングするためのオーディオ情報を正しく使用していることを確認します
バックグラウンドオーディオストリーミングエージェント ・アプリケーションを起動します
・バックグラウンド転送がアプリケーションで可能であることを確認します
・アプリケーションのUIにバックグラウンド転送を開始できることを確認します
バックグラウンドの転送状態 ・アプリケーションを起動します
・バックグラウンド転送を開始します
・進行中の表示があることを確認します
・バックグランド転送を停止します
・表示されている進行表示も停止することを確認します
バックグラウンドの転送停止 ・アプリケーションを起動します
・バックグラウンド転送を開始します
・ユーザがバッググラウンドの転送をキャンセルすることができるUIがあることを確認します

※ 英語は苦手な筆者なので、微妙なものもあります


もちろん、上記テストをすべてテストする必要なありません。

なので、ここでは、気になる部分があればそれに沿ったテストをおこなうだけでいいかもしれません。


また、このテストはあくまで最低限の動作チェックまでなので、Microsoftによる審査は著作権なども考慮されていますので、ご注意ください。

今回の記事で言いたいことは、アプリケーションは常に使っていただけるユーザ目線での開発と、網羅性に長けたテストをおこなうことが大切だと思います


ggった結果
UX-TV: 9/16放送分
http://www.ustream.tv/recorded/17302261
Kenji Daikoku: Marketplace Testkitを活用しよう!
http://daiwp.blogspot.com/2011/11/marketplace-testkit.html

http://www.st-hatena.com/users/sa/samril/user_p.gifMSの高橋さんもよくおっしゃいますが『とりあえず出して、テストはMSに任せよう』が一番楽ですね