論文の概要: Improving LLM-based Unit test generation via Template-based Repair
- arxiv url: http://arxiv.org/abs/2408.03095v4
- Date: Tue, 5 Nov 2024 12:57:35 GMT
- ステータス: 処理完了
- システム内更新日: 2024-11-08 12:44:50.334522
- Title: Improving LLM-based Unit test generation via Template-based Repair
- Title(参考訳): テンプレートベースの修復によるLCMベースの単体テスト生成の改善
- Authors: Siqi Gu, Chunrong Fang, Quanjun Zhang, Fangyuan Tian, Jianyi Zhou, Zhenyu Chen,
- Abstract要約: 単体テストは個々のプログラムユニットのバグを検出するのに不可欠だが、時間と労力を消費する。
大規模言語モデル(LLM)は、顕著な推論と生成能力を示している。
本稿では,新しい単体テスト生成法であるTestARTを提案する。
- 参考スコア(独自算出の注目度): 8.22619177301814
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Unit test is crucial for detecting bugs in individual program units but consumes time and effort. The existing automated unit test generation methods are mainly based on search-based software testing (SBST) and language models to liberate developers. Recently, large language models (LLMs) have demonstrated remarkable reasoning and generation capabilities. However, several problems limit their ability to generate high-quality test cases: (1) LLMs may generate invalid test cases under insufficient context, resulting in compilation errors; (2) Lack of test and coverage feedback information may cause runtime errors and low coverage rates. (3) The repetitive suppression problem causes LLMs to get stuck into the repetition loop of self-repair or re-generation attempts. In this paper, we propose TestART, a novel unit test generation method that leverages the strengths of LLMs while overcoming the limitations mentioned. TestART improves LLM-based unit test via co-evolution of automated generation and repair iteration. TestART leverages the template-based repair technique to fix bugs in LLM-generated test cases, using prompt injection to guide the next-step automated generation and avoid repetition suppression. Furthermore, TestART extracts coverage information from the passed test cases and utilizes it as testing feedback to enhance the sufficiency of the final test case. This synergy between generation and repair elevates the quality, effectiveness, and readability of the produced test cases significantly beyond previous methods. In comparative experiments, the pass rate of TestART-generated test cases is 78.55%, which is approximately 18% higher than both the ChatGPT-4.0 model and the same ChatGPT-3.5-based method ChatUniTest. It also achieves an impressive line coverage rate of 90.96% on the focal methods that passed the test, exceeding EvoSuite by 3.4%.
- Abstract(参考訳): 単体テストは個々のプログラムユニットのバグを検出するのに不可欠だが、時間と労力を消費する。
既存の自動単体テスト生成方法は、主に開発者を解放するための検索ベースのソフトウェアテスト(SBST)と言語モデルに基づいている。
近年,大規模言語モデル (LLM) が顕著な推論と生成能力を示している。
しかしながら, 1) LLMは, 文脈が不十分な場合に, 不正なテストケースを生成でき, コンパイルエラーが発生し, (2) テストやカバレッジのフィードバック情報が不足すると, 実行時のエラーやカバレッジ率の低下が発生する。
(3) 反復抑制問題により, LLMは自己再生や再生の繰り返しループに陥る。
本稿では,LLMの強みを生かした新しい単体テスト生成手法であるTestARTを提案する。
TestARTは、自動生成と修復の反復の共進化を通じて、LLMベースのユニットテストを改善している。
TestARTはテンプレートベースの修復技術を活用して、LCM生成のテストケースのバグを修正し、プロンプトインジェクションを使用して、次のステップの自動生成をガイドし、繰り返しの抑制を回避する。
さらに、TestARTはパスしたテストケースからカバレッジ情報を抽出し、テストフィードバックとして利用して最終テストケースの効率を高める。
この生成と修復の相乗効果は、生成したテストケースの品質、有効性、可読性を高める。
比較実験では、TestARTの生成したテストケースのパスレートは78.55%であり、ChatGPT-4.0モデルとChatGPT-3.5ベースのChatUniTestの両方よりも約18%高い。
また、テストに合格した焦点メソッドの90.96%のラインカバレッジ率も達成し、EvoSuiteを3.4%上回った。
関連論文リスト
- ProjectTest: A Project-level LLM Unit Test Generation Benchmark and Impact of Error Fixing Mechanisms [48.43237545197775]
単体テスト生成はLLMの有望かつ重要なユースケースとなっている。
ProjectTestは、Python、Java、JavaScriptをカバーするユニットテスト生成のためのプロジェクトレベルのベンチマークである。
論文 参考訳(メタデータ) (2025-02-10T15:24:30Z) - Learning to Generate Unit Tests for Automated Debugging [52.63217175637201]
ユニットテスト(UT)は、コードの正確性を評価するだけでなく、大きな言語モデル(LLM)へのフィードバックを提供する上でも重要な役割を果たします。
提案するUTGenは,LLMに対して,予測出力とともにエラーを示す単体テスト入力を生成することを教える。
UTGenがUT生成ベースラインを7.59%向上させることを示す。
論文 参考訳(メタデータ) (2025-02-03T18:51:43Z) - AugmenTest: Enhancing Tests with LLM-Driven Oracles [2.159639193866661]
AugmenTestは、大規模な言語モデルを活用して、テスト中のソフトウェアの利用可能なドキュメントに基づいて、正しいオーラクルを推測するアプローチである。
AugmenTestには4つのバリエーションがある: Simple Prompt、Extended Prompt、ジェネリックプロンプト付きRAG(テスト中のクラスやメソッドのコンテキストなしで)とSimple Prompt付きRAG。
結果は、最も保守的なシナリオでは、AugmenTestのExtended PromptがSimple Promptを一貫して上回り、正しいアサーションを生成するために30%の成功率を達成したことを示している。
論文 参考訳(メタデータ) (2025-01-29T07:45:41Z) - LlamaRestTest: Effective REST API Testing with Small Language Models [50.058600784556816]
LlamaRestTestは、2つのカスタムLCMを使って現実的なテストインプットを生成する新しいアプローチである。
LlamaRestTestは、RESTGPTで強化された仕様でさえ、コードカバレッジとエラー検出において最先端のツールを上回っている。
論文 参考訳(メタデータ) (2025-01-15T05:51:20Z) - Dynamic Scaling of Unit Tests for Code Reward Modeling [27.349232888627558]
現在の大規模言語モデル(LLM)は、コード生成のような複雑な推論タスクの最初の試みにおいて、正確な応答を生成するのに苦労することが多い。
高速かつ高品質な単体テストスケーリングを実現する軽量で効率的な単体テストジェネレータであるCodeRM-8Bを提案する。
論文 参考訳(メタデータ) (2025-01-02T04:33:31Z) - Large Language Models as Test Case Generators: Performance Evaluation and Enhancement [3.5398126682962587]
大規模言語モデルが高品質なテストケースをいかに生み出すかを検討する。
本稿では,テストインプットとテストアウトプットの生成を分離するemphTestChainというマルチエージェントフレームワークを提案する。
以上の結果から,TestChainはベースラインのマージンを大きく上回っていることが示唆された。
論文 参考訳(メタデータ) (2024-04-20T10:27:01Z) - GPT-HateCheck: Can LLMs Write Better Functional Tests for Hate Speech Detection? [50.53312866647302]
HateCheckは、合成データに対してきめ細かいモデル機能をテストするスイートである。
GPT-HateCheckは,スクラッチからより多彩で現実的な機能テストを生成するフレームワークである。
クラウドソースのアノテーションは、生成されたテストケースが高品質であることを示しています。
論文 参考訳(メタデータ) (2024-02-23T10:02:01Z) - Observation-based unit test generation at Meta [52.4716552057909]
TestGenは、アプリケーション実行中に観察された複雑なオブジェクトのシリアライズされた観察から作られたユニットテストを自動的に生成する。
TestGenは518のテストを本番環境に投入し、継続的統合で9,617,349回実行され、5,702の障害が見つかった。
評価の結果,信頼性の高い4,361のエンドツーエンドテストから,少なくとも86%のクラスでテストを生成することができた。
論文 参考訳(メタデータ) (2024-02-09T00:34:39Z) - Effective Test Generation Using Pre-trained Large Language Models and
Mutation Testing [13.743062498008555]
大規模言語モデル(LLM)が生成するテストケースの有効性を,バグの発見の観点から改善するための MuTAP を導入する。
MuTAPは、プログラム・アンダー・テスト(PUT)の自然言語記述がない場合に有効なテストケースを生成することができる
提案手法は, 最大28%の人書きコードスニペットを検出できることを示す。
論文 参考訳(メタデータ) (2023-08-31T08:48:31Z) - Towards Automatic Generation of Amplified Regression Test Oracles [44.45138073080198]
回帰テストオラクルを増幅するためのテストオラクル導出手法を提案する。
このアプローチはテスト実行中にオブジェクトの状態を監視し、以前のバージョンと比較して、SUTの意図した振る舞いに関連する変更を検出する。
論文 参考訳(メタデータ) (2023-07-28T12:38:44Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。