論文の概要: Can Large Language Models Write Good Property-Based Tests?
- arxiv url: http://arxiv.org/abs/2307.04346v2
- Date: Mon, 22 Jul 2024 01:28:38 GMT
- ステータス: 処理完了
- システム内更新日: 2024-07-24 05:46:42.608115
- Title: Can Large Language Models Write Good Property-Based Tests?
- Title(参考訳): 大規模言語モデルは優れたプロパティベースのテストを書くことができるか?
- Authors: Vasudev Vikram, Caroline Lemieux, Joshua Sunshine, Rohan Padhye,
- Abstract要約: プロパティベースのテスト(PBT)は、現実世界のソフトウェアではいまだにあまり使われていない。
2つのプロンプト手法を用いて,近代言語モデルを用いてPSTを自動的に合成する。
最適なモデルとプロンプトアプローチにより,有効かつ健全なPBTを平均2.4サンプルで合成できることが判明した。
- 参考スコア(独自算出の注目度): 5.671039991090038
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Property-based testing (PBT), while an established technique in the software testing research community, is still relatively underused in real-world software. Pain points in writing property-based tests include implementing diverse random input generators and thinking of meaningful properties to test. Developers, however, are more amenable to writing documentation; plenty of library API documentation is available and can be used as natural language specifications for PBTs. As large language models (LLMs) have recently shown promise in a variety of coding tasks, we investigate using modern LLMs to automatically synthesize PBTs using two prompting techniques. A key challenge is to rigorously evaluate the LLM-synthesized PBTs. We propose a methodology to do so considering several properties of the generated tests: (1) validity, (2) soundness, and (3) property coverage, a novel metric that measures the ability of the PBT to detect property violations through generation of property mutants. In our evaluation on 40 Python library API methods across three models (GPT-4, Gemini-1.5-Pro, Claude-3-Opus), we find that with the best model and prompting approach, a valid and sound PBT can be synthesized in 2.4 samples on average. We additionally find that our metric for determining soundness of a PBT is aligned with human judgment of property assertions, achieving a precision of 100% and recall of 97%. Finally, we evaluate the property coverage of LLMs across all API methods and find that the best model (GPT-4) is able to automatically synthesize correct PBTs for 21% of properties extractable from API documentation.
- Abstract(参考訳): PBT(Property-based Testing)は、ソフトウェアテスティング研究コミュニティで確立された技術であるが、現実世界のソフトウェアでは、いまだにあまり使われていない。
プロパティベースのテストを書く際のペインポイントは、多様なランダムな入力ジェネレータの実装と、テストする意味のあるプロパティの思考である。
多数のライブラリAPIドキュメンテーションが利用可能であり、PBTの自然言語仕様として使用することができる。
大規模言語モデル(LLM)は,近年,様々なコーディングタスクにおいて有望であることが示されている。
鍵となる課題は、LPM合成PSTを厳格に評価することである。
本研究では,(1)有効性,(2)健全性,(3)特性カバレッジを考慮に入れた手法を提案する。
3つのモデル(GPT-4, Gemini-1.5-Pro, Claude-3-Opus)にまたがる40のPythonライブラリAPIの評価において, 最適モデルと迅速なアプローチにより, 平均2.4サンプルで有効かつ健全なPBTを合成できることが判明した。
さらに,PBTの音響性を決定する基準は,人間による特性判断と一致し,100%の精度と97%のリコールを達成できることがわかった。
最後に、全てのAPIメソッドにわたるLCMのプロパティカバレッジを評価し、APIドキュメントから抽出可能なプロパティの21%に対して、最良のモデル(GPT-4)が自動的に正しいPBTを合成できることを見出した。
関連論文リスト
- KAT: Dependency-aware Automated API Testing with Large Language Models [1.7264233311359707]
KAT(Katalon API Testing)は、APIを検証するためのテストケースを自律的に生成する、AI駆動の新たなアプローチである。
実世界の12のサービスを用いたKATの評価は、検証カバレッジを改善し、文書化されていないステータスコードを検出し、これらのサービスの偽陽性を低減できることを示している。
論文 参考訳(メタデータ) (2024-07-14T14:48:18Z) - DLLens: Testing Deep Learning Libraries via LLM-aided Synthesis [8.779035160734523]
テストは、ディープラーニング(DL)ライブラリの品質を保証するための主要なアプローチである。
既存のテスト技術では、テストオラクルの構築を緩和するために差分テストを採用するのが一般的である。
本稿では,DLライブラリテストのための新しい差分試験手法であるシーレンスを紹介する。
論文 参考訳(メタデータ) (2024-06-12T07:06:38Z) - TDD Without Tears: Towards Test Case Generation from Requirements
through Deep Reinforcement Learning [22.331330777536046]
テスト駆動開発(TDD)は、実際のコードを書く前に要件に基づいてテストケースを書くことを義務付ける。
テストケースを書くことはTDDの中心ですが、時間がかかり、コストがかかり、開発者が悩まされることも少なくありません。
PyTesterは、テキストからテストケースを生成するアプローチで、正しい、実行可能な、完全な、効果的なテストケースを自動的に生成します。
論文 参考訳(メタデータ) (2024-01-15T10:21:58Z) - Leveraging Large Language Models to Improve REST API Testing [51.284096009803406]
RESTGPTはAPI仕様を入力として、機械解釈可能なルールを抽出し、仕様内の自然言語記述からサンプルパラメータ値を生成する。
評価の結果、RESTGPTはルール抽出と値生成の両方において既存の技術よりも優れています。
論文 参考訳(メタデータ) (2023-12-01T19:53:23Z) - Extended Paper: API-driven Program Synthesis for Testing Static Typing
Implementations [11.300829269111627]
本稿では,API駆動型プログラム合成の概念に基づいて静的型付けの実装をテストする新しい手法を提案する。
このアイデアは、既存のソフトウェアライブラリから派生したアプリケーションプログラミングインタフェース(API)を活用して組み合わせることで、型集約型だが小さく、十分に型付けされたプログラムを合成することである。
論文 参考訳(メタデータ) (2023-11-08T08:32:40Z) - Zero-Shot Detection of Machine-Generated Codes [83.0342513054389]
本研究は,LLMの生成したコードを検出するためのトレーニング不要な手法を提案する。
既存のトレーニングベースまたはゼロショットテキスト検出装置は、コード検出に効果がないことがわかった。
本手法は,リビジョン攻撃に対する堅牢性を示し,Javaコードによく適応する。
論文 参考訳(メタデータ) (2023-10-08T10:08:21Z) - LLMDet: A Third Party Large Language Models Generated Text Detection
Tool [119.0952092533317]
大規模言語モデル(LLM)は、高品質な人間によるテキストに非常に近い。
既存の検出ツールは、機械が生成したテキストと人間によるテキストしか区別できない。
本稿では,モデル固有,セキュア,効率的,拡張可能な検出ツールであるLLMDetを提案する。
論文 参考訳(メタデータ) (2023-05-24T10:45:16Z) - LeTI: Learning to Generate from Textual Interactions [60.425769582343506]
本稿では,テキストインタラクション(LETI)から学習するLMの可能性を,バイナリラベルによる正当性をチェックするだけでなく,テキストフィードバックを通じて出力中のエラーをピンポイントし,説明する。
私たちの焦点はコード生成タスクであり、そこではモデルが自然言語命令に基づいてコードを生成する。
LETIは、目的のLMを用いて、自然言語命令、LM生成プログラム、テキストフィードバックの結合に基づいて、モデルを反復的に微調整する。
論文 参考訳(メタデータ) (2023-05-17T15:53:31Z) - DetectGPT: Zero-Shot Machine-Generated Text Detection using Probability
Curvature [143.5381108333212]
大規模な言語モデルからサンプリングされたテキストは、モデルのログ確率関数の負の曲率領域を占有する傾向にあることを示す。
次に、与えられたLLMから通路が生成されるかどうかを判断するための新しい曲率ベースの基準を定義する。
我々は、モデルサンプル検出のための既存のゼロショット法よりもディテクターGPTの方が識別性が高いことを発見した。
論文 参考訳(メタデータ) (2023-01-26T18:44:06Z) - DeeProb-kit: a Python Library for Deep Probabilistic Modelling [0.0]
DeeProb-kitはPythonで書かれた統一ライブラリで、DPM(Deep Probabilistic Model)のコレクションで構成されている。
効率的に実装された学習技術、推論ルーチン、統計アルゴリズム、高品質な完全ドキュメントAPIを提供する。
論文 参考訳(メタデータ) (2022-12-08T17:02:16Z) - Provably Consistent Partial-Label Learning [120.4734093544867]
部分ラベル学習 (Partial-label Learning, PLL) は多クラス分類問題である。
本稿では,候補ラベル集合の第1世代モデルを提案し,一貫性が保証される2つの新しい手法を開発する。
ベンチマークおよび実世界のデータセットの実験は、提案した生成モデルの有効性と2つの方法の有効性を検証する。
論文 参考訳(メタデータ) (2020-07-17T12:19:16Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。