論文の概要: Generating Exceptional Behavior Tests with Reasoning Augmented Large Language Models
- arxiv url: http://arxiv.org/abs/2405.14619v1
- Date: Thu, 23 May 2024 14:28:41 GMT
- ステータス: 処理完了
- システム内更新日: 2024-05-24 14:35:49.654794
- Title: Generating Exceptional Behavior Tests with Reasoning Augmented Large Language Models
- Title(参考訳): 拡張大言語モデルによる例外行動テストの生成
- Authors: Jiyang Zhang, Yu Liu, Pengyu Nie, Jessy Junyi Li, Milos Gligoric,
- Abstract要約: ソフトウェア開発者は例外的な振る舞いテスト(EBT)を書き、コードが不要なイベントを検出し、適切な例外を投げることをチェックする。
EBTを自動生成する最初のフレームワークであるEXLONGを提示する。
- 参考スコア(独自算出の注目度): 9.261592072092872
- 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がすでに受け入れられています。
関連論文リスト
- Language Models can Self-Lengthen to Generate Long Texts [74.96074422345806]
本稿では,Self-Lengthenというイノベーティブな反復学習フレームワークを紹介する。
補助的なデータやプロプライエタリなモデルを必要としない、大規模言語モデルの本質的な知識とスキルのみを活用する。
ベンチマークと人的評価の実験により、Self-Lengthenは長文生成において既存の手法よりも優れていることが示された。
論文 参考訳(メタデータ) (2024-10-31T13:47:10Z) - Multi-language Unit Test Generation using LLMs [6.259245181881262]
静的解析を組み込んだジェネリックパイプラインを記述し,コンパイル可能な高カバレッジテストケースの生成においてLCMをガイドする。
パイプラインをさまざまなプログラミング言語、特にJavaとPython、そして環境モックを必要とする複雑なソフトウェアに適用する方法を示します。
以上の結果から,静的解析によって導かれるLCMベースのテスト生成は,最新のテスト生成技術と競合し,さらに性能も向上することが示された。
論文 参考訳(メタデータ) (2024-09-04T21:46:18Z) - Chat-like Asserts Prediction with the Support of Large Language Model [34.140962210930624]
我々は,Pythonプロジェクトで有意義なアサート文を生成するために,Chatライクな実行ベースのアサート予測(tool)を導入する。
ツールはペルソナ、Chain-of-Thought、ワンショットの学習技術を利用して、迅速な設計を行い、LLMやPythonインタプリタと通信する。
評価の結果, 単一アサーション文生成では64.7%, 全体アサーション文生成では62%の精度が得られた。
論文 参考訳(メタデータ) (2024-07-31T08:27:03Z) - NExT: Teaching Large Language Models to Reason about Code Execution [50.93581376646064]
大規模言語モデル(LLM)のコードは通常、プログラムの表面テキスト形式に基づいて訓練される。
NExTは,プログラムの実行トレースを検査し,実行時の動作を判断する手法である。
論文 参考訳(メタデータ) (2024-04-23T01:46:32Z) - PyTester: Deep Reinforcement Learning for Text-to-Testcase Generation [20.441921569948562]
テスト駆動開発(TDD)は、実際のコードを書く前に要件に基づいてテストケースを書くことを義務付ける。
テストケースを書くことはTDDの中心ですが、時間がかかり、コストがかかり、開発者が悩まされることも少なくありません。
PyTesterは、テキストからテストケースを生成するアプローチで、正しい、実行可能な、完全な、効果的なテストケースを自動的に生成します。
論文 参考訳(メタデータ) (2024-01-15T10:21:58Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。