論文の概要: TestART: Improving LLM-based Unit Test via Co-evolution of Automated Generation and Repair Iteration
- arxiv url: http://arxiv.org/abs/2408.03095v1
- Date: Tue, 6 Aug 2024 10:52:41 GMT
- ステータス: 処理完了
- システム内更新日: 2024-08-07 14:17:45.604937
- 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, Zhenyu Chen,
- Abstract要約: 単体テストは個々のプログラムユニットのバグを検出するのに不可欠だが、時間と労力を消費する。
大規模言語モデル(LLM)は、顕著な推論と生成能力を示している。
本稿では,新しい単体テスト生成法であるTestARTを提案する。
- 参考スコア(独自算出の注目度): 8.716602951904008
- 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%上回った。
関連論文リスト
- Benchmarking Uncertainty Quantification Methods for Large Language Models with LM-Polygraph [85.51252685938564]
不確実性定量化(UQ)は、機械学習(ML)に依存するアプリケーションの重要なコンポーネントとして、ますます認識されつつある。
他のMLモデルと同様に、大きな言語モデル(LLM)は、クレームを作成することによって誤った予測をする傾向があり、あるいは与えられた入力に対して単に低品質の出力を生成する。
本稿では,最先端のUQベースラインの集合を実装した新しいベンチマークを提案し,新しいテクニックを制御可能かつ一貫した評価を行う環境を提供する。
論文 参考訳(メタデータ) (2024-06-21T20:06:31Z) - Large Language Models as Test Case Generators: Performance Evaluation and Enhancement [3.5398126682962587]
大規模言語モデルが高品質なテストケースをいかに生み出すかを検討する。
本稿では,テストインプットとテストアウトプットの生成を分離するemphTestChainというマルチエージェントフレームワークを提案する。
以上の結果から,TestChainはベースラインのマージンを大きく上回っていることが示唆された。
論文 参考訳(メタデータ) (2024-04-20T10:27:01Z) - 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) - 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) - SUPERNOVA: Automating Test Selection and Defect Prevention in AAA Video
Games Using Risk Based Testing and Machine Learning [62.997667081978825]
従来の手法では、成長するソフトウェアシステムではスケールできないため、ビデオゲームのテストはますます難しいタスクになります。
自動化ハブとして機能しながら,テスト選択と欠陥防止を行うシステム SUPERNOVA を提案する。
この直接的な影響は、未公表のスポーツゲームタイトルの55%以上のテスト時間を減らすことが観察されている。
論文 参考訳(メタデータ) (2022-03-10T00:47:46Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。