論文の概要: TestART: Improving LLM-based Unit Test via Co-evolution of Automated Generation and Repair Iteration
- arxiv url: http://arxiv.org/abs/2408.03095v3
- Date: Mon, 12 Aug 2024 08:27:56 GMT
- ステータス: 処理完了
- システム内更新日: 2024-08-13 20:04:01.785779
- Title: TestART: Improving LLM-based Unit Test via Co-evolution of Automated Generation and Repair Iteration
- Title(参考訳): TestART: 自動生成と修復の同時進化によるLCMベースのユニットテストの改善
- Authors: Siqi Gu, Chunrong Fang, Quanjun Zhang, Fangyuan Tian, Jianyi Zhou, Zhenyu Chen,
- Abstract要約: 単体テストは個々のプログラムユニットのバグを検出するのに不可欠だが、時間と労力を消費する。
大規模言語モデル(LLM)は、顕著な推論と生成能力を示している。
本稿では,新しい単体テスト生成法であるTestARTを提案する。
- 参考スコア(独自算出の注目度): 8.22619177301814
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Unit test is crucial for detecting bugs in individual program units but consumes time and effort. The existing automated unit test generation methods are mainly based on search-based software testing (SBST) and language models to liberate developers. Recently, large language models (LLMs) have demonstrated remarkable reasoning and generation capabilities. However, several problems limit their ability to generate high-quality test cases: (1) LLMs may generate invalid test cases under insufficient context, resulting in compilation errors; (2) Lack of test and coverage feedback information may cause runtime errors and low coverage rates. (3) The repetitive suppression problem causes LLMs to get stuck into the repetition loop of self-repair or re-generation attempts. In this paper, we propose TestART, a novel unit test generation method that leverages the strengths of LLMs while overcoming the limitations mentioned. TestART improves LLM-based unit test via co-evolution of automated generation and repair iteration. TestART leverages the template-based repair technique to fix bugs in LLM-generated test cases, using prompt injection to guide the next-step automated generation and avoid repetition suppression. Furthermore, TestART extracts coverage information from the passed test cases and utilizes it as testing feedback to enhance the sufficiency of the final test case. This synergy between generation and repair elevates the quality, effectiveness, and readability of the produced test cases significantly beyond previous methods. In comparative experiments, the pass rate of TestART-generated test cases is 78.55%, which is approximately 18% higher than both the ChatGPT-4.0 model and the same ChatGPT-3.5-based method ChatUniTest. It also achieves an impressive line coverage rate of 90.96% on the focal methods that passed the test, exceeding EvoSuite by 3.4%.
- Abstract(参考訳): 単体テストは個々のプログラムユニットのバグを検出するのに不可欠だが、時間と労力を消費する。
既存の自動単体テスト生成方法は、主に開発者を解放するための検索ベースのソフトウェアテスト(SBST)と言語モデルに基づいている。
近年,大規模言語モデル (LLM) が顕著な推論と生成能力を示している。
しかしながら, 1) LLMは, 文脈が不十分な場合に, 不正なテストケースを生成でき, コンパイルエラーが発生し, (2) テストやカバレッジのフィードバック情報が不足すると, 実行時のエラーやカバレッジ率の低下が発生する。
(3) 反復抑制問題により, LLMは自己再生や再生の繰り返しループに陥る。
本稿では,LLMの強みを生かした新しい単体テスト生成手法であるTestARTを提案する。
TestARTは、自動生成と修復の反復の共進化を通じて、LLMベースのユニットテストを改善している。
TestARTはテンプレートベースの修復技術を活用して、LCM生成のテストケースのバグを修正し、プロンプトインジェクションを使用して、次のステップの自動生成をガイドし、繰り返しの抑制を回避する。
さらに、TestARTはパスしたテストケースからカバレッジ情報を抽出し、テストフィードバックとして利用して最終テストケースの効率を高める。
この生成と修復の相乗効果は、生成したテストケースの品質、有効性、可読性を高める。
比較実験では、TestARTの生成したテストケースのパスレートは78.55%であり、ChatGPT-4.0モデルとChatGPT-3.5ベースのChatUniTestの両方よりも約18%高い。
また、テストに合格した焦点メソッドの90.96%のラインカバレッジ率も達成し、EvoSuiteを3.4%上回った。
関連論文リスト
- Context-Aware Testing: A New Paradigm for Model Testing with Large Language Models [49.06068319380296]
我々は,コンテキストを帰納バイアスとして用いて意味のあるモデル障害を探索するコンテキスト認識テスト(CAT)を導入する。
最初のCATシステムSMART Testingをインスタンス化し、大きな言語モデルを用いて、関連性があり、起こりうる失敗を仮説化します。
論文 参考訳(メタデータ) (2024-10-31T15:06:16Z) - Test smells in LLM-Generated Unit Tests [11.517293765116307]
本研究では,大規模言語モデルの生成した単体テストスイートにおけるテストの匂いの拡散について検討する。
5つのプロンプトエンジニアリング技術で4つのモデルで生成された20,500 LLM生成テストスイートのベンチマークを解析した。
我々は,LLM生成テストスイートと筆記テストスイートの両方において,種々のテスト匂いの出現頻度と発生頻度を同定し,解析する。
論文 参考訳(メタデータ) (2024-10-14T15:35:44Z) - Test Oracle Automation in the era of LLMs [52.69509240442899]
大規模言語モデル(LLM)は、多様なソフトウェアテストタスクに取り組むのに顕著な能力を示した。
本研究の目的は, 各種のオラクル生成時に生じる課題とともに, LLMs によるオラクルの自動化の可能性について検討することである。
論文 参考訳(メタデータ) (2024-05-21T13:19:10Z) - Large Language Models as Test Case Generators: Performance Evaluation and Enhancement [3.5398126682962587]
大規模言語モデルが高品質なテストケースをいかに生み出すかを検討する。
本稿では,テストインプットとテストアウトプットの生成を分離するemphTestChainというマルチエージェントフレームワークを提案する。
以上の結果から,TestChainはベースラインのマージンを大きく上回っていることが示唆された。
論文 参考訳(メタデータ) (2024-04-20T10:27:01Z) - GPT-HateCheck: Can LLMs Write Better Functional Tests for Hate Speech Detection? [50.53312866647302]
HateCheckは、合成データに対してきめ細かいモデル機能をテストするスイートである。
GPT-HateCheckは,スクラッチからより多彩で現実的な機能テストを生成するフレームワークである。
クラウドソースのアノテーションは、生成されたテストケースが高品質であることを示しています。
論文 参考訳(メタデータ) (2024-02-23T10:02:01Z) - Observation-based unit test generation at Meta [52.4716552057909]
TestGenは、アプリケーション実行中に観察された複雑なオブジェクトのシリアライズされた観察から作られたユニットテストを自動的に生成する。
TestGenは518のテストを本番環境に投入し、継続的統合で9,617,349回実行され、5,702の障害が見つかった。
評価の結果,信頼性の高い4,361のエンドツーエンドテストから,少なくとも86%のクラスでテストを生成することができた。
論文 参考訳(メタデータ) (2024-02-09T00:34:39Z) - 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) - Effective Test Generation Using Pre-trained Large Language Models and
Mutation Testing [13.743062498008555]
大規模言語モデル(LLM)が生成するテストケースの有効性を,バグの発見の観点から改善するための MuTAP を導入する。
MuTAPは、プログラム・アンダー・テスト(PUT)の自然言語記述がない場合に有効なテストケースを生成することができる
提案手法は, 最大28%の人書きコードスニペットを検出できることを示す。
論文 参考訳(メタデータ) (2023-08-31T08:48:31Z) - Towards Automatic Generation of Amplified Regression Test Oracles [44.45138073080198]
回帰テストオラクルを増幅するためのテストオラクル導出手法を提案する。
このアプローチはテスト実行中にオブジェクトの状態を監視し、以前のバージョンと比較して、SUTの意図した振る舞いに関連する変更を検出する。
論文 参考訳(メタデータ) (2023-07-28T12:38:44Z) - No More Manual Tests? Evaluating and Improving ChatGPT for Unit Test Generation [11.009117714870527]
単体テストは、機能的に分離されたプログラムユニットのバグを検出するのに不可欠である。
最近の研究は、ユニットテスト生成における大きな言語モデル(LLM)の可能性を示している。
ChatGPTがユニット・テスト・ジェネレーションでどの程度有効かは不明だ。
論文 参考訳(メタデータ) (2023-05-07T07:17:08Z) - CodeT: Code Generation with Generated Tests [49.622590050797236]
テストケースを自動的に生成するための事前学習言語モデルについて検討する。
CodeTは生成されたテストケースを使ってコードソリューションを実行し、次に最良のソリューションを選択します。
我々は,HumanEvalとMBPPのベンチマークを用いて,5種類の事前学習モデル上でCodeTを評価する。
論文 参考訳(メタデータ) (2022-07-21T10:18:37Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。