論文の概要: Generating Exceptional Behavior Tests with Reasoning Augmented Large Language Models
- arxiv url: http://arxiv.org/abs/2405.14619v2
- Date: Fri, 24 May 2024 14:17:11 GMT
- ステータス: 処理完了
- システム内更新日: 2024-05-27 12:41:46.110423
- Title: Generating Exceptional Behavior Tests with Reasoning Augmented Large Language Models
- Title(参考訳): 拡張大言語モデルによる例外行動テストの生成
- Authors: Jiyang Zhang, Yu Liu, Pengyu Nie, Junyi Jessy Li, Milos Gligoric,
- Abstract要約: ExLongは、例外的な振る舞いテストを自動的に生成するフレームワークである。
これは、スローステートメントにつながるトレース、スローステートメントを保護する条件式、例外的でない振る舞いテストに関する推論を埋め込んでいる。
我々はexLongとテスト生成のための最先端モデル(CAT-LM)と最強基礎モデル(GPT3.5)を比較した。
- 参考スコア(独自算出の注目度): 41.145231237535356
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Many popular programming languages, including C#, Java, and Python, support exceptions. Exceptions are thrown during program execution if an unwanted event happens, e.g., a method is invoked with an illegal argument value. Software developers write exceptional behavior tests (EBTs) to check that their code detects unwanted events and throws appropriate exceptions. Prior research studies have shown the importance of EBTs, but those studies also highlighted that developers put most of their efforts on "happy paths", e.g., paths without unwanted events. To help developers fill the gap, we present the first framework, dubbed exLong, that automatically generates EBTs. exLong is a large language model instruction-tuned from CodeLlama and embeds reasoning about traces that lead to throw statements, conditional expressions that guard throw statements, and non-exceptional behavior tests that execute similar traces. We compare exLong with the state-of-the-art models for test generation (CAT-LM) and one of the strongest foundation models (GPT3.5), as well as with analysis-based tools for test generation (Randoop and EvoSuite). Our results show that exLong outperforms existing models and tools. Furthermore, we contributed several pull requests to open-source projects and 23 EBTs generated by exLong were already accepted.
- Abstract(参考訳): C#、Java、Pythonを含む多くの人気のあるプログラミング言語は例外をサポートしている。
不要なイベントが発生した場合、例えば不正な引数値でメソッドが呼び出されると、プログラム実行中に例外がスローされる。
ソフトウェア開発者は例外的な振る舞いテスト(EBT)を書き、コードが不要なイベントを検出し、適切な例外を投げることをチェックする。
以前の研究では、EBTの重要性が示されていたが、これらの研究は、開発者が望ましくないイベントのないパスなど、"幸せなパス"に多くの努力を注いでいることも強調した。
このギャップを埋めるために、私たちはexLongと呼ばれるEBTを自動生成する最初のフレームワークを提示します。
exLongは、CodeLlamaからチューニングされた大きな言語モデルで、スローステートメントにつながるトレース、スローステートメントを保護する条件式、同様のトレースを実行する例外的でない動作テストに関する推論を埋め込んでいる。
我々はexLongをテスト生成のための最先端モデル(CAT-LM)と最強基盤モデル(GPT3.5)、およびテスト生成のための分析ツール(RandoopとEvoSuite)と比較した。
この結果、exLongは既存のモデルやツールよりも優れています。
さらに、オープンソースプロジェクトにいくつかのプルリクエストを提供し、exLongが生成した23のEBTはすでに受け入れられています。
関連論文リスト
- NExT: Teaching Large Language Models to Reason about Code Execution [50.93581376646064]
大規模言語モデル(LLM)のコードは通常、プログラムの表面テキスト形式に基づいて訓練される。
NExTは,プログラムの実行トレースを検査し,実行時の動作を判断する手法である。
論文 参考訳(メタデータ) (2024-04-23T01:46:32Z) - TDD Without Tears: Towards Test Case Generation from Requirements
through Deep Reinforcement Learning [22.331330777536046]
テスト駆動開発(TDD)は、実際のコードを書く前に要件に基づいてテストケースを書くことを義務付ける。
テストケースを書くことはTDDの中心ですが、時間がかかり、コストがかかり、開発者が悩まされることも少なくありません。
PyTesterは、テキストからテストケースを生成するアプローチで、正しい、実行可能な、完全な、効果的なテストケースを自動的に生成します。
論文 参考訳(メタデータ) (2024-01-15T10:21:58Z) - Compiler Testing With Relaxed Memory Models [0.0]
並列プログラムのためのT'el'echatコンパイラテストツールを提案する。
T'el'echatは並列C/C++プログラムをコンパイルし、ソースとコンパイルされたプログラムの振る舞いを比較する。
論文 参考訳(メタデータ) (2023-10-18T21:24:26Z) - Automatic Generation of Test Cases based on Bug Reports: a Feasibility
Study with Large Language Models [4.318319522015101]
既存のアプローチは、単純なテスト(例えば単体テスト)や正確な仕様を必要とするテストケースを生成する。
ほとんどのテスト手順は、テストスイートを形成するために人間が書いたテストケースに依存しています。
大規模言語モデル(LLM)を活用し,バグレポートを入力として利用することにより,この生成の実現可能性を検討する。
論文 参考訳(メタデータ) (2023-10-10T05:30:12Z) - Understanding prompt engineering may not require rethinking
generalization [56.38207873589642]
言語モデルによって与えられるPAC-Bayesと組み合わさったプロンプトの離散的性質は、文献の標準によって非常に厳密な一般化境界をもたらすことを示す。
この研究は、プロンプトエンジニアリングの広範な実践を正当化する可能性がある。
論文 参考訳(メタデータ) (2023-10-06T00:52:48Z) - CAT-LM: Training Language Models on Aligned Code And Tests [19.526181671936243]
テストはソフトウェア開発プロセスにおいて不可欠な部分だ。しかし、テストを書くのに時間がかかり、しばしば無視される。
我々は270億のパラメータを持つGPTスタイルの言語モデルであるAligned Code And Tests Language Model (CAT-LM)を提案する。
論文 参考訳(メタデータ) (2023-10-02T19:52:22Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Teaching Large Language Models to Self-Debug [62.424077000154945]
大規模言語モデル(LLM)は、コード生成において素晴らしいパフォーマンスを達成した。
本稿では,大規模言語モデルで予測プログラムを数発のデモでデバッグする自己デバッグを提案する。
論文 参考訳(メタデータ) (2023-04-11T10:43:43Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。