論文の概要: A Multi-agent LLM-based JUnit Test Generation with Strong Oracles
- arxiv url: http://arxiv.org/abs/2506.02943v2
- Date: Wed, 04 Jun 2025 14:43:39 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-06-05 13:54:39.559319
- Title: A Multi-agent LLM-based JUnit Test Generation with Strong Oracles
- Title(参考訳): 強力なオラクルを用いたマルチエージェントLDMベースのJUnitテスト生成
- Authors: Qinghua Xu, Guancheng Wang, Lionel Briand, Kui Liu,
- Abstract要約: ユニットテストは、ソフトウェアの正しさを保証する上で重要な役割を担います。
従来の手法は、テストを生成するために検索ベースまたはランダム化アルゴリズムに依存していた。
我々は、JUnitテストの自動生成のための新しいエンドツーエンドのプロンプトベースのフレームワークであるCANDORを提案する。
- 参考スコア(独自算出の注目度): 2.908307411619051
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Unit testing plays a critical role in ensuring software correctness. However, writing unit tests manually is laborious, especially for strong typed languages like Java, motivating the need for automated approaches. Traditional methods primarily rely on search-based or randomized algorithms to generate tests that achieve high code coverage and produce regression oracles, which are derived from the program's current behavior rather than its intended functionality. Recent advances in large language models (LLMs) have enabled oracle generation from natural language descriptions. However, existing LLM-based methods often require LLM fine-tuning or rely on external tools such as EvoSuite for test prefix generation. In this work, we propose CANDOR, a novel end-to-end, prompt-based LLM framework for automated JUnit test generation. CANDOR orchestrates multiple specialized LLM agents to generate JUnit tests, including both high-quality test prefixes and accurate oracles. To mitigate the notorious hallucinations in LLMs, we introduce a novel strategy that engages multiple reasoning LLMs in a panel discussion and generate accurate oracles based on consensus. Additionally, to reduce the verbosity of reasoning LLMs' outputs, we propose a novel dual-LLM pipeline to produce concise and structured oracle evaluations. Our experiments on the HumanEvalJava and LeetCodeJava datasets show that CANDOR can generate accurate oracles and is slightly better than EvoSuite in generating tests with high line coverage and clearly superior in terms of mutation score. Moreover, CANDOR significantly outperforms the state-of-the-art, prompt-based test generator LLM-Empirical, achieving improvements of 15.8 to 25.1 percentage points in oracle correctness on both correct and faulty source code. Ablation studies confirm the critical contributions of key agents in improving test prefix quality and oracle accuracy.
- Abstract(参考訳): ユニットテストは、ソフトウェアの正しさを保証する上で重要な役割を担います。
しかし、手動でユニットテストを書くことは、特にJavaのような強力な型付け言語では、自動化されたアプローチの必要性を動機付けている。
従来の手法は主に検索ベースのアルゴリズムやランダム化アルゴリズムに頼り、高いコードカバレッジを達成するテストを生成し、プログラムの現在の振る舞いから派生した回帰オラクルを生成する。
大規模言語モデル(LLM)の最近の進歩により、自然言語記述からオラクル生成が可能になった。
しかし、既存の LLM ベースのメソッドでは、テストプレフィックス生成に LLM の微調整や EvoSuite などの外部ツールに依存することが多い。
本稿では、JUnitテストの自動生成のための新しいエンドツーエンドのプロンプトベースのLLMフレームワークであるCANDORを提案する。
CANDORはJUnitテストを生成するために複数の特殊なLLMエージェントを編成する。
LLMにおける悪名高い幻覚を緩和するために、パネルディスカッションにおいて複数の理性的なLCMを関与させ、コンセンサスに基づいて正確なオラクルを生成する新しい戦略を導入する。
さらに, LLMの出力を推定する冗長性を低減するために, 簡潔で構造化されたオラクル評価を行うための新しいデュアルLLMパイプラインを提案する。
我々は,HumanEvalJavaとLeetCodeJavaのデータセットを用いて,CANDORが正確なオラクルを生成できることを示す。
さらに、CANDORは最先端のプロンプトベースのテストジェネレータLLM-Empiricalを著しく上回り、15.8から25.1ポイントの改善を正当かつ欠陥のあるソースコードで達成している。
アブレーション研究は、テストプレフィックスの品質とオラクルの精度を向上させる上で、キーエージェントが重要な貢献をしていることを裏付ける。
関連論文リスト
- Improving the Readability of Automatically Generated Tests using Large Language Models [7.7149881834358345]
探索型ジェネレータの有効性とLLM生成試験の可読性を組み合わせることを提案する。
提案手法は,検索ツールが生成するテスト名や変数名の改善に重点を置いている。
論文 参考訳(メタデータ) (2024-12-25T09:08:53Z) - SpecTool: A Benchmark for Characterizing Errors in Tool-Use LLMs [77.79172008184415]
SpecToolは、ツール使用タスクのLLM出力のエラーパターンを特定するための新しいベンチマークである。
もっとも顕著なLCMでも,これらの誤りパターンが出力に現れることを示す。
SPECTOOLの分析と洞察を使って、エラー軽減戦略をガイドすることができる。
論文 参考訳(メタデータ) (2024-11-20T18:56:22Z) - Do LLMs generate test oracles that capture the actual or the expected program behaviour? [7.772338538073763]
大きな言語モデル(LLM)は、開発者のようなコードやテストケースを生成するために、膨大な量のデータに基づいて訓練されています。
この調査には、開発者によって書かれ、自動生成されるテストケースと、24のオープンソースJavaリポジトリのオーラクルが含まれている。
LLMは正しいオーラクルを分類するよりもテストオーラクルを生成する方が優れており、コードが有意義なテスト名や変数名を含む場合、よりよいテストオーラクルを生成することができる。
論文 参考訳(メタデータ) (2024-10-28T15:37:06Z) - Test Oracle Automation in the era of LLMs [52.69509240442899]
大規模言語モデル(LLM)は、多様なソフトウェアテストタスクに取り組むのに顕著な能力を示した。
本研究の目的は, 各種のオラクル生成時に生じる課題とともに, LLMs によるオラクルの自動化の可能性について検討することである。
論文 参考訳(メタデータ) (2024-05-21T13:19:10Z) - TOGLL: Correct and Strong Test Oracle Generation with LLMs [0.8057006406834466]
テストオラクルはソフトウェアテストにおいて重要な役割を担い、効果的なバグ検出を可能にします。
初期の約束にもかかわらず、自動テストオラクル生成のための神経ベースの手法は、しばしば多数の偽陽性をもたらす。
本研究は,LLMの正当性,多種多様性,強靭性テストオラクルの創出能力に関する総合的研究である。
論文 参考訳(メタデータ) (2024-05-06T18:37:35Z) - Code-Aware Prompting: A study of Coverage Guided Test Generation in Regression Setting using LLM [32.44432906540792]
テスト生成における大規模言語モデルのコード認識促進戦略であるSymPromptを提案する。
SymPromptは、正しいテスト世代を5倍に増やし、CodeGen2の相対カバレッジを26%向上させる。
特に、GPT-4に適用すると、SymPromptはベースラインのプロンプト戦略に比べて2倍以上のカバレッジが向上する。
論文 参考訳(メタデータ) (2024-01-31T18:21:49Z) - ALGO: Synthesizing Algorithmic Programs with LLM-Generated Oracle
Verifiers [60.6418431624873]
大きな言語モデル(LLM)は、機能記述からコードを実装するのに優れているが、アルゴリズムの問題に悩まされている。
我々は,アルゴリズムプログラムを LLM 生成 Oracle で合成するフレームワーク ALGO を提案し,その生成をガイドし,その正確性を検証する。
実験の結果,ALGOを装着すると,Codexモデルよりも8倍,CodeTよりも2.6倍の1サブミッションパス率が得られることがわかった。
論文 参考訳(メタデータ) (2023-05-24T00:10:15Z) - LEVER: Learning to Verify Language-to-Code Generation with Execution [64.36459105535]
本稿では,プログラムの実行結果の検証を学習することで,言語からコードへの生成を改善するシンプルな手法であるLEVERを提案する。
具体的には、LLMからサンプリングされたプログラムが、自然言語入力、プログラム自体とその実行結果に基づいて正しいか否かを判定するために、検証者を訓練する。
LEVER はベースコード LLMs (4.6% から 10.9% まで) を継続的に改善し、それらすべてに対して新しい最先端の結果を得る。
論文 参考訳(メタデータ) (2023-02-16T18:23:22Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。