NiCroを紹介するよ:モバイルアプリをテストする新しい方法
NiCroは、画像認識を使って様々なデバイスでのモバイルアプリテストを効率化するよ。
― 1 分で読む
モバイルアプリ、またはアプリって、携帯電話やタブレットみたいな様々なデバイスで広く使われてるよね。でも、これらのアプリをいろんなデバイスやオペレーティングシステムでの互換性をテストするのは結構難しいんだ。各デバイスは画面サイズ、レイアウト、デザインの違いで同じアプリでも違って見えることがあるから、開発者は全プラットフォームでスムーズに動作するように努力しなきゃいけない。
テストを簡単にするための一般的な方法の一つは、記録して再生するアプローチを使うこと。これは、あるデバイスで行ったアクションを記録して、他のデバイスでそれを再生するっていうこと。でも、アプリのインターフェースの見た目がデバイスによって大きく変わることがあって、それが記録したアクションを正確に再生するのを難しくしてる。
現在の多くの方法はアプリの詳細やメタデータに直接アクセスすることに頼っていて、ちょっと侵入的なんだ。つまり、アプリのソフトウェアを掘り下げて必要な情報を集める必要がある。でも、このアプローチは、システムによっては必要なデータ全てにアクセスできない制限に直面することが多い。
最近、一部の研究者たちはアプリのインターフェースの画像を使おうとし始めた。この非侵入的な方法は、ビジュアル情報を使ってインターフェースの要素を特定したり一致させたりする。でも、これらの初期の方法は、同じインターフェースが様々なデバイスでどう見えるかをうまく考慮していないことが多い。
こうした課題を解決するために、NiCroという新しいシステムが提案された。NiCroは、アプリの内部データにアクセスせずに、複数のデバイスやプラットフォームでアプリをテストするために設計されている。代わりに、アプリのインターフェースの画像を分析することに焦点を当てている。
既存の方法の問題
アプリを手動でテストするのは、しばしば遅くて面倒なんだ。異なるデバイスで同じプロセスを進めるために人を雇うのも、労力がかかるし時間がかかる。開発者たちは、作業を早く進めるために自動化テストに頼っていて、特にアクションを記録して異なるデバイスで再生する方法が使われている。
でも、多くの既存の方法はクロスデバイスやクロスプラットフォームのテストで苦労している。主に同じプラットフォームでの記録されたアクションの再生に焦点を置いているんだ。例えば、Androidデバイスでアクションを記録すると、別のAndroidデバイスで再生するのは比較的簡単だけど、そのアクションをiOSデバイスに移すのは通常難しい。
最近の技術の中には、デバイスを接続したりメタデータに頼って再生に必要なマッチングを助けようとするものもあるけど、必要なメタデータが利用できない時やアプリのインターフェースがプラットフォーム間で大きく異なる時に失敗することが多い。
また、自動化ツールがメタデータを取得できたとしても、特定のシステム操作や複数のアプリが関与している場合にはうまく機能しないことがある。ここで非侵入的な方法がより効果的に働くことができる。これらの方法は人間の観察者のように動作して、画面を見て何があるのかを理解し、それに対してインタラクションを行う。
NiCroって何?
NiCroは、異なるデバイスやプラットフォーム間でアクションを記録して再生する非侵入的なアプローチを取る新しいシステムだ。アプリの内部データにアクセスする必要なく、アプリの画像から直接GUI情報を分析する高度なコンピュータビジョン技術を使ってる。
NiCroの主な目標は、開発者が異なるデバイスでアプリをテストしやすく、効率的にすること。画像を使ってインターフェースに関する情報を集めることで、NiCroは従来の侵入的なテスト方法で発生する多くの難しさを回避できる。
NiCroは、まずアプリのインターフェースのスクリーンショットや画像をキャプチャし、その画像を分析してGUIのさまざまなコンポーネントやウィジェットを特定する。これにより、ボタンやテキストフィールドなど画面上の異なる要素を認識できる。
NiCroがこのビジュアル情報を集めたら、さまざまなデバイス間でウィジェットをマッチングできる。つまり、あるデバイスでボタンをクリックすると、NiCroは別のデバイスでそのボタンがどこにあるかを判断できるんだ。
NiCroの仕組み
大まかに言うと、NiCroはデバイスファーム、ロボティックシステム、ホストコンピュータの3つの主要なコンポーネントから成り立ってる。
デバイスファーム
デバイスファームは、さまざまな仮想および物理デバイスを接続するセットアップ。これにより、NiCroは実デバイスをシミュレートして異なる画面サイズやオペレーティングシステムでアプリをテストできるんだ。エミュレーターを使うことで、開発者は複数のセットアップでアプリを迅速にテストできる。
ロボティックシステム
ロボティックシステムは、実際のデバイスと物理的にインタラクションを提供する。人間の指のように動作するロボットアームがあって、画面をタップしてアクションを実行する。そのロボットアームに加えて、高解像度のカメラもあってアプリのインターフェースの画像をキャプチャする。これにより、NiCroはテスト中のアプリに関する正確なビジュアルデータを集めることができる。
ホストコンピュータ
ホストコンピュータはNiCroの頭脳。デバイスファームとロボティックシステムからデータを集める。カメラでキャプチャした画像を処理してGUI要素を検出し、異なるデバイス間でアクションをマッチングして再生する方法を決定する。
テストに関するステップ
アクションの記録と画像の収集
NiCroのプロセスの最初のステップは、ソースデバイスで行われたアクションを記録し、さまざまなターゲットデバイスから画像をキャプチャすること。つまり、ユーザーがアプリとインタラクトしている間、NiCroは起こることを記録し、各デバイスのアプリの状態のスクリーンショットを撮る。
GUIウィジェットの検出
画像を収集したら、NiCroは高度なGUIウィジェット検出器を使って画面上のさまざまなウィジェットを特定する。これには、ボタン、テキストフィールド、メニュー、その他のコンポーネントの位置を見つけることが含まれる。テキストウィジェットと非テキストウィジェットを見た目に基づいて区別できる。
ウィジェット情報の抽出
検出後、NiCroは各ウィジェットに関する詳細情報を抽出する。これには、位置、形状、テキストコンテンツ、周囲のウィジェットが含まれる。このマルチモーダル情報を集めることで、NiCroはデバイス間でウィジェットをより良くマッチングできる。
ウィジェットのマッチング
すべての情報が揃ったら、NiCroはウィジェットのマッチングを開始する。テキストコンテンツや形状といった属性に焦点を当てて、異なるデバイス上で同等のウィジェットを見つけるためにさまざまな基準を使用する。マッチが見つかると、記録したアクションをターゲットデバイスで正確に再現できる。
アクションの実行
最後に、NiCroはターゲットデバイスでアクションを実行する。これにはボタンをタップしたり、フィールドにテキストを入力したりすることが含まれる。物理デバイスにはロボティックシステムを通じて、仮想デバイスにはマウスイベントを送信して実行する。
NiCroの評価
NiCroのパフォーマンスは、さまざまなデバイスとアプリでの一連のテストを使って評価された。さまざまなカテゴリにわたる人気のアプリが使われ、NiCroは多様なシナリオを処理する能力を示すことができた。
テスト中、NiCroはウィジェットのマッチングとアクションの実行で高い精度を達成した。手動調整なしで、異なるデバイス間で大部分のアクションを成功裏に再生できた。
従来の方法と比較して、NiCroは大幅にその同業者を上回った。特定のウィジェットに依存するアクションでは、約86%の成功率でそれらのアクションを正確に再生できた。一方、他の方法はこの成功率の半分にも達しないことが多かった。
ウィジェットに依存しないアクション、例えばスクロールのような場合でも、NiCroは強いパフォーマンスを見せた。これは特に印象的で、異なる画面で内容がどのように表示されるかは大きく異なる可能性があるからだ。NiCroのインターフェースをデバイス間でマッチさせるビジュアルインテリジェンスにより、より成功したテスト結果に繋がっている。
直面した課題
NiCroは期待できるものを持ってるけど、いくつかの課題もある。デバイスの画面サイズの違いは、ウィジェットをマッチングする際に困難を引き起こすことがある。例えば、ウィジェットが小さなデバイスの画面には大きすぎる場合、NiCroはそれを表示するためにスクロールする必要があるかもしれない。
さらなる課題は、さまざまなプラットフォームでアプリがどうデザインされているかの違いからも来る。例えば、あるアプリがiOSでは非常に異なる見た目をしているのに対し、Androidでは全く違う見た目になることがあり、これがマッチングプロセスを混乱させることがある。NiCroはテスト中にこれらの違いに適応して、正確な再生を確保しなきゃいけない。
結論
NiCroはアプリテストの分野で大きな進展を表している。非侵入的な方法に焦点を当てることで、開発者はモバイルアプリが様々なデバイスで正しく動作することを確認できるようになった。根本的なコードやデータに深入りする必要がない。
画像認識やコンピュータビジョン技術を活用することで、NiCroはテストプロセスを簡素化し、自動化が切実に求められている分野での効率を高めることができる。異なるプラットフォームやデバイス間で正確にテストできる能力は、ユーザー体験の向上や開発者のスムーズな運営に繋がるだろう。
この技術が進化を続ける中で、さらなる改良により、NiCroはクロスデバイスやクロスプラットフォームのアプリテストの複雑さを扱うのにさらに効果的になるだろう。
タイトル: NiCro: Purely Vision-based, Non-intrusive Cross-Device and Cross-Platform GUI Testing
概要: To ensure app compatibility and smoothness of user experience across diverse devices and platforms, developers have to perform cross-device, cross-platform testing of their apps, which is laborious. There comes a recently increasing trend of using a record and replay approach to facilitate the testing process. However, the graphic user interface (GUI) of an app running on different devices and platforms differs dramatically. This complicates the record and replay process as the presence, appearance and layout of the GUI widgets in the recording phase and replaying phase can be inconsistent. Existing techniques resort to instrumenting into the underlying system to obtain the app metadata for widget identification and matching between various devices. But such intrusive practices are limited by the accessibility and accuracy of the metadata on different platforms. On the other hand, several recent works attempt to derive the GUI information by analyzing the GUI image. Nevertheless, their performance is curbed by the applied preliminary visual approaches and the failure to consider the divergence of the same GUI displayed on different devices. To address the challenge, we propose a non-intrusive cross-device and cross-platform system NiCro. NiCro utilizes the state-of-the-art GUI widget detector to detect widgets from GUI images and then analyses a set of comprehensive information to match the widgets across diverse devices. At the system level, NiCro can interact with a virtual device farm and a robotic arm system to perform cross-device, cross-platform testing non-intrusively. We first evaluated NiCro by comparing its multi-modal widget and GUI matching approach with 4 commonly used matching techniques. Then, we further examined its overall performance on 8 various devices, using it to record and replay 107 test cases of 28 popular apps and the home page to show its effectiveness.
著者: Mulong Xie, Jiaming Ye, Zhenchang Xing, Lei Ma
最終更新: 2023-05-23 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2305.14611
ソースPDF: https://arxiv.org/pdf/2305.14611
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。