モバイルアプリのテスト testing-mobile-apps
市場上の様々なデバイスとリリースされるデバイスを考慮すると、アプリのテストは非常に重要になりました。 この領域では、機能とユーザビリティがアプリストアのレビューを低減できますが、1 つの欠陥が原因でアプリがアンインストールされる可能性があります。 テスト計画と品質保証には注意が必要です。 次のリンクでは、環境の特定、テストケースの定義、テストのタイプ、前提条件、お客様の関与など、一般的に対処する必要のあるトピックの多くを説明します。 また、テスト作業に役立つツールについても説明します。 内部ツール(例: ) ホッブスは、Web ベースの UI テストに役立ちます。 Tough Day では、シミュレートされた負荷でインスタンスに応力を与えることができます。 テスト環境に Selenium などのサードパーティ製ツールの使用経験が既にある場合は、これらも使用できます。
モバイルアプリを開発する際には、従来のテストと共に対処する必要があるデバイスに固有の新しい懸念事項が多数あります。
- 機能 — すべての要件がアプリで満たされているか。
- 操作性 — アプリは、お客様が使いやすく理解しやすいものですか。
- パフォーマンス — 使用の急増中に何が起こるか。 スワイプやカルーセルなどのアプリ要素は、すばやく、エクスペリエンスから離れないですか?
- エラーまたは割り込み — アプリの実行中に着信呼び出しまたは通知が発生した場合はどうなりますか。 ネットワークが停止したり、電源が切れたりした場合はどうなりますか。
- インストールと更新 — インストールエクスペリエンスはどのようにですか? 更新はどのようにプッシュアウトされますか?
- 技術 — アプリがデバイスから消費する電力が多すぎるか。
- ローカリゼーション — アプリ内のすべての領域が翻訳されていますか。
- 認定 — アプリが認定されているか。 お客様は、データプライバシーに関するすべての法的要件に従うと信頼できますか?
これらの質問には、自動テストと手動テストの間に回答する必要があります。
自動テスト automated-testing
画面のサイズ、メモリの制約、入力方法、オペレーティングシステムの種類に応じて、ある程度の自動テストを実行する必要があります。 テストケースの大部分をカバーするだけでなく、新機能やデバイスが導入された際に、回帰テストを高速化できます。 自動化ツールは、作業の重複を軽減または制限するのが理想的です。 すべてのプラットフォームでテスト作業を適用できるように、ツールまたはフレームワークを使用します。 次の表に、Web ベースの UI テストとモバイルアプリテストの両方のテスト環境の簡略化された構造を示します。 グラフの左側には、一連の Selenium ノードとブラウザが表示されています。 SeleniumGrid は、これらのノードに対して、一般的な Web ベースの UI テストをファームアウトできます。 Selenium ハブは、クロスプラットフォームアプリケーションテスト用に Appium に接続することもできます。 表示されるのはシミュレーターのみですが、adb、Android 用、iOSデバイス用の Xcode ユーティリティを組み込むことができます。 このドキュメントでは、後述のツールの詳細を確認できるリンクを示します。
手動テスト manual-testing
自動テストに加えて、アプリケーションは手動テストのサイクルを経る必要があります。 実際のデバイスでアプリを実行しているお客様は、スクリプトで複製できません。 ここにも多くの選択肢があります。 HockeyApp などのプラットフォームを使用して、アクセス権を持つユーザーを定義し、フィードバックを収集できます。 または、プロセス全体を UTest、ElusiveStars、Testin などのサービスにアウトソースできます。 内部テスト担当者のグループがいるが、デバイスのバリエーションが少ない場合は、クラウドサービスを使用して、デバイスのプールで手動テストを実行できます。 これを提供するサービスの 1 つは SauceLabs です。 また、PhoneGap Enterprise にリモートでアプリを構築し、受け入れテストまたはデモのレベルとしてローカルデバイスにインストールすることもできます。 詳しくは、 PhoneGap web サイトを参照してください。 アプローチに関係なく、手動テストを実施する必要があります。
-
テスターの大きな標的にぶつかった
-
大量のデバイスプール(理想的には実際のデバイスですが、実際のデバイスが使用できない場合はシミュレーター/エミュレーター)に対するテスト
-
有益なフィードバックを提供:
- クラッシュレポート
- analytics/tracking,
- 使いやすさ
- 注目の領域
- パフォーマンス
- データ/消費電力など
ツール tools
モバイルアプリのテストに使用できる様々なツールがあります。 使用するオプションは、次の特定の状況に基づいて選択します。機能、価格、サポート、対象範囲など 次に、使用可能なツールおよびサービスの一部について簡単に説明します。
Selenium
- WebDriver をフィードし、様々なブラウザーを制御するテストスクリプト用の API を含むフレームワーク。
- これを Appium と組み合わせて、実際のデバイスでのテストに使用できます。
- SeleniumGrid は、並列テストを行うために、ノード間でテストを指示します。
- Selenium IDE は、テストケースの記述を減らすのに役立ちます。
詳しくは、https://www.seleniumhq.org/ を参照してください。
Testdroid
- 継続的な統合フックと実際のデバイステストを備えたクラウドベースのテストサービスです。
- デバイスの互換性の確認、ログの分析、ビューのトラバース、スクリーンショットの取得、パフォーマンスの監視をおこなうアプリクローラーが含まれます。
詳しくは、 https://testdroid.com/.
Appium
- Appium は、モバイルテストを自動化するための一般的なクロスプラットフォームフレームワークです。
- さらに、テストケースのコーディングに役立つレコード機能にインスペクターが含まれています。
詳しくは、 https://appium.io/.
SauceLabs
- SauceLabs はクラウドベースのテストを提供し、継続的な統合と統合されます。
- テストは自動的にクラウド環境で実行されます。また、特定のデバイスやプラットフォームを起動し、手動でテストを実行して問題のデバッグに役立てることもできます。
詳しくは、 https://saucelabs.com/.
AppTestNow
- モバイルアプリをテストするアウトソーシングサービス。
- 大規模なデバイスのプールを含み、幅広いタイプのテストを提供します。パフォーマンス、品質、機能、認定、ローカリゼーション、データ消費など
詳しくは、 https://www.apptestnow.com.
HockeyApp
- HockeyApp は手動テストの対象となり、モバイルアプリが個人のアプリストアにプッシュされ、テスターがダウンロードして試すことができます。
詳しくは、 https://hockeyapp.net/features/.
Jenkins
- Jenkins は、テストツールではありませんが、自動テストのバックボーンを提供する継続的統合フレームワークです。 機能を拡張するには、多数のサードパーティプラグインを利用できます。 例えば、SeleniumGrid プラグインは、Selenium ハブとノードの管理に役立つ UI を提供します。
詳しくは、 https://jenkins-ci.org/ および https://wiki.jenkins-ci.org/display/JENKINS/Plugins.