Want to know more about how to test mobile application? ここでは、あなたのアプリのモバイルテストのチュートリアルを見つけることができます。 モバイル テスト戦略、モバイル テスト プロセスの主な段階、Android と iOS のモバイル アプリケーション テストの仕様については、この記事で検討します。
使用するモバイル デバイスとモバイル アプリケーションの開発の爆発的な成長は、高品質のモバイル アプリケーションを成功かつ迅速に提供するためにテストが重要な要件になりました。
では、モバイル アプリケーションとデスクトップ アプリケーションの主な違いについて考えてみましょう:
- モバイル デバイスはシステムであり、強力な詰め物を持っていません。 デスクトップ アプリが中央処理装置でテストされるのに対して、モバイル アプリケーションのテストは携帯電話 (Apple、Samsung、Nokia など) で行われます。 携帯電話の画面サイズはデスクトップのものよりも小さい。
- 電話をかけたり受けたりすることは電話の主なタスクであり、だからこそ、アプリケーションはこの主要な機能を妨げてはならないのです。 Android、iOS、BlackBerry
など。 - 携帯電話の OS はすぐに時代遅れになってしまいます。 また、OS の更新にも限界があります。
- モバイル デバイスはネットワーク接続 (3G、4G、Wi-Fi)、デスクトップはブロードバンド接続または Wi-Fiを使用します。 デスクトップ アプリケーションのテストに適したツールは、モバイル アプリケーションのテストには完全には適していません。
モバイルアプリケーションの3つの主な種類に分けられます。
モバイルWebアプリケーションは、実際には、モバイルブラウザの助けを借りて、ガジェット(スマートフォンやタブレット)で開かれるWebサイトのことです。
- アクセスが容易
- アップデートが容易
- モバイルWebアプリケーションはインストール不要
モバイルWebアプリケーションの短所:
- オフライン機能サポートなし
- ハイブリッドおよびネイティブアプリと比較して機能が限定されること。 (ファイル システムおよびローカル リソースにアクセスできない)。
- 再配布に関する問題。
ネイティブアプリのメリット:
- ネイティブアプリはオフラインで動作する
- デバイスのすべての機能を使用することができる。
- 高度なユーザーエクスペリエンス
- プッシュ通知でユーザーに警告できる
ネイティブアプリのデメリット:
- モバイルWebアプリに比べて制作コストが高くなること。
ハイブリッドアプリは、ネイティブアプリとモバイルウェブアプリをミックスしたものです。
ハイブリッドアプリのいくつかのメリット:
- ネイティブアプリと比較して、より費用対効果が高い
- 簡単な配布
- 埋め込みブラウザ
- デバイス機能。
ハイブリッドアプリのデメリット:
- ネイティブアプリに比べて動作が遅い、
- ネイティブアプリに比べてグラフィックがOSになじんでいない。 8053>
デバイスの選択
モバイルアプリケーションをテストする場合、実際のデバイスが最善の決定であることは疑いの余地がありません。 実機でのテストは、常に最も正確な結果をもたらします。
実際、最も適切なデバイスを選択するのは簡単ではありません。
- 市場で最も人気があり使用されているガジェットを定義するために分析を行います。
- 次の要素に注意を払う:互換性、メモリ サイズ、接続性など。
前に述べたように、実際のデバイスでモバイル アプリをテストすることには多くのメリットがあります:
- テスト結果の高い精度。
- バッテリーの消耗、ジオロケーション、プッシュ通知、デバイスの内蔵センサーなどのポイントを簡単にテストできます。
- 着信割り込み(通話、SMS)をテストする能力。
また、いくつかの欠点もあります。
- 頻繁に使用されるデバイスの数が膨大であること。
Emulators or simulators?
Emulator と Simulator は、モバイル機器の機能および動作をエミュレート/シミュレートする特殊ツールであることは容易に想像がつきます。
「エミュレータ」と「シミュレータ」の意味はしばしば混同されますが、発音はほぼ同じですが、意味は同じではありません。
ですから、モバイルアプリケーションのテストには、モバイルシミュレータを使用したほうがよいでしょう。
ここでは、エミュレータとシミュレータについて詳しく説明します。
- 簡単なセットアップ。
モバイル アプリケーションのテストにシミュレーターを使用するデメリット:
- デバイスのハードウェアは考慮されません。
- シミュレーション結果のデータが不完全なため、テスト結果の完全な分析が困難。 8053>
- 複数のシステムおよびネットワーク上でモバイル デバイスを実行する機能
- テストだけでなく、クラウドでアプリを更新および管理する機能
- 費用対効果
- 高い拡張性。
- 同じスクリプトを複数のデバイスで並行して実行できる。
クラウド モバイル テスティングのいくつかの弱点:
- 制御性が低い。
- セキュリティのレベルが高くない。 Xamarin Test Cloud、Perfecto Mobile Continuous Quality Lab、Keynote Mobile Testing。 ここでは、モバイル テスト ツールについて詳しく説明します。
モバイル手動テストと自動テスト
現在、多くの専門家が、手動テストは死につつある、という意見を支持しています。 確かに、それは真実ではありません。 もちろん、テスト自動化なしではやっていけませんが、手動テストが望ましい状況もあります。
手動モバイル アプリケーション テストのいくつかのメリット:
- 短期間ではよりコスト効果があります。
手動モバイルアプリケーションのテストのいくつかの欠点:
- 手動テストケースは再利用することは困難である。
- 特定および一定のタスクの実行の効果が低い。
アプリ自動テストのいくつかの利点:
- テストの実行プロセスはかなり速いです。
- 長期的な期間ではコスト効果があります。
アプリ自動テストのいくつかの欠点:
- 自動モバイルテストツールはいくつかの制限があります。
- 時間のかかるプロセス。 8053>
異なるアプローチの組み合わせが最適な方法であるように思われます。 たとえば、テスト プロセスの初期段階でシミュレーターを使用することができます。 しかし、最終段階では実際のデバイス (物理的またはクラウドベース) を使用する方がよいでしょう。 負荷テストや回帰テストでは、自動化されたテストが望ましい。
モバイルアプリケーションのテスト段階
では、モバイルアプリのテストプロセスの主な段階を検討し始めましょう。 これらは、Webサイトのテスト段階とほぼ同じです。 ほとんどですが、かなり似ているわけではありません。 前に読んだように、モバイル アプリケーションとデスクトップ アプリケーションの間には、いくつかの基本的な違いがあります。 したがって、いくつかの追加段階を経て、いくつかの追加検証を行う必要があります。
1.
ドキュメンテーションテストは、モバイルアプリケーションテストプロセスの必要な準備段階です。 テスターは、ナビゲーション・チャート、スクリーン・レイアウト、設計上の目に見えない他の要件を取得します。 これらの要件は、完全性と矛盾を分析されます。 要件(仕様書、PRD)、テスト計画、テストケース、トレーサビリティ・マトリクスなどの成果物は、この段階で作成され分析されます。 簡単に言うと、アプリケーションが期待される機能を実行するかどうかをチェックします。通常、仕様に記載されているか、またはビジネス プロセスのロジックに対応しています。
- ターゲット層(企業、ユーザー、教育環境など)
- 配信チャネル(直接配信、Google Play、App Storeなど)
さて、モバイル アプリケーション機能をテストするために通過すべき主要な検証を考えてみましょう。
アプリケーションのインストールと実行
- デバイスがシステム要件を満たしていれば、アプリケーションのインストールは大きなエラーなく行われるはずです。
- アプリケーションが自動的に正しく起動することを確認します。
フィールドテスト
- 必須フィールドが正しく動作することを確認します。
- 必須およびオプションフィールドが異なる方法で表示されていることを確認します。
ビジネス機能テスト
- 宣言した価格およびコンテンツはユーザーが得た情報に対応することを確認します。
- Ensure the user can perform typical operations: buying, adding goods to the cart, ordering goods etc.
- Make sure the application supports payment transactions through payment systems like Visa, Mastercard, Paypal etc.
- Check the recovery of the purchase regardless of the device, but with an account binding.ユーザーが通常の操作を実行できるかどうか確認すること。
割り込みテスト
- 着信および発信通話、SMS、MMS。
- バッテリー放電/取り外し
- ネットワーク/ Wi-Fiを切断して接続します。
- SDカードの取り外しと接続
- デバイスの充電
Constant users feedback testing
- コンテンツメッセージをダウンロード
- Progress bar.
- ボタンを押したときの適切な反応
- ネットワークアクセスエラーメッセージ
- 重要情報削除の試みメッセージ
- 音、振動、視覚通知の利用可能性と同期化
- 処理(ゲーム)終了時の画面(メッセージ)の表示。
アップデートテスト
- アップデート後にすべてのユーザーデータが保存されること。
- アップデートの進行状況が正しく表示されることを確認します。
- アップデートが古いオペレーティング システムでサポートされていることを確認します。
- アップデートをインストールするさまざまな方法(WiFi、Bluetooth、USB)のテスト
- アプリケーションをインストールまたは実行する領域が不足すること
- メモリ リークがあること
Device Resources testing
デバイスのテスト。 ウィンドウ、多くの情報、長いワークフローを持つタスクに注意してください。
- SD-cardのアプリをインストール/置換する。
- アプリケーションがサポートする一部の機能(3G、SDカードなど)が存在しないこと。
- インストールされたアプリケーションが他のアプリケーションの正常な動作を妨げず、それらのメモリを消費しないこと。
その他の検証:
- ゲームに関する検証を行う。
- Make sure the information error messages are correct on time and appropriate.
- Verify connection to the analytical tools like Google Analytics.
- Testing the power consumption.
- Verify the necessary options correct work with social networks – Share, Publish, Navigation.Verification of the game concerned verifications: [902] [5504] [902]
モバイル アプリケーションの機能をテストするためのいくつかの便利なツール。 Appium、Selendroid、Robotium、Ranorex。
3. ユーザビリティ テスト
ユーザビリティ テストは、アプリケーションを使用しての便利さを確保することを目的として、受け入れられた標準に準拠した直観的なインターフェイスを作成します。 これは、高速で使いやすいアプリケーションを作成するために実行されます。 以下は、アプリの評価に関する 3 つの主な基本基準です。
- 満足度
- 効率
- 効果
では、モバイル アプリケーションのユーザビリティをテストするための簡易チェックリストを検討しましょう。
- ボタンが通常のサイズで、画面の 1 つの領域に配置されていることを確認する
- 必要に応じて、アプリがマルチタスク モードで動作することを確認する。
- 重要なアプリケーションモジュールのナビゲーションを確認する。
- アイコンや画像がアプリ環境で自然に見えることを確認する。
- 同じ機能を果たすボタンの色が同じであることを確認する。
- テキストはシンプル、明確、ユーザーにとって見やすいことが必要です。 短い文章や段落は読むことができる。
- 最適なフォントサイズを定義する。
- ズームインおよびズームアウトシステムの正しい動作を確認する。
- コンテキストメニューがオーバーロードしていないか確認する。
- アプリケーションがどの状態でも終了でき、同じ状態で動作を再開することを確認する。
- アプリケーションのコンポーネントがユーザーのアクションと同期していることを確認する。
- ユーザーが間違ったボタンを押した場合、アクションを戻したりキャンセルできることを確認する。
- 要素の応答速度が十分に高いことを確認する
モバイルアプリケーションのユーザビリティをテストするのに役立つツールもいくつかあります。 User Zoom、Reflector、Loop11。
4. UI (User Interface) テスト
UI (User Interface) テストは、アプリのグラフィック ユーザー インターフェイスが仕様に合っているか確認するために実施します。
以下は、モバイル アプリケーションの UI をテストするための検証です:
- UI の標準への準拠を確認する
- 標準の画面解像度でのアプリの UI を確認します。 640 × 480、800 × 600、1024 × 768、1280 × 800、1366 × 768、1400 × 900、1680 × 1050。
- 異なるデバイスでのアプリケーションの応答性を検証する。
- 主要な設計要素であるボタン、アイコン、色、リンク、フォント、フォント サイズ、レイアウト、テキスト ボックス、テキスト書式、ラベル、キャプション、ボタン、リストなどのテストします。
- 広告がアプリケーションのコントロールボタンと重ならないことを確認する。
- 広告にアクセス可能な終了ボタンがあることを確認する。
- 網膜および非網膜スクリーンでさまざまな要素の正しい表示を確認する。
- 縦および横ページの方向ですべての要素の表示を確認する。
モバイル アプリケーション インターフェイスをテストするいくつかの役立つツールについて紹介します。 FitNesse、iMacros、Coded UI、Jubula、LoadUI。
5. 互換性 (構成) テスト
互換性 (構成) テストは、サイズ、画面解像度、バージョン、ハードウェアなどを考慮し、異なるデバイス上で最適なアプリケーション パフォーマンスを確保するために実施されます。 8053>
- OS Configuration
- Browser Configuration
- Database Configuration
- Device Configuration
- Network Configuration
Cross-platform testing は、モバイルアプリケーションを異なる OS でテストできるようにするものです。 8053>
クロス ブラウザー テストでは、さまざまなブラウザー構成でアプリが正しく動作することを確認できます。 Mozilla Firefox、Google Chrome、Opera Mini など。
データベース テストは、さまざまなデータベース構成でアプリケーションが正しく動作することを確認することを目的としています。 Oracle、DB2、MySql、MSSQL Server、Sybase。
Device Configuration テストでは、以下のパラメーターを考慮する必要があります:
- Device type: smartphone, tablet, etc.
- Device configuration:
ネットワーク構成テストは、異なるネットワーク構成(GSM、TDMA)と標準(2G、3G、4G)で正しい動作を保証するために実行されます。
モバイル アプリケーションの互換性をテストするためのヒント:
- カバレッジ マトリクス (考えられるすべての構成が記入されている表) を作成します。
- 構成に優先順位を付けます。 BrowserStack、Smart Bear の CrossBrowserTesting、Litmus、Browsera、IBM の Rational Clearcase、Ghostlab。
6 パフォーマンス テスト
パフォーマンス テストとは、さまざまな使用シナリオと負荷で操作性、安定性、リソース消費およびアプリケーション品質のその他の属性を決定するためのテストの一群です。
パフォーマンス テストの主な目的:
- アプリケーションが通常のユーザー負荷に対する要件に従って動作していることを確認するために、さまざまな種類の要求に対するアプリケーションの応答時間をチェックします。 (負荷テスト)。
- ユーザーの数倍を超える負荷で、アプリケーションの動作能力をテストすること。 (ストレステスト)。
- 通常の負荷で、長時間の作業に対するアプリケーションの操作性を調べる。 (安定性テスト)。
- データベースを「拡張」した状態で、通常の時間での作業を確認します。 (ボリュームテスト)。
- アプリケーションで同時に作業できるユーザーの数を決定する。 (同時実行テスト)。
モバイル アプリのパフォーマンス テストのためのいくつかの検証:
- アプリケーションが異なるネットワーク条件下で同じように動作するかどうかを判断します。
- アプリケーションのパフォーマンスを低下させるさまざまなアプリケーションおよびインフラのボトルネックを探します。
- ユーザー負荷が高い条件下でのアプリケーションの安定性を確認する。
- インターネットへの常時接続でない条件下で動作する場合のアプリケーションのパフォーマンスを確認する。
- 既存のクライアント/サーバー構成が最適なパフォーマンスを提供していることを確認する。 Neotys の NeoLoad、Apteligent (旧 Crittercism)、New Relic。
7 セキュリティ テスト
セキュリティ テストは、システムのセキュリティをチェックするだけではなく、アプリケーション保護への全体的なアプローチ、ハッカー、ウイルス、機密データへの不正なアクセスを提供するに伴うリスクを分析することが目的です。
モバイル アプリケーションのセキュリティをテストするために合格しなければならないいくつかの検証:
- アプリケーションのユーザーのデータ(ログイン、パスワード、銀行カード番号)が自動システムのネットワーク攻撃から保護されており、選択によって見つけることができないようにする。
- アプリケーション セキュリティ システムには、強いパスワードを必要とし、攻撃者が他のユーザーのパスワードを押収できないように検証する。
- アプリケーションが適切な認証なしに機密コンテンツや機能にアクセスできないようにする。
- SQLインジェクション型の攻撃からアプリケーションを保護する。
- クライアントに対する悪意のある攻撃からアプリケーションとネットワークを保護する。
- プログラム実行中に悪意のある実装からシステムを保護する。
- セッション管理を提供し、不正なユーザーから情報を保護する。
- ファイルキャッシュの可能な悪意のある結果を防ぐ。
- ユーザーファイルを調査し、その可能な悪影響を防ぐ。
- システムファイルの相互作用を分析し、脆弱性を特定し修正する。
- クッキーの可能な悪意ある動作を防ぐ。
モバイルアプリケーション・セキュリティをテストするのに役立つツールもいくつかあります。 Retina CS Community、OWASP Zed Attack Proxy、Veracode、Google Nogotofail、および SQL Map。 回復テスト
回復テストは、テスト対象のアプリを、ソフトウェア エラー、ハードウェア障害、または通信問題によって発生し得る障害に耐えて正常に回復する能力の面で検証するものです。
以下は、リカバリ テストの検証リストです。
- 不測のクラッシュ シナリオ後のアプリケーションの効果的な回復を検証します。
- 接続が切れた後のデータ回復のプロセスを確認します。
- システム障害およびトランザクション障害の後の回復をテストする。
- 電源障害(バッテリー低下、アプリケーションの不正なシャットダウンなど)の場合、アプリケーションがトランザクションを処理する能力を検証する。
9. ローカリゼーションテスト
ローカリゼーションテストでは、特定のターゲット層向けに、その文化的仕様に従ってモバイルアプリケーションの適応をテストできます。
ローカリゼーションテストにおけるいくつかの検証:
- アプリケーションがサポートする言語を決定します。
- アプリケーションのテーマに沿って翻訳の正しさを確認する
- 日付フォーマットをチェックする
- 数字の区切り文字をチェックする
もちろん、ネイティブスピーカーはモバイルアプリのローカリゼーションテストを行うことが好ましいです。 変更関連テスト
それで、あなたはすべての言及された段階を通過し、いくつかのバグを発見しました。 したがって、アプリのコードにいくつかの変更が加えられました。
変更に関連するテストの主な目標:
- チームが検出したすべてのバグを正常に修正したことを確認します (再テストまたは確認テスト)。 簡単に言うと、最初にバグを検出したテストケースを再度実行するのです。
- 新しい変更が新しいバグの出現につながらないことを確認する。 (回帰テスト)。 実際、回帰テストを提供するには、検出されたバグのあるテストケースだけでなく、アプリのすべての機能をチェックするテストケースも渡す必要があります。
アプリの変更関連のテストに役立つツールをいくつか紹介します。 Appium、Robotium、Ranorex。
11. ベータ テスト
最後に、モバイル アプリのプレリリース フル機能バージョンがあります。 将来のユーザーの観点から、プログラムの可能性と安定性を評価するのがよいでしょう。
ベータ テストは、プログラムのベータ版をデバッグおよびチェックする段階です。 その主な目的は、市場にアプリを最終的にリリースする前に、その作業におけるエラーの最大数を特定し、その後排除することです。
同様のタイプのアプリでの作業経験がある人、さらに言えば、アプリケーションの以前のバージョンでの経験がある人がベータ テスターの役割に抜擢されます。
- テスト期間
- 出荷
- 人口統計学的範囲
- テスト費用
ベータテストのためにいくらかお金を使う必要がありますが、モバイル アプリの品質に対する良い投資かもしれません。
モバイル アプリのベータ テストに人気のあるプラットフォームは、HockeyApp、Ubertesters、TestFlight などです。
アプリケーションストアごとに、インストールファイル(.apk)の構成やアプリケーションの設計に関する一定のルールが存在します。 認証テストでは、アプリが Google Play、App Store、Windows Phone などの最も人気のあるストアの要件を満たしていることを確認します。
基準、ライセンス契約、使用条件に対するアプリのコンプライアンスの主な基準を考えてみましょう。
Android:
- アプリケーションのインストール ファイル (.apk) は Program Policies と一致します .
- アプリケーションは、UIGの要件に適合しています。
- アプリケーションにウイルスは含まれていません。 Android マーケットでは、半自動的にアプリケーションのウイルスチェックを行い、ウイルスが検出された場合はアカウントをブロックすることがあります。
- アプリの更新版を公開する場合は、バージョン管理の順序に従う必要があります。
iOS:
- The application meets the requirements of the Human Interface Guidelines.
- アプリケーションには固有の名前が必要です。
- 開発者からのフィードバックのためのリンクを提供する必要があります。
- アプリケーションは、決められた特定のカテゴリに配置する必要があります。
- App Storeは互換性のためにアプリケーションをテストします。
- アプリケーションには、禁止されている素材、予期せぬ作業の遅延、既存の機能の繰り返しが含まれていません。
Windows Phone
- アプリケーションはアプリ認証要件の要件を満たしています。
- ハードウェアおよびネットワーク要件が明確に記述されていること
- 説明で言及されている、またはスクリーンショットに示されている機能が完全に実現されていること
- 自動再生音を制御するオプションが必要であること。
モバイル アプリケーションをテストするためのヒント
私たちの知識を体系化し、モバイル アプリケーション テストの主なヒントを決定してみましょう。
- OSやハードウェアの仕様を考慮する
- 可能な限り実機を使用する
- テストの「スイスアーミーナイフ」を見つけようとしないことです。 使い慣れたツールを使用する。
- クラウドモバイルテストの利点を活用する。
- スクリーンショット、ログ、動画で発見を確認する。
- 縦画面と横画面の両方についてモバイルアプリのテストを行う。
- iOSとAndroidでは開発メニューオプションを使う。
- エミュレーターやシミュレーションをテスト用に無視しない(ただし悪用しないこと)。
- アプリのパフォーマンスを検証する。
- すべてを自動化してはいけない。
- Consider the human factor
- クラスレポート
- アプリ内バグレポート
- スクリーンショット作成
- ビデオ録画
- AndroidとiOSアプリで使用可能
Test mobile application with EasyQA SDK
Practice is the best way to learn something.これは、実践が何かを学ぶための最良の方法です。 8053>
EasyQA SDKは、ソフトウェアテストプロセスをより効果的かつシンプルにするために、我々のチームによって開発された一連の機能です。
以下が主な機能です:
EasyQA SDKについてもっと知りたいならこのリンクから
- iOSアプリで使用可能。