論文の概要: Navigating the Labyrinth: Path-Sensitive Unit Test Generation with Large Language Models
- arxiv url: http://arxiv.org/abs/2509.23812v1
- Date: Sun, 28 Sep 2025 11:29:57 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-09-30 22:32:19.464695
- Title: Navigating the Labyrinth: Path-Sensitive Unit Test Generation with Large Language Models
- Title(参考訳): ラビリンスをナビゲートする:大規模言語モデルを用いたパス感度単体テスト生成
- Authors: Dianshu Liao, Xin Yin, Shidong Pan, Chao Ni, Zhenchang Xing, Xiaoyu Sun,
- Abstract要約: 単体テストはソフトウェアの品質保証には不可欠だが、テストの記述とメンテナンスは時間がかかり、エラーが発生しやすい。
このギャップを埋めるために、コード知識とLLMのセマンティック機能を組み合わせることで、パスに敏感なフレームワークであるJUnitGenieを紹介します。
JUnitGenieを実世界の10のJavaプロジェクトから2,258の複雑な焦点メソッドで評価する。
- 参考スコア(独自算出の注目度): 13.89267206718739
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Unit testing is essential for software quality assurance, yet writing and maintaining tests remains time-consuming and error-prone. To address this challenge, researchers have proposed various techniques for automating unit test generation, including traditional heuristic-based methods and more recent approaches that leverage large language models (LLMs). However, these existing approaches are inherently path-insensitive because they rely on fixed heuristics or limited contextual information and fail to reason about deep control-flow structures. As a result, they often struggle to achieve adequate coverage, particularly for deep or complex execution paths. In this work, we present a path-sensitive framework, JUnitGenie, to fill this gap by combining code knowledge with the semantic capabilities of LLMs in guiding context-aware unit test generation. After extracting code knowledge from Java projects, JUnitGenie distills this knowledge into structured prompts to guide the generation of high-coverage unit tests. We evaluate JUnitGenie on 2,258 complex focal methods from ten real-world Java projects. The results show that JUnitGenie generates valid tests and improves branch and line coverage by 29.60% and 31.00% on average over both heuristic and LLM-based baselines. We further demonstrate that the generated test cases can uncover real-world bugs, which were later confirmed and fixed by developers.
- Abstract(参考訳): 単体テストはソフトウェアの品質保証には不可欠ですが、テストの記述とメンテナンスには時間とエラーが伴います。
この課題に対処するため、研究者らは、従来のヒューリスティックな手法や、大規模言語モデル(LLM)を活用したより最近のアプローチを含む、単体テスト生成を自動化する様々な手法を提案してきた。
しかし、これらの既存手法は、固定ヒューリスティックや限られた文脈情報に依存しており、深い制御フロー構造を推論できないため、本質的にパス非感受性である。
結果として、特に深いあるいは複雑な実行パスにおいて、適切なカバレッジを達成するのに苦労することが多い。
本研究では、このギャップを埋めるために、コード知識とLLMのセマンティック機能を組み合わせることで、コンテキスト対応の単体テスト生成を導くパスセンシティブなフレームワークであるJUnitGenieを提案する。
Javaプロジェクトからコード知識を抽出した後、JUnitGenieは、この知識を構造化プロンプトに蒸留し、ハイカバレッジユニットテストの生成をガイドします。
JUnitGenieを実世界の10のJavaプロジェクトから2,258の複雑な焦点メソッドで評価する。
結果は、JUnitGenieが有効なテストを生成し、ヒューリスティックとLLMベースのベースラインの両方で平均29.60%と31.00%のブランチとラインカバレッジを改善していることを示している。
さらに、生成されたテストケースは、後に開発者が確認し、修正した現実世界のバグを発見できることを示す。
関連論文リスト
- Alignment with Fill-In-the-Middle for Enhancing Code Generation [56.791415642365415]
コードスニペットを小さな粒度のブロックに分割し,同じテストケースからより多様なDPOペアを生成する手法を提案する。
提案手法は,HumanEval (+), MBPP (+), APPS, LiveCodeBench, BigCodeBenchといったベンチマークデータセットの実験によって検証された,コード生成タスクの大幅な改善を示す。
論文 参考訳(メタデータ) (2025-08-27T03:15:53Z) - Seed&Steer: Guiding Large Language Models with Compilable Prefix and Branch Signals for Unit Test Generation [20.083515771706473]
単体テストはソフトウェア開発ライフサイクルにおいて重要な役割を果たす。
大規模言語モデル(LLM)に基づくアプローチの最近の進歩は、自動テスト生成を大幅に改善した。
従来のユニットテスト手法と大規模言語モデルの能力を組み合わせた2段階のアプローチであるSeed&Steerを提案する。
論文 参考訳(メタデータ) (2025-07-23T07:16:46Z) - Boosting Rust Unit Test Coverage through Hybrid Program Analysis and Large Language Models [14.536415473544146]
本稿では,大規模言語モデル(LLM)を活用して高カバレッジ単体テストを生成する手法であるPALMを提案する。
PALMはプログラム解析を行い、関数内の分岐条件を特定し、それを経路制約に結合する。
このアプローチを実装し、それを10のオープンソースのRustクラッドで評価します。
論文 参考訳(メタデータ) (2025-06-10T17:21:21Z) - 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) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - ASTER: Natural and Multi-language Unit Test Generation with LLMs [6.259245181881262]
静的解析を組み込んだジェネリックパイプラインを記述し,コンパイル可能な高カバレッジテストケースの生成においてLCMをガイドする。
コードカバレッジとテスト自然性の観点から,生成したテストの品質を評価するための実証的研究を行った。
論文 参考訳(メタデータ) (2024-09-04T21:46:18Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。