論文の概要: Boosting Rust Unit Test Coverage through Hybrid Program Analysis and Large Language Models
- arxiv url: http://arxiv.org/abs/2506.09002v2
- Date: Wed, 11 Jun 2025 03:16:55 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-06-12 16:13:48.089976
- Title: Boosting Rust Unit Test Coverage through Hybrid Program Analysis and Large Language Models
- Title(参考訳): ハイブリッドプログラム分析と大規模言語モデルによるRustユニットテストカバレッジ向上
- Authors: Bei Chu, Yang Feng, Kui Liu, Hange Shi, Zifan Nan, Zhaoqiang Guo, Baowen Xu,
- Abstract要約: 本稿では,大規模言語モデル(LLM)を活用して高カバレッジ単体テストを生成する手法であるPALMを提案する。
PALMはプログラム解析を行い、関数内の分岐条件を特定し、それを経路制約に結合する。
このアプローチを実装し、それを10のオープンソースのRustクラッドで評価します。
- 参考スコア(独自算出の注目度): 14.536415473544146
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Unit testing is essential for ensuring software reliability and correctness. Classic Search-Based Software Testing (SBST) methods and concolic execution-based approaches for generating unit tests often fail to achieve high coverage due to difficulties in handling complex program units, such as branching conditions and external dependencies. Recent work has increasingly utilized large language models (LLMs) to generate test cases, improving the quality of test generation by providing better context and correcting errors in the model's output. However, these methods rely on fixed prompts, resulting in relatively low compilation success rates and coverage. This paper presents PALM, an approach that leverages large language models (LLMs) to enhance the generation of high-coverage unit tests. PALM performs program analysis to identify branching conditions within functions, which are then combined into path constraints. These constraints and relevant contextual information are used to construct prompts that guide the LLMs in generating unit tests. We implement the approach and evaluate it in 10 open-source Rust crates. Experimental results show that within just two or three hours, PALM can significantly improves test coverage compared to classic methods, with increases in overall project coverage exceeding 50% in some instances and its generated tests achieving an average coverage of 75.77%, comparable to human effort (71.30%), highlighting the potential of LLMs in automated test generation. We submitted 91 PALM-generated unit tests targeting new code. Of these submissions, 80 were accepted, 5 were rejected, and 6 remain pending review. The results demonstrate the effectiveness of integrating program analysis with AI and open new avenues for future research in automated software testing.
- Abstract(参考訳): ユニットテストは、ソフトウェアの信頼性と正確性を保証するために不可欠です。
古典的な検索ベースソフトウェアテスト(SBST)手法と、単体テストを生成するための複雑な実行ベースのアプローチは、分岐条件や外部依存関係といった複雑なプログラムユニットを扱うのに困難があるため、しばしば高いカバレッジを達成できない。
最近の研究は、テストケースを生成するために大規模な言語モデル(LLM)をますます活用し、より良いコンテキストを提供し、モデルの出力のエラーを修正することによって、テスト生成の品質を改善している。
しかし、これらの手法は固定的なプロンプトに依存しており、コンパイルの成功率とカバレッジは比較的低い。
本稿では,大規模言語モデル(LLM)を活用して高カバレッジ単体テストを生成する手法であるPALMを提案する。
PALMはプログラム解析を行い、関数内の分岐条件を特定し、それを経路制約に結合する。
これらの制約と関連するコンテキスト情報は、単体テストの生成においてLLMを導くプロンプトを構築するために使用される。
このアプローチを実装し、それを10のオープンソースのRustクラッドで評価します。
実験の結果、PALMは2時間か3時間で従来の方法と比較してテストカバレッジを大幅に改善し、いくつかのケースではプロジェクトのカバレッジが50%以上増加し、生成したテストは平均で75.77%に達し、人間の労力(71.30%)に匹敵し、自動テスト生成におけるLLMの可能性を強調した。
我々は新しいコードを対象とした91個のPALM生成ユニットテストを提出した。
これらの提出のうち80件が受理され、5件が却下され、6件が検討中である。
その結果、プログラム分析をAIと統合し、将来のソフトウェア自動テスト研究の新たな道を開く効果が示された。
関連論文リスト
- Training Language Models to Generate Quality Code with Program Analysis Feedback [66.0854002147103]
大規模言語モデル(LLM)によるコード生成は、ますます本番環境で採用されているが、コード品質の保証には失敗している。
実運用品質のコードを生成するためにLLMにインセンティブを与える強化学習フレームワークであるREALを提案する。
論文 参考訳(メタデータ) (2025-05-28T17:57:47Z) - Thinking Longer, Not Larger: Enhancing Software Engineering Agents via Scaling Test-Time Compute [61.00662702026523]
より大規模なモデルではなく、推論時間の増加を活用する統合されたテスト時間計算スケーリングフレームワークを提案する。
当社のフレームワークには,内部TTCと外部TTCの2つの補完戦略が組み込まれている。
当社の textbf32B モデルは,DeepSeek R1 671B や OpenAI o1 など,はるかに大きなモデルを上回る 46% の課題解決率を実現している。
論文 参考訳(メタデータ) (2025-03-31T07:31:32Z) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - TestART: Improving LLM-based Unit Testing via Co-evolution of Automated Generation and Repair Iteration [7.509927117191286]
大規模言語モデル(LLM)は、単体テストケースを生成する際、顕著な能力を示した。
本研究では,新しい単体テスト生成法であるTestARTを提案する。
TestARTは、自動生成と修復の反復の共進化を通じて、LLMベースのユニットテストを改善している。
論文 参考訳(メタデータ) (2024-08-06T10:52:41Z) - Benchmarking Uncertainty Quantification Methods for Large Language Models with LM-Polygraph [83.90988015005934]
不確実性定量化は機械学習アプリケーションにおいて重要な要素である。
最新のUQベースラインの集合を実装した新しいベンチマークを導入する。
我々は、11タスクにわたるUQと正規化技術に関する大規模な実証的研究を行い、最も効果的なアプローチを特定した。
論文 参考訳(メタデータ) (2024-06-21T20:06:31Z) - 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) - Generative Judge for Evaluating Alignment [84.09815387884753]
本稿では,これらの課題に対処するために,13Bパラメータを持つ生成判断器Auto-Jを提案する。
我々のモデルは,大規模な実環境シナリオ下でのユーザクエリとLLM生成応答に基づいて訓練されている。
実験的に、Auto-Jはオープンソースモデルとクローズドソースモデルの両方を含む、強力なライバルのシリーズを上回っている。
論文 参考訳(メタデータ) (2023-10-09T07:27:15Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。