論文の概要: Multi-language Unit Test Generation using LLMs
- arxiv url: http://arxiv.org/abs/2409.03093v1
- Date: Wed, 4 Sep 2024 21:46:18 GMT
- ステータス: 処理完了
- システム内更新日: 2024-09-06 22:55:47.830682
- Title: Multi-language Unit Test Generation using LLMs
- Title(参考訳): LLMを用いた多言語単体テスト生成
- Authors: Rangeet Pan, Myeongsoo Kim, Rahul Krishna, Raju Pavuluri, Saurabh Sinha,
- Abstract要約: 静的解析を組み込んだジェネリックパイプラインを記述し,コンパイル可能な高カバレッジテストケースの生成においてLCMをガイドする。
パイプラインをさまざまなプログラミング言語、特にJavaとPython、そして環境モックを必要とする複雑なソフトウェアに適用する方法を示します。
以上の結果から,静的解析によって導かれるLCMベースのテスト生成は,最新のテスト生成技術と競合し,さらに性能も向上することが示された。
- 参考スコア(独自算出の注目度): 6.259245181881262
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Implementing automated unit tests is an important but time consuming activity in software development. Developers dedicate substantial time to writing tests for validating an application and preventing regressions. To support developers in this task, software engineering research over the past few decades has developed many techniques for automating unit test generation. However, despite this effort, usable tools exist for very few programming languages -- mainly Java, C, and C# and, more recently, for Python. Moreover, studies have found that automatically generated tests suffer poor readability and often do not resemble developer-written tests. In this work, we present a rigorous investigation of how large language models (LLMs) can help bridge the gap. We describe a generic pipeline that incorporates static analysis to guide LLMs in generating compilable and high-coverage test cases. We illustrate how the pipeline can be applied to different programming languages, specifically Java and Python, and to complex software requiring environment mocking. We conducted a through empirical study to assess the quality of the generated tests in terms of coverage, mutation score, and test naturalness -- evaluating them on standard as well as enterprise Java applications and a large Python benchmark. Our results demonstrate that LLM-based test generation, when guided by static analysis, can be competitive with, and even outperform, state-of-the-art test-generation techniques in coverage achieved while also producing considerably more natural test cases that developers find easy to read and understand. We also present the results of a user study, conducted with 161 professional developers, that highlights the naturalness characteristics of the tests generated by our approach.
- Abstract(参考訳): 自動化された単体テストを実装することは重要なことですが、ソフトウェア開発では時間がかかります。
開発者はアプリケーションのバリデーションとレグレッションの防止のためにテストを書くことにかなりの時間を費やしている。
このタスクで開発者を支援するために、過去数十年にわたるソフトウェア工学の研究は、ユニットテスト生成を自動化するための多くの技術を開発した。
しかし、この努力にもかかわらず、主にJava、C、C#、さらに最近ではPythonなど、非常に少数のプログラミング言語で使えるツールが存在する。
さらに、自動生成されたテストは可読性に乏しく、しばしば開発者が書いたテストに似ていないことが研究で判明した。
本研究では,大きな言語モデル (LLM) がギャップを埋める上でどのように役立つか,厳密な調査を行う。
静的解析を組み込んだジェネリックパイプラインを記述し,コンパイル可能な高カバレッジテストケースの生成においてLCMをガイドする。
パイプラインをさまざまなプログラミング言語、特にJavaとPython、そして環境モックを必要とする複雑なソフトウェアに適用する方法を説明します。
我々は、生成したテストの品質を、カバレッジ、突然変異スコア、テストの自然性の観点から評価するために、徹底的な実証的研究を行い、それらを、エンタープライズJavaアプリケーションや大規模なPythonベンチマークと同様に標準で評価した。
以上の結果から,静的解析によって導かれるLCMベースのテスト生成は,最新のテスト生成技術と競合し,さらに優れた性能を発揮するとともに,開発者が読みやすく理解しやすいような,より自然なテストケースを生成できることが示唆された。
また,161人のプロ開発者が実施したユーザスタディの結果を報告する。
関連論文リスト
- Do LLMs generate test oracles that capture the actual or the expected program behaviour? [7.772338538073763]
大きな言語モデル(LLM)は、開発者のようなコードやテストケースを生成するために、膨大な量のデータに基づいて訓練されています。
この調査には、開発者によって書かれ、自動生成されるテストケースと、24のオープンソースJavaリポジトリのオーラクルが含まれている。
LLMは正しいオーラクルを分類するよりもテストオーラクルを生成する方が優れており、コードが有意義なテスト名や変数名を含む場合、よりよいテストオーラクルを生成することができる。
論文 参考訳(メタデータ) (2024-10-28T15:37:06Z) - Leveraging Large Language Models for Enhancing the Understandability of Generated Unit Tests [4.574205608859157]
我々は,検索ベースのソフトウェアテストと大規模言語モデルを組み合わせたUTGenを導入し,自動生成テストケースの理解性を向上する。
UTGenテストケースで課題に取り組む参加者は、最大33%のバグを修正し、ベースラインテストケースと比較して最大20%の時間を使用できます。
論文 参考訳(メタデータ) (2024-08-21T15:35:34Z) - A System for Automated Unit Test Generation Using Large Language Models and Assessment of Generated Test Suites [1.4563527353943984]
大規模言語モデル(LLM)はソフトウェア開発の様々な側面に適用されている。
Javaプロジェクトのテストスイートを生成する自動化システムであるAgoneTestを紹介します。
論文 参考訳(メタデータ) (2024-08-14T23:02:16Z) - Harnessing the Power of LLMs: Automating Unit Test Generation for High-Performance Computing [7.3166218350585135]
ユニットテストは、品質を保証するために、ソフトウェア工学において不可欠です。
並列処理や高性能計算ソフトウェア、特に科学応用では広く使われていない。
本稿では,このようなソフトウェアを対象としたユニットテストの自動生成手法を提案する。
論文 参考訳(メタデータ) (2024-07-06T22:45:55Z) - Automatic benchmarking of large multimodal models via iterative experiment programming [71.78089106671581]
本稿では,LMMの自動ベンチマークのための最初のフレームワークであるAPExを紹介する。
自然言語で表現された研究の質問に対して、APExは大きな言語モデル(LLM)と事前定義されたツールのライブラリを活用して、手元にあるモデルの一連の実験を生成する。
調査の現在の状況に基づいて、APExはどの実験を行うか、結果が結論を引き出すのに十分かどうかを選択する。
論文 参考訳(メタデータ) (2024-06-18T06:43:46Z) - TESTEVAL: Benchmarking Large Language Models for Test Case Generation [15.343859279282848]
大規模言語モデル(LLM)を用いたテストケース生成のための新しいベンチマークであるTESTEVALを提案する。
オンラインプログラミングプラットフォームLeetCodeから210のPythonプログラムを収集し、全体的なカバレッジ、ターゲットライン/ブランチカバレッジ、ターゲットパスカバレッジという3つの異なるタスクを設計します。
特定のプログラム行/ブランチ/パスをカバーするテストケースを生成することは、現在のLLMでは依然として困難である。
論文 参考訳(メタデータ) (2024-06-06T22:07:50Z) - DevBench: A Comprehensive Benchmark for Software Development [72.24266814625685]
DevBenchは、ソフトウェア開発ライフサイクルのさまざまな段階にわたる大規模言語モデル(LLM)を評価するベンチマークである。
GPT-4-Turboを含む現在のLLMは、DevBench内での課題の解決に失敗している。
本研究は,LLMを現実のプログラミングアプリケーションに展開する上で,現実的な知見を提供するものである。
論文 参考訳(メタデータ) (2024-03-13T15:13:44Z) - Generative Judge for Evaluating Alignment [84.09815387884753]
本稿では,これらの課題に対処するために,13Bパラメータを持つ生成判断器Auto-Jを提案する。
我々のモデルは,大規模な実環境シナリオ下でのユーザクエリとLLM生成応答に基づいて訓練されている。
実験的に、Auto-Jはオープンソースモデルとクローズドソースモデルの両方を含む、強力なライバルのシリーズを上回っている。
論文 参考訳(メタデータ) (2023-10-09T07:27: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) - Measuring Coding Challenge Competence With APPS [54.22600767666257]
コード生成のベンチマークであるAPPSを紹介する。
私たちのベンチマークには1万の問題が含まれています。
GPT-Neoのような最近のモデルでは、導入問題のテストケースの約15%をパスできる。
論文 参考訳(メタデータ) (2021-05-20T17:58:42Z) - Beyond Accuracy: Behavioral Testing of NLP models with CheckList [66.42971817954806]
CheckList は NLP モデルをテストするためのタスクに依存しない方法論である。
CheckListには、包括的なテストのアイデアを促進する一般的な言語機能とテストタイプのマトリックスが含まれている。
ユーザスタディでは、CheckListのNLP実践者が2倍の数のテストを作成し、それのないユーザの約3倍のバグを発見しました。
論文 参考訳(メタデータ) (2020-05-08T15:48:31Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。