論文の概要: Learning to Generate Unit Tests for Automated Debugging
- arxiv url: http://arxiv.org/abs/2502.01619v2
- Date: Wed, 26 Feb 2025 18:03:54 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-02-27 14:55:16.391723
- Title: Learning to Generate Unit Tests for Automated Debugging
- Title(参考訳): 自動デバッグのためのユニットテスト生成の学習
- Authors: Archiki Prasad, Elias Stengel-Eskin, Justin Chih-Yao Chen, Zaid Khan, Mohit Bansal,
- Abstract要約: ユニットテスト(UT)は、コードの正確性を評価するだけでなく、大きな言語モデル(LLM)にフィードバックを提供する上でも重要な役割を果たします。
提案するUTGenは,LLMに対して,予測出力とともにエラーを示す単体テスト入力を生成することを教える。
UTGen は他の LLM ベースラインを7.59% 上回っていることを示す。
- 参考スコア(独自算出の注目度): 52.63217175637201
- License:
- Abstract: Unit tests (UTs) play an instrumental role in assessing code correctness as well as providing feedback to large language models (LLMs), motivating automated test generation. However, we uncover a trade-off between generating unit test inputs that reveal errors when given a faulty code and correctly predicting the unit test output without access to the gold solution. To address this trade-off, we propose UTGen, which teaches LLMs to generate unit test inputs that reveal errors along with their correct expected outputs based on task descriptions. Since model-generated tests can provide noisy signals (e.g., from incorrectly predicted outputs), we propose UTDebug that (i) scales UTGen via test-time compute to improve UT output prediction, and (ii) validates and backtracks edits based on multiple generated UTs to avoid overfitting, and helps LLMs debug effectively. We show that UTGen outperforms other LLM-based baselines by 7.59% based on a metric measuring the presence of both error-revealing UT inputs and correct UT outputs. When used with UTDebug, we find that feedback from UTGen's unit tests improves pass@1 accuracy of Qwen2.5 32B on HumanEvalFix and our own harder debugging split of MBPP+ by over 3.17% and 12.35% (respectively) over other LLM-based UT generation baselines. Lastly, we demonstrate that UTGen is a better judge for code correctness, outperforming a state-of-the-art trained 8B reward model by 4.43% on HumanEval+ with best-of-10 sampling using Qwen2.5 7B.
- Abstract(参考訳): ユニットテスト(UT)は、コードの正確性の評価や、大規模な言語モデル(LLM)へのフィードバックの提供、自動テスト生成の動機付けに重要な役割を果たします。
しかし、不良コードの入力時にエラーを発生させる単体テスト入力と、金の解にアクセスできることなく正確に単体テスト出力を予測するとのトレードオフを明らかにする。
このトレードオフに対処するために,タスク記述に基づく予測出力とともにエラーを明らかにするユニットテストインプットを生成することをLLMに教えるUTGenを提案する。
モデル生成テストはノイズの多い信号(例えば、誤って予測された出力から)を提供できるので、UTDebugを提案する。
(i)UTGenをテスト時間計算でスケールし、UT出力予測を改善する。
i) オーバーフィッティングを避けるため、複数の生成されたUTに基づいて編集の検証とバックトラックを行い、LLMのデバッグを効果的に行う。
UTGen は他の LLM ベースラインを7.59% 上回っていることを示す。
UTDebugを使用すると、UTGenのユニットテストからのフィードバックにより、HumanEvalFix上のQwen2.5 32Bのパス@1精度が向上し、他のLLMベースのUT生成ベースラインよりもMBPP+が3.17%以上、12.35%(ふりかえりに)難しいデバッグスプリットが向上することがわかった。
最後に、UTGenは、Qwen2.5 7Bを用いた10個のサンプリングで、HumanEval+上で、最先端のトレーニング済み8B報酬モデルよりも4.43%高い精度で、コード正当性を判断できることを示す。
関連論文リスト
- TestART: Improving LLM-based Unit Testing via Co-evolution of Automated Generation and Repair Iteration [7.833381226332574]
大規模言語モデル(LLM)は、単体テストケースを生成する際、顕著な能力を示した。
本研究では,新しい単体テスト生成法であるTestARTを提案する。
TestARTは、自動生成と修復の反復の共進化を通じて、LLMベースのユニットテストを改善している。
論文 参考訳(メタデータ) (2024-08-06T10:52:41Z) - PROZE: Generating Parameterized Unit Tests Informed by Runtime Data [10.405775369526006]
パラメータ化された単体テスト(PUT)は、一連の入力を引数として受け取り、これらすべての入力に対して真であると予想されるアサーションを含む。
本稿では,複数の入力を保持するPUTのオーラクルを見つける問題に対処する。
我々は,複数のテスト入力に対して有効な開発者記述アサーションを識別し,PUTを生成するPROZEと呼ばれるシステムの設計を行う。
論文 参考訳(メタデータ) (2024-06-30T17:07:12Z) - Self-play with Execution Feedback: Improving Instruction-following Capabilities of Large Language Models [54.14602121129874]
トレーニングデータを自動的に生成する最初のスケーラブルで信頼性の高いAutoIFを導入する。
AutoIFは命令追従データ品質の検証をコード検証に変換する。
論文 参考訳(メタデータ) (2024-06-19T13:29:53Z) - LLM-Powered Test Case Generation for Detecting Tricky Bugs [30.82169191775785]
AIDは、少なくとも正しいプログラムをターゲットにしたテスト入力とオラクルを生成する。
TrickyBugs と EvalPlus の2つの大規模データセットに対する AID の評価を行った。
その結果,AIDのリコール,精度,F1スコアは,それぞれ1.80x,2.65x,1.66xに優れていた。
論文 参考訳(メタデータ) (2024-04-16T06:20:06Z) - Enriching Automatic Test Case Generation by Extracting Relevant Test
Inputs from Bug Reports [8.85274953789614]
nameは、自動テスト生成ツールに入力される入力値を特定するためのバグレポートを探索するテクニックである。
Defects4Jプロジェクトでは,正規表現を用いた場合,68.68%の関連入力が抽出された。
論文 参考訳(メタデータ) (2023-12-22T18:19:33Z) - Knowledge-Augmented Language Model Verification [68.6099592486075]
最近の言語モデル(LM)は、パラメータに内在化された知識を持つテキストを生成する際、印象的な能力を示している。
本稿では,知識付加型LMの出力と知識を別個の検証器で検証することを提案する。
その結果,提案した検証器は,検索と生成の誤りを効果的に識別し,LMがより現実的に正しい出力を提供できることを示した。
論文 参考訳(メタデータ) (2023-10-19T15:40:00Z) - Prompting Code Interpreter to Write Better Unit Tests on Quixbugs
Functions [0.05657375260432172]
単体テストは、ソフトウェア工学において、記述されたコードの正確性と堅牢性をテストするために一般的に使用されるアプローチである。
本研究では,コードインタプリタが生成する単体テストの品質に及ぼす異なるプロンプトの影響について検討する。
生成した単体テストの品質は、提供されたプロンプトのマイナーな詳細の変更に敏感ではないことがわかった。
論文 参考訳(メタデータ) (2023-09-30T20:36:23Z) - LeTI: Learning to Generate from Textual Interactions [60.425769582343506]
本稿では,テキストインタラクション(LETI)から学習するLMの可能性を,バイナリラベルによる正当性をチェックするだけでなく,テキストフィードバックを通じて出力中のエラーをピンポイントし,説明する。
私たちの焦点はコード生成タスクであり、そこではモデルが自然言語命令に基づいてコードを生成する。
LETIは、目的のLMを用いて、自然言語命令、LM生成プログラム、テキストフィードバックの結合に基づいて、モデルを反復的に微調整する。
論文 参考訳(メタデータ) (2023-05-17T15:53:31Z) - Teaching Large Language Models to Self-Debug [62.424077000154945]
大規模言語モデル(LLM)は、コード生成において素晴らしいパフォーマンスを達成した。
本稿では,大規模言語モデルで予測プログラムを数発のデモでデバッグする自己デバッグを提案する。
論文 参考訳(メタデータ) (2023-04-11T10:43:43Z) - Self-Supervised Log Parsing [59.04636530383049]
大規模ソフトウェアシステムは、大量の半構造化ログレコードを生成する。
既存のアプローチは、ログ特化や手動ルール抽出に依存している。
本稿では,自己教師付き学習モデルを用いて解析タスクをマスク言語モデリングとして定式化するNuLogを提案する。
論文 参考訳(メタデータ) (2020-03-17T19:25:25Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。