モバイルアプリのテスト testing-mobile-apps

NOTE
単一ページアプリケーションフレームワークを基にしたクライアントサイドレンダリング(React など)が必要なプロジェクトでは、SPA エディターを使用することをお勧めします。詳細情報

市場に出回っている幅広いデバイスやリリースされるデバイスを考えると、アプリのテストは不可欠となっています。 これは、機能とユーザビリティがアプリストアのレビューで低く評価される可能性がある領域ですが、単一の欠陥がアプリをアンインストールする原因となる可能性があります。 テスト計画と品質保証には注意が必要です。 次のリンクでは、環境の特定、テストケースの定義、テストのタイプ、前提、お客様の関与など、一般的に取り組む必要があるトピックの多くをカバーしています。 また、テスト作業に役立つツールについても説明します。 内部ツール(Hobbes など)は、web ベースの UI テストに役立ちます。 Tough Day では、シミュレートされた負荷でインスタンスにストレスを与えることができます。 テスト環境で既に Selenium などのサードパーティツールの使用経験がある場合は、それらも使用できます。

モバイルアプリを開発する際には、従来のテストに加えて、対処する必要があるデバイスに固有の新しい問題が多数発生しています。

  • 機能 – アプリではすべての要件が満たされていますか?
  • ユーザビリティ – アプリは顧客にとって使いやすく、理解しやすいですか?
  • パフォーマンス – 使用率が急増した場合はどうなりますか。 スワイプやカルーセルなどのアプリ要素は、迅速で、エクスペリエンスを損なわないのですか?
  • 失敗または割り込み – アプリの実行中に着信呼び出しまたは通知があった場合はどうなりますか? ネットワークが停止したり、電源が切れたりした場合はどうなりますか。
  • インストールとアップデート – インストールのエクスペリエンスについて教えてください。 更新はどのようにプッシュされますか?
  • 技術的 – アプリがデバイスの電力を消費し過ぎていますか?
  • ローカライゼーション – アプリ内のすべての領域が翻訳されていますか。
  • 認定制度 – アプリは認定済みですか? 顧客は、データプライバシーに関するすべての法的要件に従っていると信頼できますか?

これらの質問は、自動テストと手動テストの間に回答する必要があります。

自動テスト automated-testing

さまざまな画面サイズ、メモリの制約、入力方法、オペレーティングシステムに対応するために、ある程度の自動テストを実行する必要があります。 多くのテストケースをカバーするだけでなく、新機能やデバイスが導入された際の回帰テストを高速化できます。 自動化ツールでは、作業の重複を減らすか制限するのが理想的です。 テスト作業がすべてのプラットフォームに適用されるように、ツールやフレームワークを使用します。 次の表は、web ベースの UI テストとモバイルアプリテストの両方のテスト環境のシンプルな構造を示しています。 グラフの左側には、ブラウザーを持つ一連の Selenium ノードが表示されます。 SeleniumGrid は、これらのノードのいずれかに対して、web ベースの一般的な UI テストを実行できます。 Selenium ハブは、クロスプラットフォームのアプリテスト用に Appium に接続することもできます。 このスライドではシミュレータのみを示していますが、Android™ の場合は adb を、iOSデバイスの場合は Xcode ユーティリティを組み込むことができます。 このドキュメントの後半に、前述のツールに関する特定の詳細を検索できるリンクが用意されています。

chlimage_1

手動テスト manual-testing

自動テストに加えて、アプリは手動テストのサイクルを経る必要があります。 実際のデバイスでアプリを実行している顧客は、スクリプトで複製することはできません。 ここでも、多くのオプションがあります。 HockeyApp などのプラットフォームを使用して、アクセス権を持つユーザーを定義し、フィードバックを収集できます。 または、プロセス全体を UTest、ElusiveStars、Testin などのサービスにアウトソースできます。 社内に複数のテスターが存在し、デバイスのバリエーションが不足している場合は、デバイスのプールで手動テストを実行できるクラウドサービスがあります。 これを提供するサービスの 1 つが SauceLabs です。 PhoneGap Enterprise にアプリをリモートでビルドし、受け入れテストやデモのレベルとしてローカルデバイスにインストールすることもできます。 最新の機能とドキュメントについては、PhoneGap (https://phonegap.com/)の web サイトを参照してください。 どのような方法を用いても、手動テストでは以下を行うべきである:

  • テスターの大きなターゲットをヒット、

  • デバイスの大規模なプールに対するテスト(理想的には実際のデバイス。実際のデバイスを使用できない場合はシミュレータ/エミュレータ)、

  • 有益なフィードバックを提供:

    • クラッシュ レポート、
    • 分析/トラッキング、
    • 使いやすさ
    • 注意の分野、
    • パフォーマンス、
    • データ/消費電力など。

ツール tools

モバイルアプリのテストに使用できるツールは様々です。 使用するオプションは、特定の状況(機能、価格、サポート、対象範囲など)に基づいて選択する必要があります。 次に、使用可能なツールとサービスの一部を簡単に説明します。

Selenium

  • WebDriver をフィードし、様々なブラウザーを制御するためのテストスクリプトの API を含むフレームワーク。
  • 実際のデバイスでのテストに Appium と組み合わせて使用できます。
  • SeleniumGrid は、並列テストのためにテストをノード間で転送します。
  • Selenium IDE は、テストケースの記述を減らすのに役立ちます。

詳しくは、https://www.selenium.dev/ を参照してください。

Testdroid

  • 継続的な統合フックと実際のデバイステストを備えたクラウドベースのテストサービス。
  • デバイスの互換性の確認、ログの分析、ビューの走査、スクリーンショットの取得、パフォーマンスの監視などを行うアプリクローラーが含まれています。

詳しくは、https://testdroid.com/ を参照してください。

アピウム

  • Appium は、モバイルテストを自動化するための一般的なクロスプラットフォームフレームワークです。
  • また、コードテストケースを支援するレコード機能にインスペクターが含まれています。

詳しくは、https://appium.io/ を参照してください。

ソースラボ

  • SauceLabs は、クラウドベースのテストを提供し、継続的統合と統合されています。
  • テストはクラウド環境で自動的に実行されます。または、特定のデバイスやプラットフォームを起動し、問題のデバッグに役立つ手動のテストを実行することもできます。

詳しくは、https://saucelabs.com/ を参照してください。

HockeyApp

  • HockeyApp は手動テストに該当し、モバイルアプリはテスターがダウンロードして試すことができる個人用アプリストアにプッシュされます。

詳しくは、https://hockeyapp.net/features/ を参照してください。

ジェンキンス

  • テストツールではありませんが、Jenkins は、自動化されたテストのバックボーンを提供する継続的な統合フレームワークです。 機能を拡張するために、多数のサードパーティプラグインが利用できます。 例えば、SeleniumGrid プラグインは、Selenium ハブおよびノードの管理に役立つ UI を提供します。

詳しくは、https://www.jenkins.io/} および2}https://plugins.jenkins.io/🔗 を参照してください。

recommendation-more-help
2eeeb575-8007-40cc-a72d-206fbc4ddd4b