論文の概要: Do LLMs generate test oracles that capture the actual or the expected program behaviour?
- arxiv url: http://arxiv.org/abs/2410.21136v1
- Date: Mon, 28 Oct 2024 15:37:06 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-10-29 12:16:25.524487
- Title: Do LLMs generate test oracles that capture the actual or the expected program behaviour?
- Title(参考訳): LLMは、実際のまたは期待されるプログラムの振る舞いをキャプチャするテストオラクルを生成するか?
- Authors: Michael Konstantinou, Renzo Degiovanni, Mike Papadakis,
- Abstract要約: 大きな言語モデル(LLM)は、開発者のようなコードやテストケースを生成するために、膨大な量のデータに基づいて訓練されています。
この調査には、開発者によって書かれ、自動生成されるテストケースと、24のオープンソースJavaリポジトリのオーラクルが含まれている。
LLMは正しいオーラクルを分類するよりもテストオーラクルを生成する方が優れており、コードが有意義なテスト名や変数名を含む場合、よりよいテストオーラクルを生成することができる。
- 参考スコア(独自算出の注目度): 7.772338538073763
- License:
- Abstract: Software testing is an essential part of the software development cycle to improve the code quality. Typically, a unit test consists of a test prefix and a test oracle which captures the developer's intended behaviour. A known limitation of traditional test generation techniques (e.g. Randoop and Evosuite) is that they produce test oracles that capture the actual program behaviour rather than the expected one. Recent approaches leverage Large Language Models (LLMs), trained on an enormous amount of data, to generate developer-like code and test cases. We investigate whether the LLM-generated test oracles capture the actual or expected software behaviour. We thus, conduct a controlled experiment to answer this question, by studying LLMs performance on two tasks, namely, test oracle classification and generation. The study includes developer-written and automatically generated test cases and oracles for 24 open-source Java repositories, and different well tested prompts. Our findings show that LLM-based test generation approaches are also prone on generating oracles that capture the actual program behaviour rather than the expected one. Moreover, LLMs are better at generating test oracles rather than classifying the correct ones, and can generate better test oracles when the code contains meaningful test or variable names. Finally, LLM-generated test oracles have higher fault detection potential than the Evosuite ones.
- Abstract(参考訳): ソフトウェアテストは、コード品質を改善するために、ソフトウェア開発サイクルの重要な部分です。
通常、ユニットテストはテストプレフィックスと、開発者の意図した振る舞いをキャプチャするテストオラクルで構成される。
従来のテスト生成テクニック(例えばRandoopやEvosuite)の制限として、期待されるものではなく、実際のプログラム動作をキャプチャするテストオラクルを生成することが知られている。
最近のアプローチでは、大量のデータに基づいてトレーニングされたLarge Language Models(LLM)を使用して、開発者ライクなコードとテストケースを生成する。
LLM生成したテストオラクルが実際のソフトウェア動作や期待されたソフトウェア動作をキャプチャするかどうかを検討する。
そこで我々は,LLMのパフォーマンスを2つのタスク,すなわちテストオラクル分類と生成で研究することで,この問題に対処するための制御実験を行った。
この調査には、開発者が記述し、自動生成するテストケースと、24のオープンソースJavaレポジトリのオーラクル、さまざまなテスト済みのプロンプトが含まれている。
以上の結果から, LLM を用いたテスト生成手法は, 期待するよりも実際のプログラム動作を捉えたオーラクルを生成する傾向が示唆された。
さらに、LCMは正しいオーラクルを分類するよりもテストオーラクルを生成する方が優れており、コードが有意義なテスト名や変数名を含む場合、よりよいオーラクルを生成することができる。
最後に、LLMが生成したオーラクルは、エボシュテのものよりも高い断層検出能力を有する。
関連論文リスト
- Generating executable oracles to check conformance of client code to requirements of JDK Javadocs using LLMs [21.06722050714324]
本稿では,広く使用されているJavaライブラリ,例えば java.lang や java.util パッケージのクライアントに対するテストオーラクルの自動化に焦点を当てる。
大規模な言語モデルを、テストオラクル自動化のフレームワークに関する洞察を具現化するための技術として使用しています。
論文 参考訳(メタデータ) (2024-11-04T04:24:25Z) - Multi-language Unit Test Generation using LLMs [6.259245181881262]
静的解析を組み込んだジェネリックパイプラインを記述し,コンパイル可能な高カバレッジテストケースの生成においてLCMをガイドする。
パイプラインをさまざまなプログラミング言語、特にJavaとPython、そして環境モックを必要とする複雑なソフトウェアに適用する方法を示します。
以上の結果から,静的解析によって導かれる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) - TESTEVAL: Benchmarking Large Language Models for Test Case Generation [15.343859279282848]
大規模言語モデル(LLM)を用いたテストケース生成のための新しいベンチマークであるTESTEVALを提案する。
オンラインプログラミングプラットフォームLeetCodeから210のPythonプログラムを収集し、全体的なカバレッジ、ターゲットライン/ブランチカバレッジ、ターゲットパスカバレッジという3つの異なるタスクを設計します。
特定のプログラム行/ブランチ/パスをカバーするテストケースを生成することは、現在のLLMでは依然として困難である。
論文 参考訳(メタデータ) (2024-06-06T22:07:50Z) - 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) - DevBench: A Comprehensive Benchmark for Software Development [72.24266814625685]
DevBenchは、ソフトウェア開発ライフサイクルのさまざまな段階にわたる大規模言語モデル(LLM)を評価するベンチマークである。
GPT-4-Turboを含む現在のLLMは、DevBench内での課題の解決に失敗している。
本研究は,LLMを現実のプログラミングアプリケーションに展開する上で,現実的な知見を提供するものである。
論文 参考訳(メタデータ) (2024-03-13T15:13:44Z) - Towards Automatic Generation of Amplified Regression Test Oracles [44.45138073080198]
回帰テストオラクルを増幅するためのテストオラクル導出手法を提案する。
このアプローチはテスト実行中にオブジェクトの状態を監視し、以前のバージョンと比較して、SUTの意図した振る舞いに関連する変更を検出する。
論文 参考訳(メタデータ) (2023-07-28T12:38:44Z) - ALGO: Synthesizing Algorithmic Programs with LLM-Generated Oracle
Verifiers [60.6418431624873]
大きな言語モデル(LLM)は、機能記述からコードを実装するのに優れているが、アルゴリズムの問題に悩まされている。
我々は,アルゴリズムプログラムを LLM 生成 Oracle で合成するフレームワーク ALGO を提案し,その生成をガイドし,その正確性を検証する。
実験の結果,ALGOを装着すると,Codexモデルよりも8倍,CodeTよりも2.6倍の1サブミッションパス率が得られることがわかった。
論文 参考訳(メタデータ) (2023-05-24T00:10:15Z) - 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) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。