Skip to main content
QUICK REVIEW

[論文レビュー] Reinforcement Learning-Driven Test Generation for Android GUI Applications using Formal Specifications

Yavuz Köroglu, Alper Şen|arXiv (Cornell University)|Nov 13, 2019
Software Testing and Debugging Techniques参考文献 40被引用数 12
ひとこと要約

FARLEAD-Android は、ユーザー定義の線形時相論理(LTL)仕様を満たすテストを生成するために強化学習(RL)を用いる、Android GUI アプリケーション向けの完全自動テスト生成フレームワークである。形式的仕様を明示的なテストオラクルとして活用することで、ランダム、モンキーテスト、QBEa よりも効果的かつ効率的に特定のGUI動作をターゲットにした機能正しいテストを生成し、優れた効果を発揮する。

ABSTRACT

There have been many studies on automated test generation for mobile Graphical User Interface (GUI) applications. These studies successfully demonstrate how to detect fatal exceptions and achieve high code and activity coverage with fully automated test generation engines. However, it is unclear how many GUI functions these engines manage to test. Furthermore, these engines implement only implicit test oracles. We propose Fully Automated Reinforcement LEArning-Driven Specification-Based Test Generator for Android (FARLEAD-Android). FARLEAD-Android accepts a GUI-level formal specification as a Linear-time Temporal Logic (LTL) formula. By dynamically executing the Application Under Test (AUT), it learns how to generate a test that satisfies the LTL formula using Reinforcement Learning (RL). The LTL formula does not just guide the test generation but also acts as a specified test oracle, enabling the developer to define automated test oracles for a wide variety of GUI functions by changing the formula. Our evaluation shows that FARLEAD-Android is more effective and achieves higher performance in generating tests for specified GUI functions than three known approaches, Random, Monkey, and QBEa. To the best of our knowledge, FARLEAD-Android is the first fully automated mobile GUI testing engine that uses formal specifications.

研究の動機と目的

  • 既存の自動GUIテストツールが高いコードおよびアクティビティカバレッジを達成するが、重要なGUI機能を効果的にテストできないというギャップを解消すること。
  • 形式的仕様、特にLTLをテストプロセスに統合することで、明示的なテストオラクルを備えた完全自動テスト生成を可能にすること。
  • 開発者がLTL式を用いて望ましいGUI動作を指定することで、テストオラクル定義の手作業を軽減すること。
  • 強化学習を用いてLTL仕様を満たす最適なアクションシーケンスを学習することで、テスト生成の効率性と有効性を向上させること。
  • テストをLTL式としてエンコードすることにより、デバイスに依存しないテスト生成を可能にすること。

提案手法

  • FARLEAD-Android は、アプリケーションの動作を検証対象(AUT)として、動的かつリアルタイムに相互作用する強化学習エージェントを用い、最適なアクションシーケンスを学習する。
  • 現在の状態がLTL仕様の一部を満たしているかどうかに応じて報酬が与えられ、エージェントはLTL式全体を満たすテストの生成を促進する。
  • 状態空間にはGUIコンポonentの状態、アクティビティ遷移、クラッシュ検出などの文脈的属性が含まれ、アクションはGUI操作(例:クリック、スワイプ)である。
  • LTL式はテストオラクルとしても、目標関数としても機能し、形式的な動作要件を満たすテストを生成するためのポリシーを学習可能にする。
  • フレームワークは仮想デバイス(Androidエミュレータ)と物理Androidデバイスの両方をサポートしており、生成されたテストはLTL式として保存され、ポータブルかつ再利用可能である。
  • LTL式の満たされた時点で強化学習の学習を早期に終了することで、無駄な探索を回避し、実行コストを削減する。

実験結果

リサーチクエスチョン

  • RQ1強化学習駆動のテスト生成ツールは、Android GUIアプリケーションの形式的LTL仕様を満たすテストを効果的に生成できるか?
  • RQ2FARLEAD-Androidは、ランダム、モンキー、QBEaといった従来のアプローチと比較して、機能正しいテストを生成する性能において優れているか?
  • RQ3LTL仕様の明確さが、テスト生成の有効性と効率性にどの程度影響を与えるか?
  • RQ4LTLベースのテストオラクルメカニズムは、致命的例外やカバレッジ指標を超えて機能的バグを検出できるか?
  • RQ5アクションシーケンスではなくLTL式としてテストロジックをエンコードすることで、ポータブルかつデバイスに依存しないテスト生成が可能か?

主な発見

  • FARLEAD-Android は、与えられたLTL仕様を満たすテストを生成する際、ランダム、モンキー、QBEa よりも優れた性能を示し、特定のGUI機能をターゲットにした有効性が高くなっている。
  • LTLを明示的なテストオラクルとして用いることで、クラッシュ検出やカバレッジを超えたGUI動作の正確な検証が可能となり、テスト生成の性能が向上している。
  • LTL式が満たされた時点で強化学習プロセスを早期終了することで、標準的なRL-LTL手法と比較して著しく少ないステップ数で実行が可能となり、実行コストが削減された。
  • LTL式を用いたテストのエンコードにより、デバイス固有の座標やアクションを抽象化するため、デバイスに依存しないテスト生成が実現された。
  • フレームワークは既知のバグを再現し、実験用アプリケーションで2件の新しいバグを発見した。これらのバグは、イシュー追跡システムを通じて開発者に報告された。
  • FARLEAD-Android の有効性は、より詳細なLTL仕様であるほど向上しており、仕様の明確さがより良いテスト生成結果をもたらすことが示された。

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

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

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

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