Mobile-testing-quick-guide
モバイルテスト-概要
実際のチュートリアルを始める前に、楽しみましょう。 次のリストをご覧ください。 今日の忙しくて多忙なライフスタイルで私たちが常に直面しなければならないこれらの基本的な雑用に簡単に関連することができます
- 電気代を支払いたいです。
- マネージャーと連絡を取り、早急にレポートを提出する必要があります。
- 子供のために新しい服を買いたいのですが、店に行く時間がありません。
- ああ…午後10時です。フライトに遅れて走っています。 私のタクシーはどこですか?
- 私はこの街に初めて来ました。どのホテルを予約すればよいですか?
今すぐ答えてください。 これらのアクティビティをほんの数秒で実行するには何が必要ですか? 答えは-
- スマートフォン、
- インターネット接続、および
- 仕事をするためのモバイルアプリ。
これにより、今日の時代におけるモバイルアプリの重要性を実感できます。 すべてがスマートフォンを介してスマートに行われています。 私たちは毎日、新しいアプリやツールが私たちの生活を楽にするために立ち上げられていることを知っています。
*Gowalla* についてよく知られている事例が1つあります。 何百万人もの人々が、2007年に始まって5年後に閉鎖されたこのロケーションベースのソーシャルネットワークを楽しんでいました。 複数の問題により、Gowallaがマスアピールに達するのを妨げました。 浮上した主な理由の1つは、「チェックインはユーザーフレンドリーではなかった」ことです。
モバイルアプリを成功させるには、優れたモバイルアプリの開発だけが要件ではないことを理解する必要があります。 ユーザーの好感度を得るには、モバイルアプリを徹底的にテストする必要があります。 結局のところ、ユーザーエクスペリエンスがすべてのソフトウェアを成功させるからです。
モバイルテスト-プラットフォーム
モバイルテストに進む前に、モバイルプラットフォームの基本を理解することをお勧めします。 主にモバイルのオペレーティングシステム、デバイスの種類、モバイルアプリの種類が含まれます。 これらのそれぞれについて十分な知識があると、長期的に堅牢なテスト計画を実施するのに役立ちます。
モバイルオペレーティングシステム
次の表は、市場で入手可能な一般的なモバイルオペレーティングシステムの概要を示しています-
Operating System | Developed by | Popularity (Low, Medium, High) | Latest available version |
---|---|---|---|
Android | Google Inc | High | Lollipop, Android 5.0-5.1 |
iOS | Apple Inc | High | iOS 8.X |
Blackberry | Blackberry Ltd | Low | Blackberry 10.2.1 |
Windows | Microsoft Inc | Medium | Windows 10 Mobile |
Symbian | Symbian Foundation | Low | Discontinued |
いくつかの一般的な調査に基づいて、市場でのさまざまなオペレーティングシステムの使用状況を以下に示すように描くことができます。
モバイルテスト-デバイスタイプ
モバイルデバイスは通常、ハンドヘルドコンピューターです。 それらには、物理的寸法、ハードウェアおよびソフトウェアの機能、それらが何を意味するかなどの特性に基づいた多くのバリエーションがあります。
次の表をご覧ください。 タブレット、電子書籍リーダー、スマートフォンをその特性に基づいて区別します。
Device | Tablets | E-book Readers | Smartphones |
---|---|---|---|
What it is | Tablets are portable computer devices. Unlike traditional computers, they don’t have keyboards or mouse, however the entire screen is touch sensitive. | E-book readers—also called e-readers—are similar to tablet computers, except they are mainly designed for reading e-books (digital, downloadable books). | A smartphone is a powerful mobile phone that is designed to run a variety of applications in addition to providing phone service. |
Used for | Almost all the jobs which we can do with traditional computers or desktops. | Reading e-books | Web browsing, watching videos, reading e-books, and playing games |
Example | Samsung Tablets | Amazon Kindle, Barnes & Noble Nook. | Sony smartphones, Samsung smartphones, Apple iPhone. |
ネイティブ対ハイブリッド対モバイルウェブ
テスト計画を立てる際に考慮する必要がある重要な要素は、モバイルアプリケーションの種類を確認することです。 主に、モバイルWeb、ネイティブアプリ、ハイブリッドアプリの3種類のモバイルアプリケーションに遭遇します。 分類は、開発努力とアプリの再配布戦略に基づいています。 それらのそれぞれを詳細に理解しましょう。
モバイルウェブ
Webアプリは実際のアプリケーションではありません。実際には、ウェブブラウザの助けを借りてスマートフォンで開くウェブサイトです。 モバイルWebサイトは、すべての主要な種類のアプリケーションの中で最も多くのユーザーを獲得しています。
- 例-http://www.finddevguides.com/[Tutorials Point]
- 利点-
- 簡単にアクセスできます。
- 簡単な開発-レスポンシブデザインを開発し、コンテンツをより小さな画面/ハードウェアで適切に表示するように再構築すると、デスクトップWebサイトがモバイルフレンドリーになります。
- 簡単な更新-1つの場所で更新するだけで、すべてのユーザーが最新バージョンのサイトに自動的にアクセスできます。
- ネイティブアプリまたはハイブリッドアプリと比較して、インストールは不要です。
- 欠点-
- モバイルWebサイトでは、一部の機能を使用できません。 たとえば、ファイルシステムとローカルリソースへのアクセスはWebサイトでは利用できません。
- 多くの既存のウェブサイトはオフライン機能をサポートしていません。
- ユーザーは、ホーム画面にアプリのアイコンが常に表示されることはありません。 Webサイトは、Webブラウザーでのみ開く必要があります。
- ネイティブアプリとハイブリッドアプリはApp StoreとGoogle Playに表示されますが、ウェブアプリは表示されません。 したがって、再配布はそれほど賢明ではありません。
ネイティブアプリ
ネイティブアプリは、1つのプラットフォーム専用に開発されています。 アプリケーションストア(Google PlayストアやAppleのApp Storeなど)からインストールできます。
- 例-Whatsapp、Facebook。
- 利点-
- ネイティブアプリはデバイス上に存在し、デバイスのホーム画面上のアイコンからアクセスできます。
- カメラ、GPS、加速度計、コンパス、連絡先リストなどを使用できます。 また、ジェスチャ(標準のオペレーティングシステムジェスチャ、または新しい、アプリ定義のジェスチャ)を組み込むこともできます。
- ネイティブアプリは、デバイスの通知システムを使用してオフラインで作業できます。
- 出版社はプッシュ通知を利用して、新しいコンテンツが公開されるたびに、または注意が必要なときにユーザーに警告することができます。
- ネイティブアプリは各オペレーティングシステムのUIデザインを維持するため、最高のユーザーエクスペリエンスを提供します。 たとえば、ネイティブアプリには、Androidで左揃えのヘッダー、iOSで中央揃えのヘッダーを含めることができます。
- 再配布は、アプリストアで見られるように簡単です。
- 欠点-
- アプリを構築するための高コスト:あるプラットフォーム用に開発されたネイティブアプリは、別のプラットフォームでは実行されません。 Android用に構築されたアプリはiOSでは実行されません。 iOS向けにまったく異なるアプリを構築する必要があります。 このため、アプリの複数のバージョンを維持する必要があります。
- ネイティブアプリを公開する場合でも、モバイルはより多くのトラフィックをもたらすため、モバイルウェブサイトを適切に維持してください。 したがって、メンテナンスはより高くなります。
ハイブリッドアプリ
ハイブリッドアプリは、既存のWebサイトのコンテンツをアプリ形式で公開する方法です。 それらは、Webアプリとネイティブアプリの混合としてよく説明できます。
- 例-Instagram、Wikipedia。
- 利点-
- ハイブリッドアプリの開発は、ネイティブアプリの開発よりも安価です。 クロスプラットフォーム向けに構築できます。つまり、アプリ開発のコストを削減できます。
- メンテナンスするバージョンは多くないため、メンテナンスは簡単です。
- デバイスで利用可能ないくつかの機能を利用できます。
- App Storeにあり、簡単に配布できます。
- アプリ内にのみブラウザが組み込まれています。
- 欠点-
- グラフィックスは、ネイティブアプリと比較して、オペレーティングシステムにあまり慣れていません。
- ハイブリッドアプリはネイティブアプリよりも低速です。
モバイルテスト-デバイスとアプリケーション
デバイステスト
通常、このタイプのテストは、モバイルデバイスの品質を保証するために行われています。 テストには、モバイル向けのハードウェアおよびソフトウェアのテストが含まれます。 ここでは、一般にモバイルデバイスで実行されるさまざまな種類のテストについて説明します。
単体テスト
単体テストは、通常は開発者によってモバイルデバイス開発の一部がテストされるテストフェーズです。 ハードウェアテスト、ソフトウェアテスト、および機械的テストが含まれる場合があります。
工場試験
工場テストは、モバイルデバイスの一種の健全性チェックです。 製造または組み立てによってもたらされた欠陥がないことを確認するために、自動的に実施されます。 主に次のテストが含まれています-
- モバイルアプリケーションのテスト
- ハードウェアテスト
- バッテリー(充電)テスト
- 信号受信
- ネットワークテスト
- プロトコル試験
- モバイルゲームのテスト
- モバイルソフトウェアの互換性テスト
認定試験
認定テストは、モバイルデバイスが市場に出る前のチェックです。
アプリケーションテスト
モバイルアプリケーションのテストとは、ハンドヘルドモバイルデバイス用に開発されたソフトウェアの機能、使いやすさ、一貫性をテストするプロセスです。 モバイルデバイスで実行できるさまざまな種類のテストがあります。 例えば、
- 機能テスト
- 臨床検査
- 性能試験
- メモリーリークテスト
- 割り込みテスト
- ユーザビリティテスト
- 設置テスト
- 認定試験
- セキュリティテスト
キーポイント
- 一般に、デバイステストはモバイルデバイス自体をチェックするために実行されますが、モバイルアプリケーションのテストには、選択したデバイスで実行されるアプリケーションのテストが含まれます。
- デバイステストと呼ぶと、ハードウェアテストもその一部になります。 モバイルアプリケーションのテストの場合、それは依存します。つまり、テスト対象のアプリケーションがハードウェア統合を必要とする場合、ハードウェアテストが関係します。
- 自動化は、モバイルデバイスのテストとモバイルアプリケーションのテストで可能です。
モバイルテスト-エミュレーターとシミュレーター
1つは、モバイルテストの場合は自明です。 モバイルテストを実行するには、モバイルデバイスが必要です。 これは、特定のモバイルセットで製品がどのように動作し、どのように見えるかにアクセスするためです。
航空券予約システムのアプリケーションを開発しているとします。 製品が完全に開発されたら、モバイルテストの一環として、Androidスマートフォン、iOS、Blackberryスマートフォン、その他のさまざまな種類のタブレットやiPadなど、主に使用されるすべてのデバイスでアプリケーションが期待どおりに動作するかどうかを確認する必要があります。
この種のチェックを行うには、そのようなデバイスをそれぞれ取得する必要があります。その後、アプリケーションが期待どおりに動作するかどうかをチェックできます。 はい、あなたは正しいと思っていました。製品所有者は、このような非常に多くのモバイルデバイスを調達してテストを実行するのに非常に高価だと反論するでしょう。 スマートな代替手段はありますか?
この問題の解決策は、モバイルシミュレーターとモバイルエミュレーターを使用することです。 これらは主に、スマートフォンの重要な機能のシミュレーションを提供するように設計されたソフトウェアプログラムです。 それらは本質的に非常に似ているため、時々、同じ意味で使用されます。
エミュレータ/シミュレータでのテストが実際のデバイスでのテストとどのように異なるかを比較しましょう-
Real Device | Emulator/Simulator | |
---|---|---|
Price | Getting real devices will cost you a lot. | It is almost free, we just need to download and install them |
Processing Speed | It has faster processing; however network latency may be normal. | It is slower as compared to actual devices. It has observed less latency than real devices connected to the local network or in the cloud. |
Debugging | Debugging is not that easy. | It provides step-by-step debugging of an application. Also, it provides an efficient way for capturing screenshots. |
Web-app Testing | Web applications can be tested in a normal way. | Testing a web application is much easier. |
Reliability | Testing on a real device has a major advantage that it always gives accurate results. | It cannot simulate all types of user interactions; hence it may lead to false results sometimes. So it scores low when it comes to reliability. |
シミュレータ/エミュレータは、次の機能を模倣することはできません-
- モバイル機器のバッテリー
- 携帯端末のカメラ
- 着信コールやSMSなどの中断を模倣するのが難しい。
- モバイルデバイスのメモリ使用量のそれほど現実的なシミュレーションではありません。
ここで、モバイルシミュレータとモバイルエミュレータについて詳しく理解しましょう。 2つの間に特定の違いがあります。 次の表に、シミュレータとエミュレータの主な違いを示します。
Emulator | Simulator | |
---|---|---|
What it mimics |
Mobile device software モバイル機器のハードウェア モバイルオペレーティングシステム a |
デバイスの内部動作。 ハードウェアを模倣しません。 |
How to get it | It is generally provided by the device manufacturer. | It is generally provided by the device manufacturer or some other company. |
Internal structure | It is written in machine-level assembly language. | It is written in high-level language. |
Debugging | It is more suitable for debugging. | It is not suitable for debugging purpose. |
Performance | Emulators are really slow. Emulating the actual hardware usually makes the software run slower than it would natively. | Faster than emulators. |
Example | Google’s Android SDK | Apple’s iOS Simulator |
それでは、モバイルテストに最適な選択肢は何ですか? ベストプラクティスは、実際の開発が進行している間に、エミュレーターまたはシミュレーターを使用する必要があることを示しています。 製品を完成させる前に、実際のデバイスを選択して健全性チェックを行う必要があります。 たとえば、膨大な数のAndroidスマートフォンユーザーがいるため、賢明な選択は最新のAndroidデバイスの健全性チェックを行うことであり、シミュレーターで回帰を実行できます。
モバイルテスト-アプリケーション
モバイルアプリケーションテストの簡単な定義は次のようになります。「*モバイルアプリケーションテスト*は、ハンドヘルドモバイルデバイス用に開発された*アプリケーションソフトウェア*の機能、使いやすさ、一貫性をテストするプロセスです。 モバイルアプリケーションのテストは、自動または手動のタイプのテストになります。」
注-理解を深めるために、オンライン航空券予約システムのモバイルアプリケーションをテストしていると仮定します。
機能テスト
機能テストは、定義された要件に従って動作していることを確認するためのアプリケーションの最も基本的なテストです。 他のユーザーインターフェイスベースのアプリケーションと同様に、モバイルアプリケーションでは、ユーザーシナリオで多くの人間の対話が必要です。
テストシナリオの例-
- 選択した出発地のフライトの空室状況が、選択した日付のみに表示されることを確認します。
- 過去の日付が検索結果に含まれていないことを確認します。
互換性テスト
互換性テストは、モバイルアプリケーションのテストに関して最高のスタックを獲得しています。 一般に、モバイルアプリの互換性テストの目的は、特定のデバイスでアプリの主要な機能が期待どおりに動作することを確認することです。 互換性自体は数分しかかからず、十分に事前に計画できます。
どのモバイルデバイスの互換性テストを実行するかを決定するのは簡単な作業ではありません(利用可能なすべてのデバイスでのテストは単に不可能であるため)。 そのため、考えられるすべての組み合わせでテストマトリックスを準備し、クライアントが優先順位を付けます。
テストシナリオの例-
- Androidデバイスでフライト検索が正常に実行されることを確認します。
- Apple iPadのフライト検索が正常に実行されることを確認します。
ローカリゼーションテスト
現在、ほとんどのアプリはグローバルに使用するように設計されており、言語、タイムゾーンなどの地域のトレイルに注意することが非常に重要です。 誰かがタイムゾーンを変更した場合、アプリの機能を検証することが重要です。 西洋のデザインが東の国からの観客とうまく機能しない場合があり、その逆もあることを考慮に入れる必要があります。
テストシナリオの例-
- 別の言語(英語以外の言語など)でモバイルアプリを使用する場合、UIまたはデータの切り捨ての問題がないことを確認します。
- モバイルアプリケーションのタイムゾーンの変更が適切に処理されることを確認します。
臨床検査
通常、ネットワークキャリアが実施する実験室テストは、完全なワイヤレスネットワークをシミュレートすることによって行われます。 このテストは、モバイルアプリケーションが音声および/またはデータ接続を使用していくつかの機能を実行する際の不具合を見つけるために実行されます。
テストシナリオの例-
- お客様がサポートスタッフとボイスチャットを行っている間、不具合がないことを確認します。
性能試験
モバイルパフォーマンステストは、クライアントアプリケーションのパフォーマンス、サーバーのパフォーマンス、およびネットワークのパフォーマンスを対象としています。 パフォーマンステストシナリオがこれらすべての領域をカバーすることを確認することが重要です。 パフォーマンステストツールを使用すると、既存のネットワーク、サーバー、およびサーバー側アプリケーションのボトルネックを特定することは難しくありません。事前に定義された負荷とトランザクションミックスがあります。
テストシナリオの例-
- フライト利用可能チェックに妥当な時間しかかからないことを確認します。
- フライトの空席状況を確認している間、モバイルが正常に動作し、ハングしないことを確認します。
ストレステスト
ストレステストは、機能およびユーザーインターフェイスのテスト中に見過ごされる可能性のある例外、ハング、およびデッドロックを見つけるために不可欠です。 ここにストレステストの基準のいくつかのリストがあります-
- アプリケーションに可能な限り多くのデータをロードして、そのブレークポイントに到達しようとします。
- 同じ操作を何度も繰り返します。
- さまざまな速度で繰り返し操作を実行します–非常に迅速または非常にゆっくり。
- アプリケーションを長時間実行したままにして、デバイスと対話してアイドル状態にするか、スライドショーなどの長い時間を要する自動タスクを実行します。
- 画面のタップとキーストロークをアプリケーションにランダムに送信します。
- デバイスで複数のアプリケーションを実行して、アプリケーションと他のデバイスアプリケーションを頻繁に切り替えられるようにします。
テストシナリオの例-
- 1000人のユーザーがモバイルアプリにアクセスして国内便を検索していることを確認します。
- 1000人のユーザーがモバイルアプリにアクセスして国際便を検索していることを確認します。
セキュリティテスト
ハッキング、認証、および承認ポリシー、データセキュリティ、セッション管理、およびその他のセキュリティ標準に対する脆弱性は、モバイルアプリのセキュリティテストの一環として検証する必要があります。 ネットワーク経由でユーザーを認証する場合、アプリケーションはユーザー名とパスワードを暗号化する必要があります。
セキュリティ関連のシナリオをテストする1つの方法は、OWASP Zed Attack Proxyなどのプロキシサーバーを介してモバイルのデータをルーティングし、脆弱性を探すことです。
テストシナリオの例-
- 2つの異なるモバイルデバイスで同じユーザー資格情報でアプリケーションが動作しないことを確認します。
- 15分以上非アクティブなままの場合、セッションが自動的に期限切れになることを確認します。
メモリーリークテスト
モバイルデバイスのメモリは他のコンピューターと比較して非常に限られています。また、モバイルオペレーティングシステムには、過剰なメモリを使用してユーザーエクスペリエンスを低下させるアプリケーションを終了するデフォルトの動作があります。
メモリテストは、モバイルアプリケーションにとって非常に重要であり、各アプリケーションがユーザーの旅を通じて最適化されたメモリ使用量を維持することを保証します。 システムアーキテクチャはエミュレータと実際のデバイスでは異なるため、実際のターゲットデバイスでメモリテストを実施することをお勧めします。
テストシナリオの例-
- フライトの可用性チェックを10回行い、チェックごとに増加するメモリ使用量を書き留めます。
- アプリケーションを10分間実行し続け、メモリ使用量が安定しているかどうかを観察します。
消費電力テスト
さまざまなモバイルデバイスで使用されるバッテリーにはいくつかの種類があります(つまり、 ニッケルカドミウム/リチウムイオン/ニッケル金属ハイブリッド)。 消費電力のテストに重点を置いていますが、各アクティビティレベルでバッテリーの状態を測定する必要があります。 これにより、個々のアプリケーションの消費電力をよりよく理解できます。
消費電力テストは手動で実行できます。また、Trepn Profiler、Power Tutor、Nokia Energy Profilerなど、無料のツールも市場で入手できます。 これらは、スマートフォンまたはタブレットでリアルタイムの電力消費量を表示できるアプリケーションです。
テストシナリオの例-
- モバイルアプリを使用してフライトの空き状況を検索し、消費電力が最小限であることを確認します。
- モバイルアプリを理想的な状態に保ちます。アプリでアクティビティが発生していないときに電力消費がないことを確認します。
割り込みテスト
アプリケーションは、機能している間、着信コールやネットワークカバレッジの停止や回復など、いくつかの中断に直面する可能性があります。 これは再び区別することができます-
- 着信および発信SMSおよびMMS
- 着信と発信
- 着信通知
- バッテリーの取り外し
- データ転送のためのケーブルの挿入と取り外し
テストシナリオの例-
- フライトの可用性チェックが一時停止され、着信コールを受信した後に再開されることを確認します。
- ユーザーがアプリの使用中に通話を拒否し、その後同じアプリを再開できることを確認します。
ユーザビリティテスト
ユーザビリティテストは、対象読者のために次の3つの基準に基づいてアプリケーションを評価します-
- 効率-特定のユーザーが特定の環境で特定の目標を達成できる精度と完全性。
- 有効性-達成された目標の正確さと完全性に関連して費やされたリソース。
- 満足度-ユーザーおよびその使用により影響を受ける他の人々に対する作業システムの快適さと受容性。
アプリケーション設計の初期段階からユーザビリティテストを実施することは非常に重要であり、アプリケーションが完了したときにのみ実行すべきではありません。 ユーザビリティテストには、ユーザーの多大な関与が必要であり、出力はアプリケーション設計に影響を与える可能性があり、プロジェクトの後の段階で変更することは非常に困難です。
テストシナリオの例-
- 空席状況の確認はホームページで行う必要があります。
- スポンサー広告は、コンテンツの途中に表示しないでください。
設置テスト
インストールテストでは、ユーザーが問題に直面することなく、インストールプロセスがスムーズに進むことを確認します。
テストシナリオの例-
- インストールプロセスがスムーズで、時間がかからないことを確認します。
- エンタープライズアプリストアからインストールが成功したことを確認します。
アンインストールテスト
アンインストールテストの基本は、「アンインストールを行うと、アプリに関連するデータが一気に消去されるはずです」と1行で要約できます。
テストシナリオの例-
- すべてのアプリケーション関連ファイルがアンインストール後に正常に削除されることを確認します。
- メディアファイルを保存するアプリ(WhatsappやFacebookなど)の場合、アプリのアンインストール後もファイルを保持します。
更新テスト
モバイルアプリの更新には非常に注意する必要があります。 更新後、アプリケーションが十分に機能しないことを頻繁に訴えます。 そのため、更新テストの下で、アプリが以前と同じように機能することを確認することが非常に重要です。 簡単に言えば、何も壊してはいけません。 モバイルアプリケーションの更新は、*自動更新*と*手動更新*の2つの方法で実行できます。
テストシナリオの例-
- 自動更新後にアプリケーションが正常に動作することを確認します。
- 更新の進行状況が適切に表示されることを確認します。
認定試験
コンプライアンスの証明書を取得するには、各モバイルデバイスが異なるモバイルプラットフォームによって設定されたガイドラインに対してテストされる必要があります。
テストシナリオの例-
- アプリケーションがiPhoneにインストールされたときにiOS電話のポリシーに準拠していることを確認します。
- Androidにインストールした場合、アプリケーションがAndroidスマートフォンのポリシーに準拠していることを確認します。
モバイルテスト-UI
私たちはモバイルアプリケーションを使用していると仮定し、興味深いことに、あなたは次の状況を経験します-
- ボタンの配置がありません。
- テキストがトリミングされています。
- カレンダーコントロールが切断されています。
実際、これはどのユーザーにとっても不快な体験です。 ユーザーに優れたエクスペリエンスを提供するために、モバイルUIテストを強くお勧めします。
テスト計画で最初に検討する領域は、ユーザーインターフェイスです。 テスターとしてのあなたの仕事は、アプリケーションが次のような特定の期待を満たしていることを確認することです-
- デバイスの全体的な配色/テーマ
- アイコンのスタイルと色
- ページの読み込み中の進行状況インジケーター
- メニューとその起動方法、およびそれらに含まれる典型的なアイテム
- このデバイス上のアプリケーションの全体的な応答性
モバイルUIテストの基本について詳しく説明しましょう。
画面の向き/解像度
Webコンテンツは、さまざまなデバイスやネットワーク条件で見た目と使い心地が優れている必要があります。 一般的に、ページが使用可能であることを確認できるように、一般的に使用される画面解像度でWebページをテストすることをお勧めします。
複数列のレイアウトを使用している場合は、訪問者の解像度が低い場合でも列が正しく整列し、表示されていることを確認することをお勧めします。 また、標準の画面解像度を知ることも重要です-
- 640×480
- 800×600
- 1024×768
- 1280×800
- 1366×768
- 1400×900
- 1680×1050
利用可能なツール
市場には、モバイルUIテストをよりスムーズでシンプルにするためのツールがかなりあります。 たとえば-
- Google Chrome拡張機能
- Screenfly
- ブラウザスタック
これらのツールとその有用性についてもう少し理解しましょう。
Google Chrome拡張機能
Googleクロームウェブブラウザで利用できる無料の機能です。 ここでは、Google Chrome拡張機能を使用してモバイルWebをテストする方法を段階的に説明しました-
- ステップ1 *-「Google Chrome Web browser」でテスト中のWebサイトを開きます。
- ステップ2 *-F12を押します。 次のスクリーンショットに示すように、開発者ツールウィンドウが開きます。
- ステップ3 *-アイコンのようなモバイルデバイスをクリックします。 次のスクリーンショットを参照してください。
- ステップ4 *-Webサイトのテストに使用するモバイルデバイスを選択します。 UI検証を行うために、使用可能なさまざまなデバイスを選択できます。
Screenfly
Screenflyは無料で使いやすいツールです。 これを使用するには、Webブラウザでhttp://quirktools.com/screenfly/[Quirktools]と入力するだけです。 次の画面が表示されます。
テスト対象のWebサイトを入力し、[ Go ]をクリックします。 Webサイトを表示するモバイルデバイスを選択します。
BrowserStack
モバイルUIテストを実行するためのもう1つの優れたツールです。 それは素晴らしい結果をもたらします。 これは有料のツールですが、有効なメールアドレスでhttps://www.browserstack.com/[BrowserStack]に登録することにより、無料のトレイルを利用できます。
タッチスクリーン
マルチタッチと シングルタッチスクリーン
お使いのデバイスとアプリケーションが、iPhoneのピンチツーズーム効果などのマルチタッチ機能をサポートしている場合は、特にソフトキーボードでの入力中に、複数の場所で同時に画面に触れることを含む多くのテストケースを含めるようにしてください。
ロングタッチvs. ショートタッチ
タッチスクリーンデバイスをダブルクリックするという概念はありませんが(アプリケーションに具体的に実装されている場合は可能ですが)、Androidスマートフォンなどの一部のデバイスは、ロングタッチとショートタッチを区別します。 アイテムを押したままにすると、画面の中央にコンテキストメニューが表示され、同じアイテムを短くクリックすると、そのコンテキストメニューの最初のアクションが自動的に実行されます。
ボタンのサイズと位置
ボタンとアイコンは、大きな指先で簡単にクリックできるように、画面の端から十分に大きく、十分に離れていることを確認してください。
ソフトキーとハードキー
ソフトキーボード
多くの場合、エンドユーザーにとって重要なさまざまな特殊なケースやコーナーケースがあります。
- ユーザーのメインアクションがテキストの入力である場合、ソフトキーボードは自動的に表示されますか?
- ハイライトされたフィールドが電子メールアドレスを入力するためのものである場合、ソフトキーボードの最初のレイヤーにはショートカット「@」および「.com」キーが含まれていますか?
- ソフトキーボードを簡単に閉じて再表示できますか?
- ソフトキーボードとハードキーボードを同じように使用できますか(デバイスに両方がある場合)。
ハードキー
[スタート]、[ホーム]、[メニュー]、[戻る]など、デバイスで使用可能なハードキーの使用に関する多くのテストを必ず行ってください。 これらはすべて、デバイスのネイティブアプリケーションと対話する方法と同様に、アプリケーションと対話する必要があります。
トラックボール、トラックホイール、タッチパッド
デバイスにタッチスクリーンがない場合は、画面のナビゲーションがユーザーにとってできるだけ痛みがないことを確認することがさらに重要です。 これらの場合、ユーザーはオブジェクト間を移動するためにトラックボール、トラックホイール、またはタッチパッドを使用する場合があります。
モバイルテスト-計画とツール
電話、タブレット、電子書籍リーダーなどのモバイルデバイスのテストには、特別な機器と方法論が必要です。 従来のデスクトップスクリーンキャプチャソフトウェアはタッチインタラクションを適切にキャプチャできないため、ユーザビリティの専門家は戦略的に配置されたカメラを使用して、これらのモバイルデバイスでユーザビリティテストのインタラクションを記録してきました。
モバイルデバイステストの実行準備
電話、タブレット、および電子書籍リーダーでのユーザビリティテストを容易にする方法論とデバイスは引き続き開発されています。 モバイルデバイスのテストを計画するときは、次の点に留意する必要があります-
- *あなたの時間枠と予算。*時間枠と予算を十分に理解することは、あなたのニーズに基づいてどのプロセスと機器が最適に機能するかを決定するのに役立ちます。
- *スペースの物理的なセットアップとテストのキャプチャ方法。*これは、忠実度の低い配置から、特殊なプラットフォームとカメラデバイスの使用、および/またはアイトラッキングソフトウェアの使用まで多岐にわたります。
- 対象読者とデバイス。 Web分析を使用して、サイトにアクセスするモバイルユーザーの数、使用するデバイス、およびオペレーティングシステムを確認します。 この情報を理解すると、テストするデバイスを知るのに役立ちます。
テスト計画後にカバーすべきもう1つの重要な側面は、*テストデバイス管理*です。 大規模な組織では、モバイルデバイスのテストを処理するために、組織の機密データを保護するスマートな方法が必要です。 これを行うには、セキュリティソフトウェアが必要です。 次のセクションでは、デバイス管理ツールについて詳しく理解します。
デバイス管理ツール
モバイルデバイス管理(MDM)は、組織で使用されている複数のモバイルサービスプロバイダーおよび複数のモバイルオペレーティングシステムに展開されている従業員のモバイルデバイスを監視、管理、保護するためにITで使用されるセキュリティソフトウェアの一種です。
MDMは多くの場合、追加のセキュリティサービスやモバイルアプリケーション管理などのツールと組み合わされて、完全なモバイルデバイスとセキュリティのエンタープライズモビリティ管理ソリューションを作成します。
この仕事をするために市場で利用できる多くのツールがあります。 次の表は、いくつかの一般的なツールとその機能の概要を示しています。
Products | BlackBerry MDM | Citrix MDM | Dell MDM | IBM MDM | MobileIron MDM | SOTI MDM |
---|---|---|---|---|---|---|
Android | 2.3+ | Yes | Yes | Yes | 2.3 through current | Yes |
iOS | 5.0+ | Yes | Yes | Yes | 4.0 through current | Yes |
Windows Phone | No for BES10 (WP 8+ for BES12) | Yes | Yes | Yes | 7 through current | Yes |
BlackBerry | Yes, BBOS, BlackBerry 10 | Yes | No | Yes | 10 (through ActiveSync) | No |
Symbian | No | Yes | No | Yes | No | No |
Windows OS | No | Yes | Yes | Yes | 8.1 RT/Pro | No |
Mac OSX | No | Coming soon | Yes | Yes | Lion, Mountain Lion | Yes |
Other | No | Windows Mobile | None | Office 365, Gmail, Lotus | None | Windows Mobile, CE, Embedded |
Configure/disable WiFi | Yes | Yes | Yes | Yes | Yes | Yes |
Device Encryption | Yes | Yes | Yes, device type dependent | Yes | Yes | Yes |
Email Encryption | Yes | Yes | Yes, device type dependent | Yes | Yes | Yes |
Multifactor authentication | Yes | Yes | No | Yes | Yes | Yes |
Malware detection | No | No | No | Yes | Yes with partner integration | Yes |
Firewall | Yes | No | No | Yes | Yes with partner integration | Yes |
Separate User Data from Corporate Data | Yes | Yes | Yes | Yes | Yes | Yes |
モバイルテスト-ハードウェアの観点
実際のモバイルデバイスのテストを進める前に、モバイルデバイスのハードウェアアーキテクチャを理解することが非常に重要です。 これは、実際にモバイルデバイス/モバイルデバイスアプリケーションのテストにジャンプするときに、より良いテスト計画に役立ちます。 モバイルデバイスハードウェアのさまざまな特性を見てみましょう。
ハードウェアコンポーネント
携帯電話を使用する場合、主に次の部分で構成されます。
回路基板
それはすべての活動を制御する電話の頭脳とみなすことができます。
タッチスクリーンディスプレイ
タッチスクリーンは、スマートフォンの重要なコンポーネントです。 タッチスクリーンは、画面上の指またはスタイラスを置いた場所を認識し、それに応じて座標を電話機のCPUに伝えます。
タッチスクリーンには2つの一般的なタイプがあります-
- 抵抗性タッチスクリーン-画面上にオーバーレイを形成する2つのレイヤー(最小のギャップで分離)があります。 画面上の任意の点に指を置くと、2つが接触を形成し、座標が取得されます。 これらは比較的安価であり、ほとんどの予算の携帯電話で当然見られます。 欠点は、タッチを登録するために一定の圧力が必要になることです。 時間が経つにつれて、ある程度の損傷が画面に発生します。
- 静電容量式タッチスクリーン-画面全体が一定量の電荷を保持する容量性物質でコーティングされています。 指のような導電性の物体が画面上に置かれると、その点で静電容量が変化し、座標が取得されます。 静電容量式タッチスクリーンは、人間の指が静電容量の変化を引き起こさない寒冷地ではうまく反応しないため、このようなシナリオにはスタイラスが推奨されます。 次に、ほとんどすべての指を正確に特定できる「マルチタッチタッチスクリーン」があります。 これにより、タッチスクリーンで実行できるジェスチャーの数が増えました。
メモリカード
メモリカードにはさまざまなサイズと容量があります。 これらは、デジタル情報を保存するためのデータストレージデバイスとして広く使用されています。
SIMカード
SIMカードは、端末の場所と特定の端末の使用の両方に関係なく、ユーザーがすべてのサブスクライブされたサービスにアクセスできるように、パーソナルモビリティを提供します。 SIMカードを別のGSM携帯電話に挿入して、その電話で通話を受信したり、その電話から通話を発信したり、他の登録済みサービスを受信したりする必要があります。
電池
スマートフォンは、携帯電話のメーカー、寸法、機能に応じて、さまざまなバッテリーで動作します。 スマートフォンに大きく依存している人にとっては、バッテリーが可能な限り長持ちすることが重要です。 これにより、頻繁に充電する必要がなくなり、最も必要なときに充電不足になる可能性が低くなります。
iOSのUDID
各iPhoneまたはiPod Touchには、デバイスに固有の40文字の文字列であるUnique Device Identifier(UDID)があります。 これはシリアル番号のようなものですが、推測するのははるかに困難です。 次のようになります-2b6f0cc904d137be2e1730235f5664094b831186。
UUIDを見つける方法は?
- iOSデバイスをコンピューターに接続します。
- iTunesを開きます。
- iTunesで、左側の列の[デバイス]の下にあるデバイスの名前をクリックします。
- ウィンドウのメインセクションでデバイスのシリアル番号を1回クリックします。
- シリアル番号は、デバイスのUDIDに変更する必要があります。
iOSのプロビジョニングプロファイル
プロビジョニングプロファイルは、開発者とデバイスを承認されたiPhone開発チームに一意に結び付け、デバイスをテストに使用できるようにするデジタルエンティティのコレクションです。 開発プロビジョニングプロファイルは、アプリケーションコードを実行する各デバイスにインストールする必要があります。
iOS用のプロビジョニングプロファイルを作成する方法
- Google Chrome、Mozilla Firefox、またはSafariを実行します。
- iOS Devで。 センターで、証明書、識別子とプロファイルをクリックします。
- [iOSアプリ]パネルで、[プロビジョニングプロファイル]をクリックします。
- をクリックします。
- [iOSアプリ開発]を選択し、[続行]をクリックします。
- プロビジョニングプロファイルに関連付けるアプリIDを選択し、[続行]をクリックします。
- 複数のアプリで1つの開発プロビジョニングプロファイルを使用できるようにするには、ワイルドカードアプリIDを選択します(利用可能な場合)。
- プロビジョニングプロファイルに含める開発用の1つ以上の証明書を選択し、[続行]をクリックします。
- 開発用の証明書のみがリストされます。
- プロビジョニングプロファイルに含める1つ以上のデバイスを選択し、[続行]をクリックします。
- プロファイルの名前を入力し、「生成」をクリックします。
- (オプション)[ダウンロード]をクリックして、プロビジョニングプロファイルをダウンロードします。
AppBuilderでプロビジョニングプロファイルを追加する方法は?
- 歯車アイコンをクリックして、[オプション]を選択します。
- iOS→プロビジョニングプロファイルを選択します。
- インポートをクリックします。
- プロビジョニングプロファイルのモバイルプロビジョニングファイルが保存されている場所を参照し、選択してインポートを確認します。
デバイスのオプションと設定
テキスト広告、動的検索広告、画像広告、またはディスプレイ広告のデバイス設定(モバイルまたはすべて)を指定できます。
広告グループにモバイル優先広告と通常広告の両方がある場合、モバイル優先広告のみがモバイルデバイスに配信され、通常広告のみがコンピューターとタブレットに配信されます。
タイプリストで、[広告と拡張機能]を選択し、更新する広告のタイプを選択します。 1つ以上の広告を選択します。 編集パネルの[デバイス設定]で、[モバイル]または[すべて]を選択します。
モバイルデバイスのテスト-タイプ
モバイルデバイスで実行できるさまざまな種類のテストの詳細を見てみましょう。
ネットワーク接続
次の表に、モバイルデバイスで実行できるネットワーク接続テストのチェックリストを示します。
Sr.No. | Description |
---|---|
1 | Does the app behave according to specification if connected to the internet through Wi-Fi? |
2 | Does the app behave according to specification if connected to the internet through 3G? |
3 | Does the app behave according to specification if connected to the internet through 2G? |
4 | Does the app behave according to specification of the app is out of network reach? |
5 | Does the app resume working when it gets back into the network reach from outside reach of the network? |
6 | Update transactions are processed correctly after re-establishing connection. |
7 | Does the app still work correctly when tethering or otherwise connected to another device? |
8 | What happens if the app switches between networks (Wi-Fi, 3G, 2G)? |
9 | Does the app use standard network ports (Mail: 25, 143, 465, 993 or 995 HTTP: 80 or 443 SFTP: 22) to connect to remote services, as some providers block certain ports. |
SDカードの相互作用
次の表に、SDカードと携帯電話の相互作用のプレミア機能をチェックするチェックリストを示します。
Sr.No. | Description |
---|---|
1 | Can the app be installed on the device? |
2 | Does the app behave as designed/desired if there is an incoming call? |
3 | Does the app behave as designed/desired if there is an incoming SMS? |
4 | Does the app behave as designed/desired if the charger is connected? |
5 | Does the app behave as designed/desired if the charger is disconnected? |
6 | Does the app behave as designed/desired if the device goes to sleeping mode |
7 | Does the app behave as designed/desired if the device resumes from sleeping mode |
8 | Does the app behave as designed/desired if the device resumes from lock screen? |
9 | Does the app behave as designed/desired if the device is tilted? |
10 | Does the app behave as designed/desired if the device is shaken? |
11 | Does the app behave as designed/desired if a local message is coming from another app (think of: calendar reminders, to-do task etc.)? |
12 | Does the app behave as designed/desired if a push message is coming from another app (think of: twitter mentions, Whatsapp message, wordfeud invitation, etc.). |
13 | Does the app interact with the GPS sensor correctly (switch on/off, retrieve GPS data)? |
14 | Is the functionality of all the buttons or keys on the device defined for this app? |
15 | Verify that buttons or keys which have no defined function have no unexpected behaviour on the app when activating. |
16 | In case there’s a true “back” button available on the device does the “back” button take the user to the previous screen? |
17 | In case there’s a true “menu” button available on the device, does the menu button show the app’s menu? |
18 | In case there’s a true “home” button available on the device, does the home button get the user back to the home screen of the device? |
19 | In case there’s a true “search” button available on the device, does this get the user to some form of search within the app? |
20 | Does the app behave as designed/desired if the “Battery low” message is pushed |
21 | Does the app behave as designed/desired if the sound on the device is turned off? |
22 | Does the app behave as designed/desired if the device is in airplane mode? |
23 | Can the app be de-installed from the device? |
24 | Does the application function as expected after re-installation? |
25 | Can the app be found in the app store? (Check after go-live) |
26 | Can the app switch to different apps on the device through multitasking as designed/desired? |
27 | Are all touch screen positions (buttons) working when a screen protector is used. |
Bluetoothテスト
Bluetoothデバイスは、10メートルの半径内でのみ通信できます。 このようなデバイスには、キーボード、マウス、ワイヤレスヘッドフォンなどがあります。 次の表は、実行可能なBluetoothテストのチェックリストを提供します-
Sr.No. | Description |
---|---|
1 | User can able to search all available devices on the range. |
2 | Both data and voice transmissions can be sent through the use of short range networks. |
3 | Both data and voice transmissions can be received through the use of short range networks. |
4 | User can able to disconnect any time. |
5 | While closing Bluetooth ask to disconnect the present connections. |
6 | Bluetooth maximum range is 10 meters. |
7 | Through mobile phone, you can send pictures, videos, exchange business cards and also transfer files to your PC. |
8 | (Device paired) this is a message used to confirm that a user has successfully paired two Bluetooth devices. |
9 | Non-discoverable mode, a device that will not respond to discovery requests. |
10 | Non-discoverable mode, a device that will not respond to discovery requests. |
11 | Non-pairable mode, a device that will not accept pairing is said to be in non-pairable mode. |
12 | Passkey, a passkey is a user-defined password needed to connect to a device from any other device. It is strongly advised to use passkeys wherever possible to avoid unauthorized access to your Bluetooth devices. |
13 | Authentication − The process of verifying the identity of the other end of a communications link. In Bluetooth technology this is achieved by the authentication process based on passkeys and pairing. |
14 | Devices not found, this is an error message which may appear if a search for other devices in range does not find anything. |
15 | Idle Mode, a device is in idle mode when it has no established links with other devices. In this mode a device may discover other devices. |
16 | Known Device testing, a device which is already known about by another device. Either the devices have been paired in the past or some information of the known devices is stored. |
Wi-Fiテスト
携帯電話のWiFi接続をテストすることは、インターネットがサービスプロバイダーによって約束された速度で動作していることを確認するのに最適な方法ですが、デスクトップコンピューターでこれらのテストを実行することに限定されません。 携帯電話のWiFiテストは、自宅やオフィスのさまざまな場所でWiFi信号のパワーをテストするのに最適な方法です。 以下は、モバイルデバイスのWifiテストチェックリストです。
Sr.No. | Description |
---|---|
1 | Does the app behave according to specification if connected to the internet through Wi-Fi? |
2 | Does the app behave according to specification of the app is out of network reach? |
3 | Does the app resume working when it gets back into network reach from outside reach of the network? |
4 | What happens if the app switches between networks (Wi-Fi, 3G, 2G) |
5 | Does the app use standard network ports (Mail: 25, 143, 465, 993 or 995 HTTP: 80 or 443 SFTP: 22) to connect to remote services, as some providers block certain ports. |
スマートフォンで携帯電話のWiFi速度テストを実行する方法
スマートフォンでWiFi速度テストを実行するのは簡単な作業です。 最も便利なのは、スマートフォンのモバイルWebブラウザーで実行される速度テストです。 簡単な画面上のプロンプトに従ってテストを開始してください。 オンラインテストで結果が保存されない場合は、テストの終了後にスクリーンショットを撮って履歴を提供します。
一部のテストは、iOSプラットフォームとAndroidプラットフォームの両方のアプリとして利用できます。 これらを使用するには、必要なアプリをダウンロードしてください。 次に、指示に従ってテストを実行し、結果を保存します。
速度テストを実行するツール
*Speed Test SpeedSmart WiFiおよびモバイルネットワークSpeedtest* -Apple iPhoneおよびiPadと互換性があります。 これは有料のアプリケーションです。 SpeedSmartは、すべてのiOSデバイスでセルラー(3G、4G、およびLTE)およびWi-Fi接続を評価するための究極のiOS速度テストユーティリティです。 グローバルサーバーネットワークとスマートスピードテスト方法により、正確な結果が保証されます。
*WiFi Speed Test* -Androidフォンと互換性があります。 これは有料のツールです。 このツールを使用すると、ローカル(LAN)ネットワークの速度をテストできます。 テストは、ワイヤレス(WiFi)または有線ネットワークで実行できます。
ローカリゼーションとグローバリゼーション
以下のチェックリストを参照して、モバイルデバイスのローカリゼーションおよびグローバリゼーションテストについて考えてください。
Sr.No. | Description |
---|---|
1 | Text is translated. |
2 | Translations meet the standards of native speakers with respect to grammar and accuracy of terminology. |
3 | Dialog boxes are properly resized and dialog text is hyphenated according to the rules of the user interface language. |
4 | Translated dialog boxes, status bars, toolbars, and menus fit on the screen at different resolutions. They do not wrap and are not cut off. |
5 | Menu and dialog accelerators are unique. |
6 | Visual layout is consistent with the native edition’s layout. For example, dialog elements are in the proper tab order. |
データベースのテスト
モバイルアプリにデータを保存する方法はいくつかあります。 Androidの場合、サーバー、共有設定、またはSQLiteを介してデータを保存することを選択できます。
*SQLite* は、Androidやその他のオペレーティングシステムでも一般的に使用される軽量データベースです。 SQLiteでデータを表示するには、デバイスをルート化するか、エミュレータを使用してテストする必要があります。 Android Playstoreには、このデータベースからデータを抽出するのに役立つツールがいくつかあります。
次のタイプのテストは、モバイルデータベーステストの一部を構成する必要があります-
- データベース検証テスト。
- データベース統合テスト。
- データベースパフォーマンステスト。
- 手順と機能のテスト。
- トリガーテスト。
- データベースで動作することを確認するためのCRUD(作成/読み取り/更新/削除)操作テスト。
- データベースの変更がアプリのUIに正しく表示されることをテストします。
- 検索およびインデックス機能のテスト。
回復試験
復旧テストは、災害後も運用を継続できることを確認するために使用されます。 回復テストでは、回復プロセスだけでなく、そのプロセスのコンポーネント部分の有効性も検証します。
回復テストは、アプリケーションがクラッシュ、ハードウェア障害、およびその他の同様の問題からどの程度回復できるかをテストするアクティビティです。 以下に、回復性テストのチェックリストを示します。
Sr.No | Description |
---|---|
1 | Adequate backup data is preserved. |
2 | Backup data is stored in a secure location. |
3 | Recovery procedures are documented. |
4 | All media file has been recovered from the restore point |
5 | All contacts have been recovered |
6 | All the applications has been restored successfully |
並行性テスト
通常、並行テストの助けを借りて、複数のユーザーが同時にプログラムに同時にアクセスできることを確認します。 モバイルデバイスに同時実行テストを適用している間は、ユーザーは1人だけになります。 そのため、モバイルデバイスの同時実行性テストの必要がなくなります。
ユーザビリティテスト
一般的に、ユーザビリティ評価セッションを記録するために携帯電話とWebカムを調整できるリグを取得します。
Applauseのような利用可能なツールがあります。 彼らはあなたのアプリをテストするために厳選された調査参加者のターゲットグループを提供します。 Applauseと他のそのようなサービスとの違いは、Applauseの専門家と相談し、相談に基づいて理想的な参加者を選択できることです。
以下は、GUIテストの一般的なチェックリストです。
Sr.No. | Description |
---|---|
1 | Can the app be installed on the device? |
2 | Does the app behave as designed/desired if there is an incoming call? |
3 | Does the app behave as designed/desired if there is an incoming SMS? |
4 | Does the app behave as designed/desired if the charger is connected? |
5 | Does the app behave as designed/desired if the charger is disconnected? |
6 | Does the app behave as designed/desired if the device goes to sleeping mode. |
7 | Does the app behave as designed/desired if the device resumes from sleeping mode. |
8 | Does the app behave as designed/desired if the device resumes from lock screen? |
9 | Does the app behave as designed/desired if the device is tilted? |
10 | Does the app behave as designed/desired if the device is shaken? |
11 | Does the app behave as designed/desired if a local message is coming from another app (think of: calendar reminders, to-do task etc.). |
12 | Does the app behave as designed/desired if a push message is coming from another app (think of: twitter mentions, Whatsapp message, etc.). |
13 | Does the app interact with the GPS sensor correctly (switch on/off, retrieve GPS data)? |
14 | Is the functionality of all the buttons or keys on the device defined for this app? |
15 | Verify that buttons or keys which have no defined function have no unexpected behaviour on the app when activating. |
16 | In case there’s a true “back” button available on the device does the “back” button take the user to the previous screen? |
17 | In case there’s a true “menu” button available on the device, does the menu button show the app’s menu? |
18 | In case there’s a true “home” button available on the device, does the home button get the user back to the home screen of the device? |
19 | In case there’s a true “search” button available on the device, does this get the user to some form of search within the app? |
20 | Does the app behave as designed/desired if the “Battery low” message is pushed |
21 | Does the app behave as designed/desired if the sound on the device is turned off? |
22 | Does the app behave as designed/desired if the device is in airplane mode? |
23 | Can the app be de-installed from the device? |
24 | Does the application function as expected after re-installation? |
25 | Can the app be found in the app store? (Check after go-live) |
26 | Can the app switch to different apps on the device through multitasking as designed/desired? |
27 | Are all touch screen positions (buttons) working when a screen protector is used. |
モバイルテスト-フレームワークの概要
テストフレームワーク、またはより具体的には*テスト*自動化*フレームワーク*は、*自動化されたテスト*を実行する実行環境です。 これは、テストが自動化されるシステム全体です。 これは、作業プラットフォームまたは自動テストのサポートを構成する一連の前提、概念、および実践として定義されています。
テストフレームワークが担当します-
- 期待を表現する形式を定義する
- テスト対象のアプリケーションにフックまたはドライブするメカニズムを作成する
- テストの実行と結果の報告
フレームワークのアーキテクチャ
テストフレームワークの一般的なアーキテクチャは次のとおりです-
モバイルテストの自動化には、優れたモバイルオートメーションテストフレームワークが必要です。 そのフレームワークの上に、テストケースを作成できます。 モバイル自動化テストフレームワークは、モバイルデバイスのオペレーティングシステムによって分離できます。 次の章では、AndroidテストフレームワークとiOSテストフレームワークの2種類のモバイルテストフレームワークについて説明します。
モバイルテスト-Androidフレームワーク
市場には多くのAndroidテストフレームワークがあります。 スタックのトップ5を見てみましょう。
- Robotium -Robotiumは、機能、システム、および受け入れのテストシナリオを開発するためのオープンソースのテストフレームワークです。 Seleniumに非常によく似ています。
- UIAutomator -UIAutomatorは、ネイティブAndroidアプリとゲームの高度なUIテストを提供するGoogleのテストフレームワークです。 機能的なUIテストを作成するAPIを含むJavaライブラリと、テストを実行する実行エンジンがあります。
- Appium -Appiumは、ネイティブおよびハイブリッドアプリとモバイルWebアプリをテストするためのオープンソースのテスト自動化フレームワークです。 フレームワーク内のAppiumライブラリ関数は、接続されたデバイスを操作するバックグラウンドで実行されているAppiumサーバーを呼び出します。
- Calabash -Calabashは、iOSとAndroidの両方の機能テストに使用できる機能テストフレームワークです。 紙の上では、最も使いやすいフレームワークの1つである必要があり、開発者でなくても機能テストを作成できる必要があります。
- Selendroid -Selendroidはブロック上の比較的新しい子供であり、Androidアプリケーションを機能的にテストするために使用できます。 どうやら、Seleniumに慣れているなら、Selendroidはあなたの知識を使ってAndroidの機能テストを簡単に作成できるはずです。
モバイルテスト-IOSフレームワーク
Androidテストフレームワークと同様に、市場には多くのiOSテストフレームワークがあります。 ここでは、いくつかの一般的なものについて説明します。
- Appium -Appiumは、ネイティブおよびハイブリッドアプリとモバイルWebアプリをテストするためのオープンソースのテスト自動化フレームワークです。 フレームワーク内のAppiumライブラリ関数は、接続されたデバイスを操作するバックグラウンドで実行されているAppiumサーバーを呼び出します。
- Calabash -Calabashは、iOSとAndroidの両方の機能テストに使用できる機能テストフレームワークです。 紙の上では、最も使いやすいフレームワークの1つである必要があり、開発者でなくても機能テストを作成できる必要があります。
- Zucchini -Zucchiniは、Apple UIAutomationに基づいたiOSアプリケーション用のオープンソースのビジュアル機能テストフレームワークです。
- * UIオートメーション*-より典型的な機能テスト(またはブラックボックステスト)では、アプリを操作するエンドユーザーをシミュレートするコードを記述しますが、UIオートメーションがあります。 UIオートメーションはAppleによって提供されており、iOSの機能テストを実行するApple認定の方法です。
- FRANK – iOS向けBDD -iOSでエンドツーエンドのテストを行いたい場合、BDDとCucumberを使用したい場合は、心配いりません。受け入れテストと要件を作成できる Frank というツールがあります。キュウリを使用します。
異なるテストフレームワークの比較
モバイルテスト-Robotiumフレームワーク
Robotiumは、Androidアプリケーション用の自動グレーボックステストケースを作成するためのオープンソースのテストフレームワークです。 Robotiumのサポートにより、テストケースの開発者は、複数のAndroidアクティビティにまたがる機能、システム、および受け入れテストのシナリオを作成できます。
Robotiumは、ソースコードが利用可能なアプリケーションとAPKファイルのみが利用可能なアプリケーションの両方のテストに使用できます。
Robotiumの利点
- 簡単に記述できる、短いコード。 堅牢なテストケースの作成に必要な最小限の時間。
- テスト対象のアプリケーションに関する最小限の知識で、強力なテストケースを開発できます。
- フレームワークは、複数のAndroidアクティビティを自動的に処理します。 テストケースの可読性は、標準の計装テストと比較して大幅に改善されています。
- 自動タイミングと遅延。
- 現在のアクティビティを自動的に追跡します。
- ビューを自動的に見つけます。
- 自動的に独自の決定を行います(例:スクロールするタイミングなど)
- Androidプラットフォームに変更はありません。
- テストの実行は高速です。
- GUIコンポーネントへのランタイムバインディングにより、テストケースはより堅牢です。
- MavenまたはAntとスムーズに統合します。
Robotiumの欠点
- RobotiumはFlashまたはWebコンポーネントを処理できません。
- 一度に1つのアプリケーションのみを処理します。
- Robotiumを使用してソフトキーボードのクリックをシミュレートすることはできません(「enterText()」を使用してEditTextフィールドにテキストを入力する必要があります)
- Robotiumは、ステータスバー通知と対話できません。つまり、通知領域をプルダウンして、指定された通知をクリックします。
- 特に古いデバイスで実行すると、少し遅くなる可能性があります。
Robotiumの使用方法
- ステップ1 *-Robotiumを使用するための前提条件はJava SDK(最小1.6)です。 システムにJavaがインストールされていない場合は、以下の手順に従ってください。
- Oracle Technology NetworkからJDKおよびJREをダウンロードします。
- ライセンス契約に同意します。
- JDKおよびJREをインストールします。
- 以下のスクリーンショットに示すように、環境変数を設定します。
- ステップ2 *-http://developer.android.com/sdk/indexl[Android Studio]からAndroid Studioをダウンロードします
- exeをダブルクリックして、インストーラーを実行します。
- すべてのデフォルトオプションで続行します。
- ANDROID_HOMEを設定します。
- ステップ3 *-Androidイメージとツールをインストールします。
- SDK Managerをクリックします−
- 必要なパッケージを選択します。 たとえば、Android 4.4.2用のアプリを構築している場合、次のパッケージが[ツール]セクションでチェックされていることを確認します-
- Android SDK Tools rev 22.6.3
- Android Platform-tools rev 19.0.1
- Android SDK Build-tools rev 19.1
- ステップ4 *-Android仮想デバイスを作成します。
- Android Studioを開き、ツールバーの[AVDマネージャー]をクリックします。 AVDを使用すると、Androidアプリをテストして実行できます。
- Nexus5 AVDには次の設定を使用します-
- デバイス-Nexus 5(4.95、1080 x 1920、xxhdpi)
- ターゲット-Google API x86(Google Inc.)-APIレベル19
- (名前にGoogle APIを含むターゲットを選択してください。)
- CPU-Intel Atom(x86)
- Use Host GPUのチェックボックスをオンにします
- OKをクリック
- これで、作成したAVDがAVDマネージャーに表示され、開始、削除、または別のAVDを作成できます。
- ステップ5 *-Robotium Jarファイルhttps://github.com/RobotiumTech/robotium/wiki/Downloads[RobotiumTech]からRobotium Jarファイルをダウンロードします
Robotiumでアプリをテストする
Robotiumでアプリをテストするには、以下の手順に従ってください-
- ステップ1 *-Android Studioで「RobotiumTest」という名前のテストプロジェクトを作成します。
メインページに到達するまで、すべてのデフォルトオプションを選択します。
- ステップ2 *-Robotium jarファイルをプロジェクトのLibフォルダーにコピーします。
ステップ3 *- *src フォルダーの下のbuild.gradleファイルに依存関係を追加します。
androidTestCompile 'com.jayway.android.robotium:robotium-solo-5.5.3'
- ステップ4 *-Gradleを同期します。
- ステップ5 *-次のようにテストクラスを作成します-
package com.example;
import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import android.widget.TextView;
public class MyTestClass extends ActivityInstrumentationTestCase2<TestActivity>{
private Solo solo;
public MyTestClass() {
super(TestActivity.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void testCase() throws Exception {
String vResult="TestExample";
EditText vEditText = (EditText) solo.getView(R.id.edit1);
solo.clearEditText(vEditText);
solo.enterText(vEditText,"TestExample");
solo.clickOnButton("Submit");
assertTrue(solo.searchText(vResult));
TextView textField = (TextView) solo.getView(R.id.txt1);
//Assert to verify result with visible value
assertEquals(vResult, textField.getText().toString());
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
}
- ステップ6 *-すべての変更を保存します。 エラーがないことを確認してください。
- ステップ7 *-次に、テストケースを実行します。 テストケースが成功すると、次の出力が表示されます。
モバイルテスト-Selendroidフレームワーク
Selendroidは、Androidネイティブおよびハイブリッドアプリケーションをテストするためのテスト自動化フレームワークです。 Selendroidテストは、Selenium WebdriverクライアントAPIを使用して作成されます。
セレンドロイドの利点
- JSON Wire Protocol/Selenium 3 Readyと完全に互換性があります。
- テスト対象のアプリを自動化するために変更する必要はありません。
- 組み込みのAndroidドライバーWebViewアプリを使用してモバイルWebをテストします。
- ネイティブアプリまたはハイブリッドアプリを自動化するための同じコンセプト。
- UI要素はさまざまなロケータータイプで見つけることができます。
- ジェスチャーがサポートされています:Advanced User Interactions API。
- 既存のエミュレーターは自動的に開始されます。
- Selendroidは、ハードウェアデバイスのホットプラグをサポートしています。
- スケーリングと並列テストのためのSelenium Gridへのノードとしての完全統合。
- 複数のAndroidターゲットAPIのサポート(10〜19)。
- テストケースの開発を簡素化するためのインスペクターが組み込まれています。
- Selendroidは、独自の拡張機能を使用して実行時に拡張できます。
- Selendroidは、同時に複数のAndroidデバイス(エミュレーターまたはハードウェアデバイス)と対話できます。
セレンドロイドの欠点
このツールの欠点は、非常に遅く、4GB未満のRAMを搭載した一部のマシンでは使用できないことです。
Selendroidの使用方法
- ステップ1 *-Robotiumを使用するための前提条件はJava SDK(最小1.6)です。 システムにJavaがインストールされていない場合は、以下の手順に従ってください。
- Oracle JavaSEからJDKおよびJREをダウンロードします。
- ライセンス契約に同意します。
- JDKおよびJREをインストールします。
- 以下のスクリーンショットに示すように、環境変数を設定します。
- ステップ2 *-http://developer.android.com/sdk/indexl[SDK Android]からAndroid Studioをダウンロードします(ファイルのサイズのため、時間がかかります)。
- exeをダブルクリックして、インストーラーを実行します。
- すべてのデフォルトオプションで続行します。
- ANDROID_HOMEを設定します。
- ステップ3 *-http://selendroid.io/[Selendroid]からSelenium jarファイルとテストアプリケーションをダウンロードします
- セレンjarファイルをダウンロードして、アプリをテストします。
- 任意のフォルダ、つまり D:\ SelendroidJars。
- ステップ4 *-USBケーブル付きの物理デバイス。
- デバイスがUSBケーブルでワークステーションに接続されていることを確認してください。
- USBデバッグモード(設定→開発者オプション)が有効になっていることを確認します。
Selendroidでアプリをテストする
Selendroidを使用してアプリをテストするには、以下の手順に従ってください-
- ステップ1 *-Eclipseをインストールします。
- ステップ2 *-Javaプロジェクトを作成します。
- ステップ3 *-ダウンロードしたSelendroid jarファイルを新しく作成したプロジェクトに追加します。
- ステップ4 *-ダウンロードしたSelenium jarファイルを新しく作成したプロジェクトに追加します。
- ステップ5 *-EclipseでtestNGを構成します。
- ステップ6 *-USBケーブルを使用して、モバイルデバイスをシステムに接続します。 設定の下にある開発者のオプションからUSBデバッグモードを設定します。
- ステップ7 *-Selendroidサーバーを実行します。 コマンドプロンプトを開き、次のコードを記述してEnterを押します-
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
Selendroid-standaloneはポート4444でhttpサーバーを起動し、ユーザーが作成したすべてのAndroid仮想デバイス(avd)(〜/.android/avd/)をスキャンします。
Webブラウザーを開き、 http://localhost:4444/wd/hub/status に移動します。
- ステップ8 *-Javaプロジェクトを作成します。ビルドパスにSelendroidスタンドアロンライブラリ、Selenium jar、およびJUnitライブラリを追加します。
- ステップ9 *-Javaプロジェクトの下にパッケージを作成します。
- ステップ10 *-パッケージの下にクラスを作成し、次のコードを記述します。
package selTest;
import io.selendroid.SelendroidDriver;
import io.selendroid.common.SelendroidCapabilities;
import io.selendroid.standalone.SelendroidConfiguration;
import io.selendroid.standalone.SelendroidLauncher;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
public class SelendroidTest {
private WebDriver driver ;
@BeforeSuite
public void setUp() throws Exception {
SelendroidConfiguration config = new SelendroidConfiguration();
config.addSupportedApp("selendroid-test-app-0.9.0.apk");
SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
SelendroidCapabilities caps = new
SelendroidCapabilities("io.selendroid.testapp:0.9.0");
driver = new SelendroidDriver(caps);
}
@Test
public void selendroidTest() throws Exception {
WebElement inputField = driver.findElement(By.id("my_text_field"));
Assert.assertEquals("true", inputField.getAttribute("enabled"));
inputField.sendKeys("Selendroid");
Assert.assertEquals("Selendroid", inputField.getText());
WebElement button = driver.findElement(By.id("buttonTest"));
button.click();
button = driver.findElement(By.id("button2"));
button.click();
Thread.sleep(5000);
button = driver.findElement(By.id("startUserRegistration"));
button.click();
Thread.sleep(10000);
WebElement element = driver.findElement(By.id("label_username"));
String text = element.getText();
System.out.println(text);
element = driver.findElement(By.id("inputUsername"));
element.sendKeys("bob");
element = driver.findElement(By.id("inputEmail"));
element.sendKeys("[email protected]");
element = driver.findElement(By.id("inputPassword"));
element.clear();
element.sendKeys("test1233");
element = driver.findElement(By.id("inputName"));
element.clear();
element.sendKeys("My Name ");
element = driver.findElement(By.id("input_preferedProgrammingLanguage"));
element.click();
element = driver.findElement(By.id("text1"));
element.click();
element = driver.findElement(By.id("input_adds"));
element.click();
element = driver.findElement(By.id("btnRegisterUser"));
element.click();
element = driver.findElement(By.id("buttonRegisterUser"));
element.click();
}
@AfterSuite
public void tearDown(){
driver.quit();
}
}
- ステップ11 *-testNG実行構成でクラスを実行します。
モバイルテスト-Appiumフレームワーク
Appiumは、ネイティブおよびハイブリッドアプリとモバイルWebアプリをテストするためのオープンソースのテスト自動化フレームワークです。 WebDriverプロトコルを使用してiOSおよびAndroidアプリを駆動します。
Appiumの利点
- 無料で、(ほとんど)オープンソースです。
- 非常によくサポートされたアクティブなGoogleグループがあります。
- これはSelenium 3の仕様に含まれているので、将来の証拠になるはずです。
- AndroidとiOSの両方をサポートしています。
- デバイスに何かをインストールする必要はありません。サーバーやコードの変更は不要です。
Appiumの欠点
- インテリジェントな待機はサポートされていません。
- iOSでは、Macごとに一度に1つのテストしか実行できません。
- ジェスチャーの限定サポート。
- Android <4.1の限定サポート
Appiumの使用方法
- ステップ1 *-Appiumを使用するための前提条件はJava SDK(最小1.6)です。 システムにJavaがインストールされていない場合は、以下の手順に従ってください。
- Oracle JavaSEからJDKおよびJREをダウンロードします。
- ライセンス契約に同意します。
- JDKおよびJREをインストールします。
- 以下のスクリーンショットに示すように、環境変数を設定します。
- ステップ2 *-http://developer.android.com/sdk/indexl[SDK]からAndroid Studioをダウンロードします(ファイルのサイズのため、時間がかかります)。
- exeをダブルクリックして、インストーラーを実行します。
- すべてのデフォルトオプションで続行します。
- ANDROID_HOMEを設定します。
- ステップ3 *-Androidイメージとツールをインストールします。
- SDK Managerをクリックします−
- 必要なパッケージを選択します。 たとえば、Android 4.4.2用のアプリを構築している場合、次のパッケージが[ツール]セクションでチェックされていることを確認します-
- Android SDK Tools rev 22.6.3
- Android Platform-tools rev 19.0.1
- Android SDK Build-tools rev 19.1
- ステップ4 *-Android仮想デバイスの作成-
- Android Studioを開き、ツールバーの[AVDマネージャー]をクリックします。 AVDを使用すると、Androidアプリをテストして実行できます。
- Nexus5 AVDには次の設定を使用します-
- デバイス:Nexus 5(4.95、1080 x 1920; xxhdpi)
- ターゲット:Google API x86(Google Inc.)-APIレベル19
- 名前にGoogle APIを含むターゲットを選択してください。
- CPU:Intel Atom(x86)
- Use Host GPUのチェックボックスをオンにします
- OKをクリックしてください。
- これで、作成したAVDがAVDマネージャーに表示され、開始、削除、または別のAVDを作成できます。
- ステップ5 *-http://appium.io/[Appium]からAppium jarファイルをダウンロードします
Appiumでアプリをテストする
Appiumでアプリをテストするには、以下の手順に従ってください-
- ステップ1 *-Android Studioで「RobotiumTest」という名前のテストプロジェクトを作成します。
メインページに到達するまで、すべてのデフォルトオプションを選択します。
- ステップ2 *-Appium jarをプロジェクトに追加します。 プロジェクト→アプリ→lib内のすべてのjarをコピーします。 Selenium、Javaクライアント、およびJunit Jarを除くコピーされたjarを選択し、それを右クリックして[ライブラリとして追加]をクリックします。
- ステップ3 *-アプリでbuild.gradleをクリックします。 次のスクリーンショットに示すように、追加されたすべてのライブラリが表示されます。
- ステップ4 *-次に示すJavaクラスを作成します-
AppiumDriver driver;
@Before
public void testCaseSetup()throws Exception {
//service.start();
//reader.readFile();
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device");
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "4000");
cap.setCapability(MobileCapabilityType.APP, "c://apk//sample.apk");
driver = new AndroidDriver<MobileElement>("http://127.0.0.1:4444/wd/hub",cap);
}
@Test
public void testcase1()throws Exception {
driver.findElementByID("Example").click();
Asser.assertTrue(driver.findElementByID("Example").isDisplayed));
}
@After
public void testCaseTearDown() {
driver.quit();
}
- ステップ5 *-テストケースの実行。
- ビルドバリアントをクリックし、ユニットテストを選択します。
- 特定のポート「4444」でAppiumサーバーを起動します。
- ここからWindows用Appiumをダウンロードします。
- .exeをダブルクリックして、Appiumをインストールします。
- アイコンをクリックして、UIをアップします。
- 以下に示すように、必要に応じてポートを変更します。
- [再生]ボタンをクリックしてサーバーを起動します。
- USBデバッグをオンにしてデバイスを接続するか、エミュレーターを起動します。
- テストクラスを右クリックし、[実行]をクリックします。
モバイルテスト-Zucchiniフレームワーク
Zucchiniは、BDDスタイルのドメイン固有言語(DSL)を使用する新しいテストフレームワークです。 その重点分野の1つは、Seleniumで作成された受け入れテストの簡素化です。
後で見るように、JBehaveまたはRobot Frameworkの代替ではありません。 ここでは、ステップごとに例を説明することで、ズッキーニのコンセプトを垣間見ることができます。
Zucchiniのインストール方法
Zucchiniをインストールするための前提条件はXCode 4.2です。 さらに、brew update && brew install imagemagick && brew install coffee-scriptなど、いくつかのコマンドラインツールが必要です。
ズッキーニの使用方法
- gem install zucchini-ios
- プロジェクトの足場を作成することから始めます
- 最初の機能の機能足場を作成する
- features/my_feature/feature.zucchini および features/support/screens/welcome.coffee を変更して、ハッキングを開始します。
デバイスで実行中
- デバイスを features/support/config.yml に追加します。
- iOSシミュレーターで実行しています。 Zucchiniの機能を実際のハードウェアで実行することを強くお勧めします。 ただし、必要に応じて、iOSシミュレーターで実行できます。
- まず、 features/support/config.yml を変更して、コンパイル済みアプリへのフルパスを含めます。 例えば、 + app:/Users/vaskas/Library/Developer/Xcode/DerivedData/CoreDataBooks-ebeqiuqksrwwoscupvxuzjzrdfjz/Build/Products/Debug-iphonesimulator/CoreDataBooks.app
- 第二に、「iOSシミュレータ」エントリをデバイスセクションに追加し(UDIDは不要)、iOSシミュレータの設定に基づいて「画面」の実際の値を指定します- 次のように実行します- + ZUCCHINI_DEVICE = "iOS Simulator" zucchiniの実行/path/to/my_feature *