論文の概要: Code-Aware Prompting: A study of Coverage Guided Test Generation in
Regression Setting using LLM
- arxiv url: http://arxiv.org/abs/2402.00097v1
- Date: Wed, 31 Jan 2024 18:21:49 GMT
- ステータス: 処理完了
- システム内更新日: 2024-02-02 17:52:15.774311
- Title: Code-Aware Prompting: A study of Coverage Guided Test Generation in
Regression Setting using LLM
- Title(参考訳): Code-Aware Prompting:LLMを用いた回帰設定におけるカバーガイドテスト生成の検討
- Authors: Gabriel Ryan, Siddhartha Jain, Mingyue Shang, Shiqi Wang, Xiaofei Ma,
Murali Krishna Ramanathan, Baishakhi Ray
- Abstract要約: テスト生成における大規模言語モデルのコード認識促進戦略であるSymPromptを提案する。
我々のアプローチは、事前訓練されたLLMが、追加の訓練をすることなく、より完全なテストケースを生成することを可能にする。
- 参考スコア(独自算出の注目度): 34.07127332725332
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Testing plays a pivotal role in ensuring software quality, yet conventional
Search Based Software Testing (SBST) methods often struggle with complex
software units, achieving suboptimal test coverage. Recent work using large
language models (LLMs) for test generation have focused on improving generation
quality through optimizing the test generation context and correcting errors in
model outputs, but use fixed prompting strategies that prompt the model to
generate tests without additional guidance. As a result LLM-generated test
suites still suffer from low coverage. In this paper, we present SymPrompt, a
code-aware prompting strategy for LLMs in test generation. SymPrompt's approach
is based on recent work that demonstrates LLMs can solve more complex logical
problems when prompted to reason about the problem in a multi-step fashion. We
apply this methodology to test generation by deconstructing the testsuite
generation process into a multi-stage sequence, each of which is driven by a
specific prompt aligned with the execution paths of the method under test, and
exposing relevant type and dependency focal context to the model. Our approach
enables pretrained LLMs to generate more complete test cases without any
additional training. We implement SymPrompt using the TreeSitter parsing
framework and evaluate on a benchmark challenging methods from open source
Python projects. SymPrompt enhances correct test generations by a factor of 5
and bolsters relative coverage by 26% for CodeGen2. Notably, when applied to
GPT-4, symbolic path prompts improve coverage by over 2x compared to baseline
prompting strategies.
- Abstract(参考訳): テストはソフトウェアの品質を確保する上で重要な役割を果たすが、従来のsbst(search based software testing)メソッドは複雑なソフトウェアユニットで苦労し、準最適テストカバレッジを達成する。
テスト生成に大規模な言語モデル(llms)を使用する最近の研究は、テスト生成コンテキストを最適化し、モデル出力のエラーを訂正することで、生成品質を改善することに重点を置いている。
その結果、LLM生成テストスイートは、まだ低カバレッジに悩まされている。
本稿では,テスト生成におけるLLMのコード認識促進戦略であるSymPromptを提案する。
SymPrompt のアプローチは、LLM がより複雑な論理的問題を、多段階的な推論によって解けることを示す最近の研究に基づいている。
この手法をテスト生成に適用し、テストスイート生成プロセスを多段階のシーケンスに分解し、それぞれがテスト対象のメソッドの実行パスに合わせた特定のプロンプトによって駆動され、関連する型と依存関係の焦点コンテキストをモデルに暴露する。
我々のアプローチは、事前訓練されたLLMが追加の訓練をすることなく、より完全なテストケースを生成することを可能にする。
我々はtreesitterパースフレームワークを使ってsympromptを実装し,オープンソースpythonプロジェクトのベンチマーク課題メソッドを評価した。
SymPromptは、正しいテスト世代を5倍に増やし、CodeGen2の相対カバレッジを26%向上させる。
特に、GPT-4に適用すると、シンボリックパスはベースラインのプロンプト戦略に比べて2倍以上のカバレッジを向上させる。
関連論文リスト
- StepCoder: Improve Code Generation with Reinforcement Learning from
Compiler Feedback [58.20547418182074]
2つの主要コンポーネントからなるコード生成の新しいフレームワークであるStepCoderを紹介します。
CCCSは、長いシーケンスのコード生成タスクをCurriculum of Code Completion Subtaskに分割することで、探索課題に対処する。
FGOは、未実行のコードセグメントをマスクすることでのみモデルを最適化し、Fine-Grained Optimizationを提供する。
提案手法は,出力空間を探索し,対応するベンチマークにおいて最先端の手法より優れた性能を発揮する。
論文 参考訳(メタデータ) (2024-02-02T13:14:31Z) - TDD Without Tears: Towards Test Case Generation from Requirements
through Deep Reinforcement Learning [22.331330777536046]
テスト駆動開発(TDD)は、実際のコードを書く前に要件に基づいてテストケースを書くことを義務付ける。
テストケースを書くことはTDDの中心ですが、時間がかかり、コストがかかり、開発者が悩まされることも少なくありません。
PyTesterは、テキストからテストケースを生成するアプローチで、正しい、実行可能な、完全な、効果的なテストケースを自動的に生成します。
論文 参考訳(メタデータ) (2024-01-15T10:21:58Z) - Unit Test Generation using Generative AI : A Comparative Performance
Analysis of Autogeneration Tools [2.0686733932673604]
本研究では,Pythonプログラムの単体テストスクリプト生成におけるLarge Language Models(LLMs)の有効性を実験的に検討することを目的とする。
実験では,1)手続き型スクリプト,2)関数ベースのモジュール型コード,3)クラスベースのコードという3つのタイプのコードユニットを検討する。
以上の結果から,ChatGPTの性能はPynguinに匹敵するが,いくつかのケースではPynguinよりも優れていた。
論文 参考訳(メタデータ) (2023-12-17T06:38:11Z) - Automatic Hallucination Assessment for Aligned Large Language Models via
Transferable Adversarial Attacks [98.22864957942821]
本稿では,大規模言語モデルが忠実に振る舞う既存データを適切に修正し,評価データを自動的に生成する手法を開発することを目的とする。
具体的には,LLM ベースのフレームワークである Auto Debug について述べる。
実験結果から, LLMは, インプロンプトに与えられた知識とパラメトリック知識との間に矛盾がある場合, 質問応答シナリオの2つのカテゴリに幻覚を与える可能性が示唆された。
論文 参考訳(メタデータ) (2023-10-19T06:37:32Z) - Reinforcement Learning from Automatic Feedback for High-Quality Unit
Test Generation [13.658632458850144]
大規模言語モデル(LLM)は、テストケースの自動生成を含むコード生成で人気を集めている。
LLMは、多くの場合、大量の公開コードでトレーニングされ、ベストプラクティスに従わないテストケースを含む。
RLSQM(Reinforcement Learning from Static Quality Metrics)と呼ばれる新しい手法を提案する。
論文 参考訳(メタデータ) (2023-10-03T18:48:31Z) - Effective Test Generation Using Pre-trained Large Language Models and
Mutation Testing [13.743062498008555]
大規模言語モデル(LLM)が生成するテストケースの有効性を,バグの発見の観点から改善するための MuTAP を導入する。
MuTAPは、プログラム・アンダー・テスト(PUT)の自然言語記述がない場合に有効なテストケースを生成することができる
提案手法は, 最大28%の人書きコードスニペットを検出できることを示す。
論文 参考訳(メタデータ) (2023-08-31T08:48:31Z) - Fully Autonomous Programming with Large Language Models [0.9558392439655015]
LLM(Large Language Models)を用いたプログラム合成への最近のアプローチは、"ニアミスシンドローム"を示す。
我々は、LLMとプログラム合成ベンチマーク2としてOpenAI Codexを使用し、問題記述と評価のためのテストのデータベースとして使用します。
結果として生じるフレームワークは、修復フェーズなしでのCodexの従来の使用法と、従来の遺伝的プログラミングアプローチの両方を上回ります。
論文 参考訳(メタデータ) (2023-04-20T16:12:05Z) - Guiding Large Language Models via Directional Stimulus Prompting [114.84930073977672]
我々は,特定の所望の出力に対して,ブラックボックス大言語モデル(LLM)を導くための新しいフレームワークであるDirectional Stimulus Promptingを紹介する。
LLMを直接調整するのではなく、小さな調整可能なポリシーモデルを用いて各入力インスタンスに対して補助的な指向性刺激プロンプトを生成する。
論文 参考訳(メタデータ) (2023-02-22T17:44:15Z) - CodeT: Code Generation with Generated Tests [49.622590050797236]
テストケースを自動的に生成するための事前学習言語モデルについて検討する。
CodeTは生成されたテストケースを使ってコードソリューションを実行し、次に最良のソリューションを選択します。
我々は,HumanEvalとMBPPのベンチマークを用いて,5種類の事前学習モデル上でCodeTを評価する。
論文 参考訳(メタデータ) (2022-07-21T10:18:37Z) - Text Generation with Efficient (Soft) Q-Learning [91.47743595382758]
強化学習(RL)は、任意のタスクメトリクスを報酬としてプラグインすることで、より柔軟なソリューションを提供する。
ソフトQ-ラーニングの観点からテキスト生成のための新しいRL式を導入する。
雑音/負の例から学習し、敵攻撃、即時生成など、幅広いタスクにアプローチを適用する。
論文 参考訳(メタデータ) (2021-06-14T18:48:40Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。