論文の概要: Regression Testing with a Natural Language Oracle
- arxiv url: http://arxiv.org/abs/2503.18597v1
- Date: Mon, 24 Mar 2025 11:55:35 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-03-25 14:37:58.135694
- Title: Regression Testing with a Natural Language Oracle
- Title(参考訳): 自然言語による回帰テスト Oracle
- Authors: Michael Pradel,
- Abstract要約: 本稿では,回帰を自動検出するTestoraを提案する。
Testoraは、コード変更による振る舞いの違いに対して、コード変更の意図を比較する。
19のレグレッションバグと11のPRがあり、別の意図があるにも関わらず、同時にバグを修正します。
- 参考スコア(独自算出の注目度): 19.51339228102997
- License:
- Abstract: As software is evolving, code changes can introduce regression bugs or affect the behavior in other unintended ways. Traditional regression test generation is impractical for detecting unintended behavioral changes, because it reports all behavioral differences as potential regressions. However, most code changes are intended to change the behavior in some way, e.g., to fix a bug or to add a new feature. This paper presents Testora, an automated approach that detects regressions by comparing the intentions of a code change against behavioral differences caused by the code change. Given a pull request (PR), Testora queries an LLM to generate tests that exercise the modified code, compares the behavior of the original and modified code, and classifies any behavioral differences as intended or unintended. For the classification, we present an LLM-based technique that leverages the natural language information associated with the PR, such as the title, description, and commit messages -- effectively providing a natural language oracle for regression testing. Applying Testora to PRs of complex and popular Python projects, we find 19 regression bugs and 11 PRs that, despite having another intention, coincidentally fix a bug. Out of 13 regressions reported to the developers, 10 have been confirmed and 8 have already been fixed. The costs of using Testora are acceptable for real-world deployment, with 12.3 minutes to check a PR and LLM costs of only $0.003 per PR. We envision our approach to be used before or shortly after a code change gets merged into a code base, providing a way to early on detect regressions that are not caught by traditional approaches.
- Abstract(参考訳): ソフトウェアが進化するにつれて、コードの変更はレグレッションバグを導入したり、他の意図しない方法で振る舞いに影響を与える可能性がある。
従来の回帰テスト生成は、すべての行動の違いを潜在的な回帰として報告するため、意図しない行動変化を検出するには実用的ではない。
しかしながら、ほとんどのコード変更は、バグ修正や新機能の追加など、何らかの方法で振る舞いを変更することを意図している。
本稿では,コード変更による振る舞いの違いに対して,コード変更の意図を比較して回帰を検出する自動手法であるTestoraを提案する。
プルリクエスト(PR)が与えられたら、TestoraはLLMに問い合わせて、修正されたコードを実行するテストを生成し、元のコードと修正されたコードの振る舞いを比較し、意図的または意図しない振る舞いの違いを分類する。
分類のために、我々は、タイトル、記述、コミットメッセージなど、PRに関連する自然言語情報を活用するLLMベースの手法を提案し、回帰テストのための自然言語のオラクルを効果的に提供する。
Testoraを複雑なPythonプロジェクトのPRに適用すると、19の回帰バグと11のPRが見つかります。
開発者に対して報告された13のレグレッションのうち、10が確認され、8がすでに修正されている。
Testoraの使用コストは現実のデプロイメントでは許容され、PRとLLMのコストは1PRあたり0.003ドルである。
私たちは、コード変更がコードベースにマージされた後、あるいはすぐに使用されるアプローチを想像し、従来のアプローチに縛られていない回帰を早期に検出する方法を提供します。
関連論文リスト
- Can LLM Generate Regression Tests for Software Commits? [15.653758694625854]
大規模言語モデル(LLM)は、自動化されたソフトウェア工学において非常に有望であることを示している。
フィードバック指向のゼロショットLCMに基づく回帰テスト生成技術であるCleverestを実装した。
XMLやJavaScriptのようなより可読なファイルフォーマットを使用するプログラムでは、Cleverestは非常によく機能した。
論文 参考訳(メタデータ) (2025-01-19T15:46:26Z) - Generating Unseen Code Tests In Infinitum [1.0674604700001968]
本稿では,プログラミングタスクやプログラミング言語にまたがって一般化するベンチマークのバリエーションを作成する手法を提案する。
我々は、Pythonでテキストからコードを生成するタスクに対して、textitauto-regressionと呼ばれる1つのベンチマークを実装した。
論文 参考訳(メタデータ) (2024-07-29T08:11:20Z) - Language Modeling with Editable External Knowledge [90.7714362827356]
本稿では,新たな文書取得時のモデル動作を改善するERASEを提案する。
ドキュメントを追加するたびに、知識ベースで他のエントリを段階的に削除または書き直します。
7-13%(Mixtral-8x7B)と6-10%(Llama-3-8B)の精度を向上する。
論文 参考訳(メタデータ) (2024-06-17T17:59:35Z) - Revising with a Backward Glance: Regressions and Skips during Reading as
Cognitive Signals for Revision Policies in Incremental Processing [19.812562421377706]
NLPでは、インクリメンタルプロセッサが言語入力の入力プレフィックスに基づいてインストール時に出力を生成する。
いくつかのトークンはリビジョンを引き起こし、アウトプット仮説に編集を引き起こすが、なぜモデルがリビジョンを行うのかは分かっていない。
逐次的シーケンスラベリングにおけるリフレクションポリシーを通知する信号として、人間の視線追跡データにおける回帰とスキップの妥当性について検討する。
論文 参考訳(メタデータ) (2023-10-27T16:08:15Z) - Zero-Shot Detection of Machine-Generated Codes [83.0342513054389]
本研究は,LLMの生成したコードを検出するためのトレーニング不要な手法を提案する。
既存のトレーニングベースまたはゼロショットテキスト検出装置は、コード検出に効果がないことがわかった。
本手法は,リビジョン攻撃に対する堅牢性を示し,Javaコードによく適応する。
論文 参考訳(メタデータ) (2023-10-08T10:08:21Z) - RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair [75.40584530380589]
新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
論文 参考訳(メタデータ) (2023-09-12T08:52:56Z) - What learning algorithm is in-context learning? Investigations with
linear models [87.91612418166464]
本稿では,トランスフォーマーに基づくインコンテキスト学習者が標準学習アルゴリズムを暗黙的に実装する仮説について検討する。
訓練された文脈内学習者は、勾配降下、隆起回帰、および正確な最小二乗回帰によって計算された予測値と密に一致していることを示す。
文脈内学習者がこれらの予測器とアルゴリズム的特徴を共有するという予備的証拠。
論文 参考訳(メタデータ) (2022-11-28T18:59:51Z) - Is this Change the Answer to that Problem? Correlating Descriptions of
Bug and Code Changes for Evaluating Patch Correctness [8.606215760860362]
パッチの正当性評価を質問回答問題に変換する。
我々は、バグレポートと生成されたパッチの自然言語記述を入力として検討する。
実験により、Quatrainはパッチの正確性を予測するために0.886のAUCを達成できることが示された。
論文 参考訳(メタデータ) (2022-08-08T13:32:58Z) - AdaptivePaste: Code Adaptation through Learning Semantics-aware Variable
Usage Representations [22.52158623717161]
本稿では、ソースコード適応のための学習ベースのアプローチであるAdaptivePasteを紹介する。
我々はPythonのコードスニペットのデータセット上でAdaptivePasteを評価する。
結果は,79.8%の精度でソースコードを適応させることが可能であることを示唆している。
論文 参考訳(メタデータ) (2022-05-23T03:49:48Z) - Regression Bugs Are In Your Model! Measuring, Reducing and Analyzing
Regressions In NLP Model Updates [68.09049111171862]
この研究は、NLPモデル更新における回帰エラーの定量化、低減、分析に重点を置いている。
回帰フリーモデル更新を制約付き最適化問題に定式化する。
モデルアンサンブルが回帰を減らす方法を実証的に分析します。
論文 参考訳(メタデータ) (2021-05-07T03:33:00Z) - RepPoints V2: Verification Meets Regression for Object Detection [65.120827759348]
本稿ではRepPointsのローカライズ予測に検証タスクを導入する。
RepPoints v2は、オリジナルのRepPointsよりも約2.0mAPの一貫性のある改善を提供する。
提案手法は、インスタンスセグメンテーションのようなアプリケーションと同様に、他のオブジェクト検出フレームワークをより高めることができることを示す。
論文 参考訳(メタデータ) (2020-07-16T17:57:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。