Skip to main content
QUICK REVIEW

[論文レビュー] Automated Test Input Generation for Android: Are We There Yet?

Shauvik Roy Choudhary, Alessandra Gorla|arXiv (Cornell University)|Mar 24, 2015
Advanced Malware Detection Techniques参考文献 24被引用数 36
ひとこと要約

本論文は、コードカバレッジ、バグ検出、クロスプラットフォーム互換性、使いやすさを測定する包括的な実験的調査を通じて、Androidアプリ向け12の代表的な自動テスト入力生成ツールを評価している。調査の結果、ツールの有効性には顕著な差があるものの、再現可能なテストケースや適切なモックのサポートを一切行わないことが明らかになり、今後の研究におけるテストツールの信頼性および開発者向け使いやすさの向上に向けた重要なギャップが浮き彫りになった。

ABSTRACT

Mobile applications, often simply called "apps", are increasingly widespread, and we use them daily to perform a number of activities. Like all software, apps must be adequately tested to gain confidence that they behave correctly. Therefore, in recent years, researchers and practitioners alike have begun to investigate ways to automate apps testing. In particular, because of Android's open source nature and its large share of the market, a great deal of research has been performed on input generation techniques for apps that run on the Android operating systems. At this point in time, there are in fact a number of such techniques in the literature, which differ in the way they generate inputs, the strategy they use to explore the behavior of the app under test, and the specific heuristics they use. To better understand the strengths and weaknesses of these existing approaches, and get general insight on ways they could be made more effective, in this paper we perform a thorough comparison of the main existing test input generation tools for Android. In our comparison, we evaluate the effectiveness of these tools, and their corresponding techniques, according to four metrics: code coverage, ability to detect faults, ability to work on multiple platforms, and ease of use. Our results provide a clear picture of the state of the art in input generation for Android apps and identify future research directions that, if suitably investigated, could lead to more effective and efficient testing tools for Android.

研究の動機と目的

  • Androidアプリ向け既存の自動テスト入力生成ツールの、コードカバレッジ、バグ検出、プラットフォーム互換性、使いやすさといった主要基準における有効性を評価すること。
  • Androidアプリケーションの自動テストにおける現在のツールおよび技術の長所と短所を特定すること。
  • 再現性、デバッグ支援、環境依存性の取り扱いの面での改善を図るための実用的洞察を提供すること。
  • モック、サンドボックス、クロスデバイステスト機能といった欠落している機能を明らかにすることで、今後の研究を導くこと。
  • すべての実験データおよびインfra構成を公開することで、本研究の再現および拡張を可能にすること。

提案手法

  • 本研究では、60以上の実世界のAndroidアプリを対象に、12の代表的なテスト入力生成ツールを評価した。
  • コードカバレッジは、テスト実行中のステートメントおよびブランチカバレッジを追跡するためのカスタムインストルメンテーションフレームワークを用いて測定した。
  • バグ検出は、未処理の実行時例外をログ記録し、手動および自動チェックによる検証を通じて実際の障害としての妥当性を評価した。
  • クロスプラットフォーム互換性は、複数のAndroidフレームワークバージョン(例:4.1、4.4、5.0)でツールを実行することで評価した。
  • 使いやすさは、インストールの複雑さ、設定要件、各ツールを実行するために必要な手作業の手間に基づいて評価した。
  • 失敗レポートおよびスタックトレースの手動点検を含め、実際のバグとエミュレータまたはツールの制限によるものとを区別するための検証を実施した。

実験結果

リサーチクエスチョン

  • RQ1既存のAndroid向け自動テスト入力生成ツールは、多様な実世界アプリケーションにおいて、コードカバレッジの観点でどのように比較されるか?
  • RQ2これらのツールは実際にバグをどの程度検出できるのか、報告された障害はどの程度信頼できるのか?
  • RQ3これらのツールは複数のAndroidプラットフォームバージョンをどの程度サポートしているのか。また、バージョン間テストにどのような影響を及えるのか?
  • RQ4これらのツールを実際の開発ワークフローに導入する際に生じる実用的な使いやすさの課題は何か?
  • RQ5これらのツールに欠落している、効果性および開発者採用率を著しく向上させる可能性を秘めた重要な機能は何か?

主な発見

  • どのツールも再現可能なテストケースをサポートしていない。失敗は実行ログファイルでのみ報告され、実行可能なテストスクリプトが提供されないため、デバッグや再現が制限される。
  • 大多数のツールは適切なサンドボックス機能を備えておらず、テスト中に実際にメールを送信したり、ユーザーのデータを変更したりするような意図しない副作用を引き起こすリスクがある。
  • Androidの有名なフラグメンテーションの課題を鑑みても、これらのツールのほとんどはクロスデバイスまたはクロス設定テストを特に設計していない。
  • 手動で入力を提供できる能力(例:ログイン資格情報)は、Dynodroid や GUIRipper のような一部のツールに限定されており、これにより複雑なUI状態の探索が著しく向上する。
  • コンテンツプロバイダーおよびシステムサービスのモックサポートが欠落していることが、カバレッジの向上を妨げており、特に K-9 Mail のようなアプリにおいて深刻な影響を及ぼす。
  • 一部のケースでは高いコードカバレッジを示しても、バグ検出は一貫性に欠け、多くの報告された例外は実際のアプリケーションバグではなくエミュレータの制限に起因している可能性が非常に高い。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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