Skip to main content
QUICK REVIEW

[論文レビュー] Software Testing with Large Language Models: Survey, Landscape, and Vision

Junjie Wang, Yuchao Huang|arXiv (Cornell University)|Jul 14, 2023
Software Testing and Debugging Techniques被引用数 27
ひとこと要約

大規模言語モデル(LLMs)を用いたソフトウェアテストに関する102件の研究を網羅的に調査し、タスク、LLMの使用法、プロンプト、課題、今後の方向性を詳述。

ABSTRACT

Pre-trained large language models (LLMs) have recently emerged as a breakthrough technology in natural language processing and artificial intelligence, with the ability to handle large-scale datasets and exhibit remarkable performance across a wide range of tasks. Meanwhile, software testing is a crucial undertaking that serves as a cornerstone for ensuring the quality and reliability of software products. As the scope and complexity of software systems continue to grow, the need for more effective software testing techniques becomes increasingly urgent, making it an area ripe for innovative approaches such as the use of LLMs. This paper provides a comprehensive review of the utilization of LLMs in software testing. It analyzes 102 relevant studies that have used LLMs for software testing, from both the software testing and LLMs perspectives. The paper presents a detailed discussion of the software testing tasks for which LLMs are commonly used, among which test case preparation and program repair are the most representative. It also analyzes the commonly used LLMs, the types of prompt engineering that are employed, as well as the accompanied techniques with these LLMs. It also summarizes the key challenges and potential opportunities in this direction. This work can serve as a roadmap for future research in this area, highlighting potential avenues for exploration, and identifying gaps in our current understanding of the use of LLMs in software testing.

研究の動機と目的

  • テストライフサイクル全体にわたるソフトウェアテストにおけるLLM応用の全体像を整理する。
  • LLMsで最も頻繁に扱われるソフトウェアテストタスクを特徴づける(例: テストケース作成、デバッグ、バグ修正)。
  • これらの研究で用いられるLLM技術、プロンプト戦略、および付随技術を分析する。
  • 今後の研究と実践を導くための主要な課題と機会を特定する。

提案手法

  • 2019–2023のACM/IEEE/arXiv/DBLPおよび主要なSE/AI分野会合を対象とした自動・手動の文献調査を行い、2023年10月まで拡張。
  • LLMsをソフトウェアテストタスクへ適用する論文を選別する inclusion/exclusion 基準。
  • 厳密性を担保するため、スコアリング式(最低8点)による品質評価。
  • バックワード・スノーボール法で文献範囲を補強。
  • ソフトウェアテストの観点(タスク、カバレッジ)とLLMの観点(モデル、プロンプト、技術)で研究を分類。
  • 傾向、制限、および将来の研究計画の統合的提案。

実験結果

リサーチクエスチョン

  • RQ1LLMsで一般的に扱われるソフトウェアテストタスクは何か(例: テストケース作成、プログラム修正、テストオラクル生成、システム入力生成)?
  • RQ2どのLLM、プロンプトタイプ、入力モダリティ、付随技術が研究全体で用いられているか?
  • RQ3LLM有効化されたテストの評価手法の主流と報告される性能傾向は何か?
  • RQ4LLMsをソフトウェアテストへ適用する際のギャップ、課題、機会は何であり、それらをどう解決すべきか?

主な発見

  • LLMsは最も頻繁にテストケース作成、プログラムデバッグ、バグ修正に適用される。
  • 研究の約3分の1はLLMの事前学習またはファインチューニングを使用し、他はプロンプトエンジニアリングに依存する。
  • ゼロショットおよびFew-shot promptingが最も一般的な戦略であり、思考過程(chain-of-thought)と自己整合性は利用が少ない。
  • 従来のテスト手法(例: 差分テスト、変異テスト)は、テスト生成を強化するためにしばしばLLMsと組み合わせて用いられる。
  • 初期のテストライフサイクル段階および非機能テストへのLLMs適用には顕著なギャップがあり、今後の研究方向を示唆している。
  • 本調査は、公開動向、典型的な会場、適用を加速するためのギャップを強調するロードマップを提供する。

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

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

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

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