Skip to main content
QUICK REVIEW

[論文レビュー] Prompting Is All You Need: Automated Android Bug Replay with Large Language Models

Sidong Feng, Chunyang Chen|arXiv (Cornell University)|Jun 3, 2023
Software Engineering Research被引用数 10
ひとこと要約

本論文は AdbGPT を提案する。軽量な、プロンプト設計によるアプローチで、LLMs を用いてバグレポートから S2R エンティティを抽出し、自動 Android バグリプレイを誘導する。訓練なしで高い精度と効率を達成する。

ABSTRACT

Bug reports are vital for software maintenance that allow users to inform developers of the problems encountered while using the software. As such, researchers have committed considerable resources toward automating bug replay to expedite the process of software maintenance. Nonetheless, the success of current automated approaches is largely dictated by the characteristics and quality of bug reports, as they are constrained by the limitations of manually-crafted patterns and pre-defined vocabulary lists. Inspired by the success of Large Language Models (LLMs) in natural language understanding, we propose AdbGPT, a new lightweight approach to automatically reproduce the bugs from bug reports through prompt engineering, without any training and hard-coding effort. AdbGPT leverages few-shot learning and chain-of-thought reasoning to elicit human knowledge and logical reasoning from LLMs to accomplish the bug replay in a manner similar to a developer. Our evaluations demonstrate the effectiveness and efficiency of our AdbGPT to reproduce 81.3% of bug reports in 253.6 seconds, outperforming the state-of-the-art baselines and ablation studies. We also conduct a small-scale user study to confirm the usefulness of AdbGPT in enhancing developers' bug replay capabilities.

研究の動機と目的

  • 曖昧で不完全なバグレポートに対処するため、LLM を活用して自動的なバグリプレイを促進する。
  • モデルの訓練やハードコーディングを必要としない、2 段階のアプローチ(S2R エンティティ抽出とガイド付きリプレイ)を提案する。
  • LLM ベースの prompting が S2R 抽出とバグリプレイの効率性において最先端のベースラインを上回ることを示す。
  • 開発者にとっての実用性を、ユーザ研究を通じて実証する。

提案手法

  • 抽出タスクを固定するために S2R エンティティの仕様とアクションプリミティブを定義する。
  • バグレポートから構造化された S2R エンティティを引き出すため、連鎖的思考推論を含む few-shot 学習を用いる。
  • GUI 状態を HTML 風のプロンプトとしてエンコードし、LLMs が対象コンポーネントを識別できるようにする。
  • 動的な画面を横断して、S2R エンティティを GUI コンポーネントへマッピングするため、連鎖的思考ガイド付きリプレイを用いる。
  • エンドツーエンドの自動リプレイのために、Genymotion、UIAutomator、ADB と LLM のプロンプトを統合する。
Figure 1. The process of prompt engineering.
Figure 1. The process of prompt engineering.

実験結果

リサーチクエスチョン

  • RQ1RQ1: AdbGPT はバグレポートから S2R エンティティをどれくらい正確に抽出できるか?
  • RQ2RQ2: AdbGPT は GUI 操作を通じてバグをどれくらい正確にガイドし再現できるか?
  • RQ3RQ3: バグリプレイ時間において、AdbGPT はベースラインと比べてどれくらい効率的か?
  • RQ4RQ4: 実務でのバグリプレイにおいて、開発者から AdbGPT は有用と認識されるか?

主な発見

  • AdbGPT は S2R タスクで 90.4% のステップ抽出精度と 91.1% のエンティティ抽出精度を達成。
  • AdbGPT はバグの再現を 81.3% 行い、ベースラインと比較して1件あたり平均で 1105.17 秒を節約。
  • few-shot と連鎖思考を用いたプロンプト設計は、zero-shot および非 CoT バリアントと比べて性能を大幅に向上させる。
  • HTML 風プロンプトへの GUI エンコードにより、LLMs が動的な Android 画面を推論してガイド付きリプレイを実現できる。
  • 小規模なユーザ研究は、開発者のバグリプレイワークフローを支援する AdbGPT の有用性を示している。
Figure 2. The overview of AdbGPT .
Figure 2. The overview of AdbGPT .

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

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

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

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