論文の概要: Automatic Build Repair for Test Cases using Incompatible Java Versions
- arxiv url: http://arxiv.org/abs/2404.17818v2
- Date: Fri, 3 May 2024 07:14:38 GMT
- ステータス: 処理完了
- システム内更新日: 2024-05-06 17:08:18.848973
- Title: Automatic Build Repair for Test Cases using Incompatible Java Versions
- Title(参考訳): 互換性のないJavaバージョンを使用したテストケースの自動ビルド修復
- Authors: Ching Hang Mak, Shing-Chi Cheung,
- Abstract要約: 依存性の最小化を行うことで、Javaプロジェクトのテストケースを修復するアプローチを導入します。
既存の最先端技術とは異なり、我々の手法はソースレベルで動作し、コンパイル時のエラーを修正できる。
- 参考スコア(独自算出の注目度): 7.4881561767138365
- License: http://creativecommons.org/licenses/by-nc-nd/4.0/
- Abstract: Context: Bug bisection is a common technique used to identify a revision that introduces a bug or indirectly fixes a bug, and often involves executing multiple revisions of a project to determine whether the bug is present within the revision. However, many legacy revisions often cannot be successfully compiled due to changes in the programming language or tools used in the compilation process, adding complexity and preventing automation in the bisection process. Objective: In this paper, we introduce an approach to repair test cases of Java projects by performing dependency minimization. Our approach aims to remove classes and methods that are not required for the execution of one or more test cases. Unlike existing state-of-the-art techniques, our approach performs minimization at source-level, which allows compile-time errors to be fixed. Method: A standalone Java tool implementing our technique was developed, and we evaluated our technique using subjects from Defects4J retargeted against Java 8 and 17. Results: Our evaluation showed that a majority of subjects can be repaired solely by performing minimization, including replicating the test results of the original version. Furthermore, our technique is also shown to achieve accurate minimized results, while only adding a small overhead to the bisection process. Conclusion: Our proposed technique is shown to be effective for repairing build failures with minimal overhead, making it suitable for use in automated bug bisection. Our tool can also be adapted for use cases such as bug corpus creation and refactoring.
- Abstract(参考訳): コンテキスト: Bugのバイセクションは、バグを導入したり、間接的にバグを修正するリビジョンを特定するのに使われる一般的なテクニックであり、しばしばリビジョンの中にバグが存在するかどうかを判断するために、プロジェクトの複数のリビジョンを実行する。
しかし、多くのレガシーリビジョンは、コンパイルプロセスで使用されるプログラミング言語やツールの変更により、しばしばうまくコンパイルできない。
目的:本論文では,依存性の最小化によってJavaプロジェクトのテストケースを修復する手法を紹介する。
我々のアプローチは、1つ以上のテストケースの実行に不要なクラスやメソッドを削除することを目的としています。
既存の最先端技術とは異なり、我々の手法はソースレベルで最小化を行い、コンパイル時のエラーを修正できる。
Method: 私たちのテクニックを実装するスタンドアロンのJavaツールを開発し、Java 8と17に対して再ターゲットされたDefects4Jの課題を使って、我々のテクニックを評価しました。
結果: 評価の結果, 原版テスト結果の複製を含む最小化を行うことで, 被験者の大多数を修復できることがわかった。
さらに,本手法は,2分割プロセスに小さなオーバーヘッドを加えるだけで,精度の低い結果が得られることを示す。
結論: 提案手法は,オーバーヘッドの最小化によるビルド障害の修復に有効であることが示され,自動バグバイセクションでの使用に適している。
私たちのツールは、バグコーパスの作成やリファクタリングといったユースケースにも適用できます。
関連論文リスト
- Supporting Cross-language Cross-project Bug Localization Using Pre-trained Language Models [2.5121668584771837]
既存のテクニックは、アプリケーション固有のデータに依存しているため、一般化性とデプロイメントに苦労することが多い。
本稿では,プロジェクトと言語の境界を超越したバグローカライゼーションのための,PLMに基づく新しい言語モデルを提案する。
論文 参考訳(メタデータ) (2024-07-03T01:09:36Z) - Leveraging Large Language Models for Efficient Failure Analysis in Game Development [47.618236610219554]
本稿では,テストの失敗の原因となるコードの変更を自動的に識別する手法を提案する。
このメソッドは、LLM(Large Language Models)を利用して、エラーメッセージと対応するコード変更を関連付ける。
当社のアプローチは新たに作成したデータセットで71%の精度に達しています。
論文 参考訳(メタデータ) (2024-06-11T09:21:50Z) - 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) - Directed Test Program Generation for JIT Compiler Bug Localization [3.626013617212667]
Just-in-Time(JIT)コンパイラのバグローカライズ技術は、この目的のために生成されたテストプログラムのセット上で、ターゲットJITコンパイラの実行動作を分析することに基づいている。
本稿ではJITコンパイラのバグローカライゼーションのための新しいテストプログラム生成手法を提案する。
論文 参考訳(メタデータ) (2023-07-17T22:43:02Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - HyperPUT: Generating Synthetic Faulty Programs to Challenge Bug-Finding
Tools [3.8520163964103835]
シードバグのあるプログラムを自動的に生成する補完的手法を提案する。
プログラム変換を漸進的に適用することで、"シード"バグからCプログラムを構築します。
論文 参考訳(メタデータ) (2022-09-14T13:09:41Z) - FixEval: Execution-based Evaluation of Program Fixes for Programming
Problems [23.987104440395576]
FixEvalは、競合するプログラミング問題とそれに対応する修正に対して、バグの多いコードを提出するベンチマークです。
FixEvalは、モデル生成プログラム修正の正確性を評価するために、ユニットテストの広範なコレクションを提供する。
実験の結果,マッチングに基づくメトリクスは,モデル生成プログラムの修正を正確に反映しないことがわかった。
論文 参考訳(メタデータ) (2022-06-15T20:18:43Z) - Annotation Error Detection: Analyzing the Past and Present for a More
Coherent Future [63.99570204416711]
我々は、潜在的なアノテーションの誤りを検知するための18の手法を再実装し、9つの英語データセット上で評価する。
アノテーションエラー検出タスクの新しい形式化を含む一様評価設定を定義する。
私たちはデータセットと実装を,使いやすく,オープンソースのソフトウェアパッケージとしてリリースしています。
論文 参考訳(メタデータ) (2022-06-05T22:31:45Z) - Label, Verify, Correct: A Simple Few Shot Object Detection Method [93.84801062680786]
トレーニングセットから高品質な擬似アノテーションを抽出するための簡単な擬似ラベリング手法を提案する。
擬似ラベリングプロセスの精度を向上させるための2つの新しい手法を提案する。
提案手法は,既存手法と比較して,最先端ないし第2の性能を実現する。
論文 参考訳(メタデータ) (2021-12-10T18:59:06Z) - Generating Bug-Fixes Using Pretrained Transformers [11.012132897417592]
実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
論文 参考訳(メタデータ) (2021-04-16T05:27:04Z) - Few-shot Action Recognition with Prototype-centered Attentive Learning [88.10852114988829]
2つの新しい構成要素からなるプロトタイプ中心型注意学習(pal)モデル。
まず,従来のクエリ中心学習目標を補完するために,プロトタイプ中心のコントラスト学習損失を導入する。
第二に、PALは注意深いハイブリッド学習機構を統合しており、アウトレーヤの負の影響を最小限に抑えることができる。
論文 参考訳(メタデータ) (2021-01-20T11:48:12Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。