エミュレーター、シミュレーター、実際のデバイスでのテスト

Webテストとアプリテストは、常に全体の開発プロセスの重要な部分でした。テストは、ナビゲーションのジャンプ、サインアップフォームの問題、支払いプロセスの破綻、またはただのフォントサイズの違いなど、バグの見つけと解決に涉及します。しかし、テストは、すべての変更が異なるデバイス上でユーザー経験を破壊しないことを保証することができます。

強固なテストプロセスを持つために、テストが実行されているデバイスには大切な重要性があります。異なるデバイスで実行されるため、テストプロセドでの結果には変异性が生じることがあります。したがって、テストデバイスの重要性は非常に高いことになります。特に、モバイルデバイス上でのテストにおいて、異なるオペレーティングシステム、ブラウザ、ハードウェア構成の様々なデバイスのためには、より大きな重要性があります。

今は、モバイルテストデバイスの解決策についてより深く理解するために、さまざまなモバイルテストデバイス解決策を研究しましょう。

モバイルテストデバイスの種類

技術が随時進化しているため、モバイルテストのためのさまざまなデバイス解決策も、その影響を受けて進化しました。これらのモバイルテスト解決策は、アプリの振る舞い、機能、UIの側面を分析して、異なる携帯電話でウェブサイトのクロスブラウザテストおよびモバイルアプリテストをサポートするために構築されました。

このようなテストの主な理由は、ウェブサイトやアプリが異なるモバイルデバイス上での一貫性の保証を目的です。これらのデバイスはハードウェア構成、オペレーティングシステム、スクリーン解像度で異なり、それぞれのデバイスで正しく機能するかもしれないものが、他のデバイスでは異なるように機能するかもしれません。

モバイルテストが行われるデバイスには主に2種類があります:

  • 実際のデバイス
  • 仮想デバイス

実際のデバイスとはどのようなものですか?

実際のテストデバイスは、ウェブサイトやアプリの機能と行動パターンをテストするために使用されるさまざまなモバイルハンドセットのモデルです。これらは最終ユーザーが使用する実際のハンドセットです。

一般的に、テストチームはiOS、Blackberry、Androidスマートフォン、タブレット、iPadなどの数台のモバイルハンドセットを購入してソフトウェアアプリケーションをテストします。

テストデバイスの進化:実際のデバイスから仮想テストデバイスへ

実際のデバイス上でのテストによって生成される結果は非常に正確ですが、テストのコストは高い場合があります。なぜなら、会社は複数のデバイスを購入しなければならず、新しいデバイスが市場に出てくるたびに更新する必要があります。

この実際のデバイス上のテストのコストは、会社がシミュレータやエミュレータなどの仮想テスト装置を導入することで克服した大きな課題です。したがって、ソフトウェアのクロスブラウザ互換性テストを行う際に、仮想テスト装置は一般的に使用され始めました。

仮想テスト装置とは何でしょうか?

仮想テスト装置は、実際のデバイスとは異なり、コンピュータ上のソフトウェアプログラムです。実際のスマートフォンデバイスの多くの重要な機能をシミュレートします。スマートフォンの性質を模倣しており、テスターがそれを使用してソフトウェアアプリケーションを実行し、実際のデバイスによる動作のように感じることができます。

仮想テスト装置はデバイスを模倣し、成本効率が高いために、実際のデバイスと置き換えられることはないでしょう。

仮想テスト装置には2種類があります。

  • エミュレータ
  • シミュレータ

エミュレータとは何でしょうか?

エミュレータは、あなたのコンピュータで目標デバイスのハードウェアとソフトウェアを模倣するソフトウェアです。これは、二進数変換を使用して、テストを行うコンピュータのISA(命令集合アーキテクチャ)を目標デバイスのISAに翻訳することで実現します。

ISAは、各プロセッサファミリーが使用して作成された機械言語の命令集合で、それぞれ独自のデバイス構成名を構築する際に、デバイスの機能性和動作を描述するために使用します。

ターゲットモバイルデバイスのISAをコンピュータに翻訳することで、ターゲットデバイスの動作方法を模倣することができ、テストのための仮想環境を形成することができます。

しかし、ターゲットモバイルデバイスの近乎ネイティブな機能は、物理的なセンサー、地理的位置情報などを調整することができますが、これらの機能にはlatencyという代償があります。

Android エミュレータ, Galaxy エミュレータ, iPhone エミュレータ (iOS Simulatorとして間違っています)は、ソフトウェアテストのために幅広く使用されているエミュレータです。

Simulatorとは何でしょうか?

Simulatorは、異なるオペレーティングシステムで構築された特定のプログラムをコンピュータ上で実行することを助けるソフトウェアです。彼らは主にiPhoneやiPadデバイス用であり、Androidデバイスとは異なり、簡単にエミュレーションできません。

iOSシミュレーターはiOSを模倣し、コンピュータのオペレーティングシステムの上に立って必要なアプリケーションを実行します。しかし、iOSシミュレーターを実行するためには、AppleのネイティブなCocoa APIが必要で、このCocoa APIはGUI、実行時、その他多くの操作に不可欠です。

これにより、開発者はMacBookに取り組むか、既存のシステムでmacOSを仮想化する必要があります。

シミュレーターはエミュレーターとは異なり、ハードウェアを模倣しません。したがって、シミュレーターを使用してテストする場合、バッテリー使用量、蜂窝并列のような特定の機能についての調査ができません。

エミュレーターとシミュレーターの違いを理解する

これらの仮想テスト装置は、通信で時々入れ替わることがありますが、実際には、エミュレーターとシミュレーターは多くの点でお互いに異なります。

Criteria Emulators Simulators
対象領域 モバイルデバイスのハードウェア、ソフトウェア、オペレーティングシステム モバイルデバイスの内部行動
提供者 エミュレーターはデバイスメーカーによって提供されます シミュレーターはデバイスメーカーおよび他の会社によって提供されます
内部構造 機械レベルのアセンブリ言語 高級言語
デバッグに適している エミュレータは信頼性が高く、デバッグには最適 一方、シミュレータは信頼性が低く、デバッグにはあまり適していない
性能 バイナリ変換による遅延のため、スローより遅い バイナリ変換を必要としないため、シミュレータはより速い
Android SDK iOS シミュレータ

実機テスト対虚拟機テスト

実機テストデバイスと虚拟機テストデバイスは機能性に違いがある。

Criteria Real Testing Device Virtual Testing Device
コスト 実機を規模的に購入することはコスト的にはやくない 多くの場合、無料でインストールできるため、最低限のコストしかかからない
信頼性 実機は正確な結果を示し、ユーザと同じ条件下でのテストが可能 虚拟機テストデバイスはデバイスを模倣するだけで、ハードウェアやソフトウェアの設定など、実際のユーザー条件を再現できない
処理速度 実機でのソフトウェアテストははるかに速い バイナリ変換のため、虚拟機でのソフトウェアテストは遅い
デバッグに適している 実機でのデバッグは、特に欠陥を捉える際には厄介である。 仮想デバイスは、その機能を利用して、段階ごとのデバッグを簡単にすることができます。これにより、不具合を捕らえることができます。
クロスプラットフォームテストING 通常、実際のデバイスを使用してクロスプラットフォームテストを行います。 仮想デバイスを使用して、无缝にクロスプラットフォームテストを行います。

実際のデバイス、エミュレータ、そしてシミュレータ:何をテストすべきか

これらのデバイスが提供する機能を利用して、慎重に使用することで、最適な結果を得ることができます。これにより、クロスブラウザ互換性テストをより簡単にすることができます。最良の慣例は主に正しいデバイスでテストすることで、より良い結果を得ることができます。

仮想デバイスは、最適なデバッグ機能を提供しており、コード開発の初期段階で使用することが最も適切です。仮想デバイスは、初期段階で必要な频繁なイテレーションにより、サイクルをより速く、効果的にすることができます。

しかしながら、精度のために、サニティテストとユーザー接受テストは実際のデバイスで行われることがより良いです。再帰テストの一部は、一定の時間点で仮想デバイスを使用してもよいですが、結果がCompromiseする可能性があります。

実際のデバイス雲を通じて一歩前に進みましょう

リアルデバイスと仮想デバイスにはそれぞれの利点と欠点があり、テストの異なる段階に適している場合があります。しかし、テストのためにリアルデバイスクラウドを採用することで、両方の最善の所を得ることができます。
単一のリアルデバイスクラウドでテストを完了し、以下のような利点を提供します。

それによって、リアルデバイスクラウドは、テスターがバグを見つけ、開発者がコストを低減しながら簡単にバグを修正するための理想的な解決策です。

Source:
https://www.browserstack.com/guide/testing-on-emulators-simulators-real-devices-comparison