論文の概要: An Empirical Evaluation of Using Large Language Models for Automated
Unit Test Generation
- arxiv url: http://arxiv.org/abs/2302.06527v3
- Date: Wed, 6 Sep 2023 16:47:07 GMT
- ステータス: 処理完了
- システム内更新日: 2023-09-07 19:36:15.514714
- Title: An Empirical Evaluation of Using Large Language Models for Automated
Unit Test Generation
- Title(参考訳): 大規模言語モデルを用いた自動単体テスト生成の実証評価
- Authors: Max Sch\"afer, Sarah Nadi, Aryaz Eghbali, Frank Tip
- Abstract要約: 本稿では,自動単体テスト生成における大規模言語モデルの有効性について,大規模な実証評価を行った。
これはJavaScript用のテスト生成ツールで、npmパッケージ内のすべてのAPI関数のユニットテストを自動的に生成します。
TestPilotの生成されたテストの92.8%は、既存のテストと50%以上の類似性を持っていない。
- 参考スコア(独自算出の注目度): 3.9762912548964864
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Unit tests play a key role in ensuring the correctness of software. However,
manually creating unit tests is a laborious task, motivating the need for
automation. Large Language Models (LLMs) have recently been applied to this
problem, utilizing additional training or few-shot learning on examples of
existing tests. This paper presents a large-scale empirical evaluation on the
effectiveness of LLMs for automated unit test generation without additional
training or manual effort, providing the LLM with the signature and
implementation of the function under test, along with usage examples extracted
from documentation. We also attempt to repair failed generated tests by
re-prompting the model with the failing test and error message. We implement
our approach in TestPilot, a test generation tool for JavaScript that
automatically generates unit tests for all API functions in an npm package. We
evaluate TestPilot using OpenAI's gpt3.5-turbo LLM on 25 npm packages with a
total of 1,684 API functions. The generated tests achieve a median statement
coverage of 70.2% and branch coverage of 52.8%, significantly improving on
Nessie, a recent feedback-directed JavaScript test generation technique, which
achieves only 51.3% statement coverage and 25.6% branch coverage. We also find
that 92.8% of TestPilot's generated tests have no more than 50% similarity with
existing tests (as measured by normalized edit distance), with none of them
being exact copies. Finally, we run TestPilot with two additional LLMs,
OpenAI's older code-cushman-002 LLM and the open LLM StarCoder. Overall, we
observed similar results with the former (68.2% median statement coverage), and
somewhat worse results with the latter (54.0% median statement coverage),
suggesting that the effectiveness of the approach is influenced by the size and
training set of the LLM, but does not fundamentally depend on the specific
model.
- Abstract(参考訳): ユニットテストはソフトウェアの正しさを保証する上で重要な役割を果たします。
しかし、手動でユニットテストを作成するのは面倒な作業であり、自動化の必要性を動機付けます。
大規模な言語モデル(llm)がこの問題に最近適用され、既存のテストの例で追加のトレーニングやわずかな学習が活用されている。
本稿では,自動単体テスト生成におけるLLMの有効性を,追加のトレーニングや手作業なしに大規模に評価し,LLMにテスト中の関数の署名と実装と,ドキュメントから抽出した使用例を提供する。
また、失敗したテストとエラーメッセージでモデルを再プロンプトすることで、失敗したテストの修復も試みました。
これはJavaScript用のテスト生成ツールで、npmパッケージ内のすべてのAPI関数のユニットテストを自動的に生成します。
合計1,684個のAPI関数を持つ25 npmパッケージ上で,OpenAIのgpt3.5-turbo LLMを用いてTestPilotを評価する。
生成したテストは、平均的なステートメントカバレッジ70.2%、ブランチカバレッジ52.8%を達成し、最近フィードバック指向のjavascriptテスト生成テクニックであるnessieで大幅に改善され、51.3%のステートメントカバレッジと25.6%のブランチカバレッジを達成した。
また、TestPilotの生成したテストの92.8%は、既存のテスト(正規化編集距離によって測定される)と50%以上の類似性がなく、いずれも正確なコピーではないことも判明した。
最後に、2つのLLM、OpenAIの古いCode-cushman-002 LLMとオープンなLLM StarCoderでTestPilotを実行します。
概して, 前者(68.2%), 後者(54.0%), やや悪い結果(54.0%)で同様の結果が得られ, LLMのサイズとトレーニングセットに影響されているが, 基本的には特定のモデルに依存していないことが示唆された。
関連論文リスト
- STAMP: Outlier-Aware Test-Time Adaptation with Stable Memory Replay [76.06127233986663]
テスト時間適応(TTA)は、トレーニングデータとテストデータの間の分散シフトに、未ラベルのデータのみを用いて対処することを目的としている。
本稿では,サンプル認識とオフリエ拒絶の両方を行う問題に注意を払っている。
本稿では,STAble Memory rePlay (STAMP) と呼ばれる新しい手法を提案する。
論文 参考訳(メタデータ) (2024-07-22T16:25:41Z) - CasModaTest: A Cascaded and Model-agnostic Self-directed Framework for Unit Test Generation [5.450831103980871]
CasModaTestは、カスケードされた、モデルに依存しない、エンドツーエンドのユニットテスト生成フレームワークである。
テストプレフィックスを生成し、オークルをテストし、それらの有効性をチェックするためにコンパイルまたは実行します。
論文 参考訳(メタデータ) (2024-06-22T05:52:39Z) - Are you still on track!? Catching LLM Task Drift with Activations [55.75645403965326]
大規模言語モデル(LLM)は、ユーザや他のソースからの入力を処理したり、タスクを編成したりするための検索拡張されたアプリケーションで日常的に使用される。
これにより、LDMがデータのみのソースからの命令を受け取り、作用するインジェクション攻撃を誘導する扉が開き、ユーザーの元の命令から逸脱する。
我々はこれをタスクドリフトと定義し、LCMのアクティベーションをスキャンして解析することでこれをキャッチすることを提案する。
このアプローチは、これらの攻撃に対してトレーニングを受けることなく、インジェクションやジェイルブレイク、悪意のある指示など、目に見えないタスクドメインに対して驚くほどうまく一般化することを示す。
論文 参考訳(メタデータ) (2024-06-02T16:53:21Z) - 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) - Automated Unit Test Improvement using Large Language Models at Meta [44.87533111512982]
本稿では,LLMを用いたMetaのTestGen-LLMツールについて述べる。
InstagramとFacebookプラットフォームのMetaテストアソンにおけるTestGen-LLMのデプロイについて説明する。
論文 参考訳(メタデータ) (2024-02-14T13:43:14Z) - 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) - AdaNPC: Exploring Non-Parametric Classifier for Test-Time Adaptation [64.9230895853942]
ドメインの一般化は、ターゲットのドメイン情報を活用することなく、任意に困難にすることができる。
この問題に対処するためにテスト時適応(TTA)手法が提案されている。
本研究では,テスト時間適応(AdaNPC)を行うためにNon-Parametricを採用する。
論文 参考訳(メタデータ) (2023-04-25T04:23:13Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。