論文の概要: 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 17:39:51.101463
- 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: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- 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%高い精度で、コード正当性を判断できることを示す。
関連論文リスト
- Learning to Solve and Verify: A Self-Play Framework for Code and Test Generation [69.62857948698436]
大規模言語モデル(LLM)の最近の進歩は、コーディングベンチマークのパフォーマンスを改善している。
しかし、手軽に利用できる高品質なデータの枯渇により、改善は停滞している。
本稿では,単一モデルのコードとテスト生成能力を共同で改善するセルフプレイ・ソルバ検証フレームワークであるSol-Verを提案する。
論文 参考訳(メタデータ) (2025-02-20T18:32:19Z) - DeCon: Detecting Incorrect Assertions via Postconditions Generated by a Large Language Model [22.38753408614465]
対象問題に対するLLM生成後条件による誤認識を効果的に検出する,DeCon という新しい手法を提案する。
デコンは64%以上(それぞれGPT-3.5とGPT-4で検出された63%と65.5%)の誤ったアサーションを4つの最先端LCMで検出できる。
論文 参考訳(メタデータ) (2025-01-06T10:25:28Z) - 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) - Benchmarking Uncertainty Quantification Methods for Large Language Models with LM-Polygraph [83.90988015005934]
不確実性定量化は機械学習アプリケーションにおいて重要な要素である。
最新のUQベースラインの集合を実装した新しいベンチマークを導入する。
我々は、11タスクにわたるUQと正規化技術に関する大規模な実証的研究を行い、最も効果的なアプローチを特定した。
論文 参考訳(メタデータ) (2024-06-21T20:06:31Z) - Self-play with Execution Feedback: Improving Instruction-following Capabilities of Large Language Models [54.14602121129874]
トレーニングデータを自動的に生成する最初のスケーラブルで信頼性の高いAutoIFを導入する。
AutoIFは命令追従データ品質の検証をコード検証に変換する。
論文 参考訳(メタデータ) (2024-06-19T13:29:53Z) - Small Language Models Need Strong Verifiers to Self-Correct Reasoning [69.94251699982388]
大規模言語モデル(LLM)の推論性能を高めるための有望なソリューションとして自己補正が登場した。
この研究は、小さい(=13B)言語モデル(LM)が、より強いLMから最小の入力で推論タスクを自己補正できるかどうかを考察する。
論文 参考訳(メタデータ) (2024-04-26T03:41:28Z) - 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) - 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) - An Empirical Evaluation of Using Large Language Models for Automated
Unit Test Generation [3.9762912548964864]
本稿では,自動単体テスト生成における大規模言語モデルの有効性について,大規模な実証評価を行った。
これはJavaScript用のテスト生成ツールで、npmパッケージ内のすべてのAPI関数のユニットテストを自動的に生成します。
TestPilotの生成されたテストの92.8%は、既存のテストと50%以上の類似性を持っていない。
論文 参考訳(メタデータ) (2023-02-13T17:13:41Z) - Self-Supervised Log Parsing [59.04636530383049]
大規模ソフトウェアシステムは、大量の半構造化ログレコードを生成する。
既存のアプローチは、ログ特化や手動ルール抽出に依存している。
本稿では,自己教師付き学習モデルを用いて解析タスクをマスク言語モデリングとして定式化するNuLogを提案する。
論文 参考訳(メタデータ) (2020-03-17T19:25:25Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。