論文の概要: CITYWALK: Enhancing LLM-Based C++ Unit Test Generation via Project-Dependency Awareness and Language-Specific Knowledge
- arxiv url: http://arxiv.org/abs/2501.16155v1
- Date: Mon, 27 Jan 2025 15:49:24 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-01-28 13:58:24.929230
- Title: CITYWALK: Enhancing LLM-Based C++ Unit Test Generation via Project-Dependency Awareness and Language-Specific Knowledge
- Title(参考訳): CITYWALK: プロジェクト依存の認識と言語固有の知識によるLLMベースのC++ユニットテスト生成の強化
- Authors: Yuwei Zhang, Qingyuan Lu, Kai Liu, Wensheng Dou, Jiaxin Zhu, Li Qian, Chunxi Zhang, Zheng Lin, Jun Wei,
- Abstract要約: CITYWALKは、C++ユニットテスト生成のための新しいフレームワークである。
プログラム分析を通じて、テスト中のプロジェクト内の依存関係関係の包括的な理解を提供する。
プロジェクトドキュメンテーションと経験的な観察から派生したC++に関する言語固有の知識が組み込まれている。
- 参考スコア(独自算出の注目度): 13.592814106490724
- License:
- Abstract: Unit testing plays a pivotal role in the software development lifecycle, as it ensures code quality. However, writing high-quality unit tests remains a time-consuming task for developers in practice. More recently, the application of large language models (LLMs) in automated unit test generation has demonstrated promising results. Existing approaches primarily focus on interpreted programming languages (e.g., Java), while mature solutions tailored to compiled programming languages like C++ are yet to be explored. The intricate language features of C++, such as pointers, templates, and virtual functions, pose particular challenges for LLMs in generating both executable and high-coverage unit tests. To tackle the aforementioned problems, this paper introduces CITYWALK, a novel LLM-based framework for C++ unit test generation. CITYWALK enhances LLMs by providing a comprehensive understanding of the dependency relationships within the project under test via program analysis. Furthermore, CITYWALK incorporates language-specific knowledge about C++ derived from project documentation and empirical observations, significantly improving the correctness of the LLM-generated unit tests. We implement CITYWALK by employing the widely popular LLM GPT-4o. The experimental results show that CITYWALK outperforms current state-of-the-art approaches on a collection of eight popular C++ projects. Our findings demonstrate the effectiveness of CITYWALK in generating high-quality C++ unit tests.
- Abstract(参考訳): ユニットテストは、コード品質を保証するため、ソフトウェア開発ライフサイクルにおいて重要な役割を果たす。
しかし、高品質な単体テストを書くことは、実際には開発者にとって時間がかかる作業です。
近年,大規模言語モデル (LLM) を自動単体テスト生成に適用することで,有望な結果が得られた。
既存のアプローチは主にインタプリタプログラミング言語(Javaなど)に焦点を当てているが、C++のようなコンパイルされたプログラミング言語に適した成熟したソリューションはまだ検討されていない。
ポインタやテンプレート、仮想関数といったC++の複雑な言語機能は、実行可能なユニットテストと高カバレッジユニットテストの両方を生成する上で、LLMに特別な課題をもたらす。
上記の問題に対処するため,C++ 単体テスト生成のための新しい LLM ベースのフレームワークである CITYWALK を紹介した。
CITYWALKは、プログラム分析を通じてテスト中のプロジェクト内の依存性関係を包括的に理解することで、LCMを強化します。
さらに、CITYWALKはプロジェクトドキュメンテーションと経験的観察から派生したC++に関する言語固有の知識を取り入れており、LLM生成ユニットテストの正確性を大幅に改善している。
我々は,広く普及しているLCM GPT-4oを用いてCITYWALKを実装した。
実験の結果、CITYWALKは8つの人気のあるC++プロジェクトのコレクションにおいて、最先端のアプローチよりも優れています。
CITYWALKが高品質なC++単体テストの作成に有効であることを示す。
関連論文リスト
- A Systematic Approach for Assessing Large Language Models' Test Case Generation Capability [0.8287206589886879]
大規模言語モデル (LLM) を評価するために,制御フロー構造と可変利用構成 (GBCV) から生成したベンチマークを提案する。
基本的な制御フロー構造と変数使用量を活用することで、GBCVは、単純なプログラムから複雑なプログラムの範囲を作成する柔軟なフレームワークを提供する。
以上の結果から,GPT-4oは複雑なプログラム構造において優れた性能を示し,全てのモデルが単純な条件下で境界値を効果的に検出するが,算術計算では問題に直面することが示唆された。
論文 参考訳(メタデータ) (2025-02-05T03:51:44Z) - Enhancing LLM's Ability to Generate More Repository-Aware Unit Tests Through Precise Contextual Information Injection [4.367526927436771]
プロンプトエンジニアリングによって導かれる大規模言語モデル(LLM)は、幅広いタスクを扱う能力に注目を集めている。
LLMは、プロジェクトのグローバルな文脈に対する認識の欠如により、焦点メソッドや関数の単体テストを生成する際に幻覚を示す可能性がある。
我々は,レポジトリ対応の単体テストを生成するLLMの能力を向上するRATesterを提案する。
論文 参考訳(メタデータ) (2025-01-13T15:43:36Z) - 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) - Large-scale, Independent and Comprehensive study of the power of LLMs for test case generation [11.056044348209483]
クラスやメソッドなどのコードモジュールのバグを特定するのに不可欠なユニットテストは、時間的制約のため、開発者によって無視されることが多い。
GPTやMistralのようなLarge Language Models (LLM)は、テスト生成を含むソフトウェア工学における約束を示す。
論文 参考訳(メタデータ) (2024-06-28T20:38:41Z) - On the Evaluation of Large Language Models in Unit Test Generation [16.447000441006814]
単体テストは、ソフトウェアコンポーネントの正しさを検証するために、ソフトウェア開発において不可欠な活動である。
LLM(Large Language Models)の出現は、ユニットテスト生成を自動化するための新しい方向性を提供する。
論文 参考訳(メタデータ) (2024-06-26T08:57:03Z) - Automatic benchmarking of large multimodal models via iterative experiment programming [71.78089106671581]
本稿では,LMMの自動ベンチマークのための最初のフレームワークであるAPExを紹介する。
自然言語で表現された研究の質問に対して、APExは大きな言語モデル(LLM)と事前定義されたツールのライブラリを活用して、手元にあるモデルの一連の実験を生成する。
調査の現在の状況に基づいて、APExはどの実験を行うか、結果が結論を引き出すのに十分かどうかを選択する。
論文 参考訳(メタデータ) (2024-06-18T06:43:46Z) - Prompting Large Language Models to Tackle the Full Software Development Lifecycle: A Case Study [72.24266814625685]
DevEvalでソフトウェア開発ライフサイクル全体にわたって、大きな言語モデル(LLM)のパフォーマンスを調査します。
DevEvalは4つのプログラミング言語、複数のドメイン、高品質なデータ収集、各タスクに対して慎重に設計および検証されたメトリクスを備えている。
GPT-4を含む現在のLLMは、DevEvalで提示される課題を解決できないことが実証研究によって示されている。
論文 参考訳(メタデータ) (2024-03-13T15:13:44Z) - If LLM Is the Wizard, Then Code Is the Wand: A Survey on How Code
Empowers Large Language Models to Serve as Intelligent Agents [81.60906807941188]
大型言語モデル(LLM)は、自然言語と形式言語(コード)の組み合わせに基づいて訓練される
コードは、標準構文、論理一貫性、抽象化、モジュール性を備えた高レベルの目標を実行可能なステップに変換する。
論文 参考訳(メタデータ) (2024-01-01T16:51:20Z) - Self-Checker: Plug-and-Play Modules for Fact-Checking with Large Language Models [75.75038268227554]
Self-Checkerはファクトチェックを容易にするプラグインとプレイモジュールからなるフレームワークである。
このフレームワークは、低リソース環境でファクトチェックシステムを構築するための、高速で効率的な方法を提供する。
論文 参考訳(メタデータ) (2023-05-24T01:46:07Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。