Skip to main content
QUICK REVIEW

[論文レビュー] Target Directed Event Sequence Generation for Android Applications

Jiwei Yan, Tianyong Wu|arXiv (Cornell University)|Jul 12, 2016
Software Testing and Debugging Techniques参考文献 23被引用数 5
ひとこと要約

本稿では、ビューの状態、バックスタック動作、コードレベルのラベルを捉えることで、特定のコード領域を標的にしたテスト生成を可能にする、Android GUIテストのための動的モデルLATTEを提案する。状態の類似度を用いて爆発的増加を抑えるとともに、ラベルを介してイベントとコードスニペットを関連付けることで、短く高カバレッジのテストシーケンスを生成する。これは、ランダムな探索に比べて効率が良く、最先端のカバレッジを達成する。

ABSTRACT

Testing is a commonly used approach to ensure the quality of software, of which model-based testing is a hot topic to test GUI programs such as Android applications (apps). Existing approaches mainly either dynamically construct a model that only contains the GUI information, or build a model in the view of code that may fail to describe the changes of GUI widgets during runtime. Besides, most of these models do not support back stack that is a particular mechanism of Android. Therefore, this paper proposes a model LATTE that is constructed dynamically with consideration of the view information in the widgets as well as the back stack, to describe the transition between GUI widgets. We also propose a label set to link the elements of the LATTE model to program snippets. The user can define a subset of the label set as a target for the testing requirements that need to cover some specific parts of the code. To avoid the state explosion problem during model construction, we introduce a definition "state similarity" to balance the model accuracy and analysis cost. Based on this model, a target directed test generation method is presented to generate event sequences to effectively cover the target. The experiments on several real-world apps indicate that the generated test cases based on LATTE can reach a high coverage, and with the model we can generate the event sequences to cover a given target with short event sequences.

研究の動機と目的

  • 既存のモデルが実行時におけるGUIの変化やAndroid固有のメカニズム(例:バックスタック)を捉えることの限界を解消すること。
  • ラベルセットを介してGUI遷移を特定のコードスニペットに関連付けることで、標的指向のテスト生成を支援すること。
  • 正確さとパフォーマンスのバランスを考慮した状態類似度メトリクスを用いて、モデル構築時の状態爆発を軽減すること。
  • Androidアプリの特定のコード領域に対して、効率的で高カバレッジのテストケース生成を可能にすること。
  • ソースコードを必要とせずAPKファイルから直接処理できる、動的でコードに依存しないモデル構築手法を提供すること。

提案手法

  • Androidアプリを動的にインストルメントし、実行時におけるGUI状態、バックスタック情報、イベント発火時のコードスニペットを収集する。
  • 各状態をビュー情報、ビュー状態、バックスタック状態のタプルとして表現することで、LATTEモデルを構築する。
  • 特定のコードスニペットをGUI遷移に関連付けるラベルセットを定義し、標的指向テストを可能にする。
  • 状態類似度メトリクスを適用して意味的に類似した状態を統合し、モデルのサイズと分析コストを削減する。
  • ユーザーが定義したターゲットラベルをカバーするパスに到達するように、LATTEモデルを走査してテストシーケンスを生成する。
  • 生成されたイベントシーケンスを実行し、カバレッジを検証するためのテストフレームワークを用いる。

実験結果

リサーチクエスチョン

  • RQ1Androidアプリ用のGUIモデルは、実行時における動的ビュー変化とバックスタック動作をどのように効果的に捉えることができるか?
  • RQ2GUI遷移をどのようにして下位のコードスニペットと意味的に関連付けることができるか?
  • RQ3モデル構築時の状態爆発を効果的に軽減しつつ、モデルの正確さを維持するメカニズムは何か?
  • RQ4モデルベースのテスト生成アプローチは、大幅に短いテストシーケンスで、ランダムテストと同等のコードカバレッジを達成できるか?
  • RQ5提案されたモデルは、実世界のAndroidアプリにおいて、特定のコード領域に対して効率的で標的指向のテスト生成をどの程度可能にするか?

主な発見

  • LATTEモデルは、動的GUI状態とバックスタック動作を効果的に捉えており、従来のモデルよりもAndroidアプリ実行の正確な表現を可能にしている。
  • ラベルセットの使用により、特定のコード領域への正確な標的指定が可能となり、開発者が重要または最近変更されたコードに集中してテストを実施できる。
  • 状態類似度メトリクスは、カバレッジを損なわせることなく、モデルのサイズと分析コストを効果的に削減し、状態爆発問題を緩和している。
  • LATTEを用いて生成されたテストケースは、Monkey や Dynodroid といった最先端のツールと同等のコードカバレッジを達成しているが、はるかに短いイベントシーケンスで実現している。
  • 本アプローチは実世界のAndroidアプリにおいて実用的な有効性を示しており、標的指向のテスト生成が現実的かつ効率的に行えることを示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。