論文の概要: Automated Unit Test Refactoring
- arxiv url: http://arxiv.org/abs/2409.16739v2
- Date: Tue, 11 Feb 2025 10:52:54 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-02-12 14:04:31.969629
- Title: Automated Unit Test Refactoring
- Title(参考訳): 自動ユニットテストリファクタリング
- Authors: Yi Gao, Xing Hu, Xiaohu Yang, Xin Xia,
- Abstract要約: テストの臭いは、設計プラクティスの貧弱さとドメイン知識の不足から生じます。
我々は,Javaプロジェクトにおける自動テストのための文脈拡張型LLMベースのフレームワークUTRefactorを提案する。
6つのオープンソースのJavaプロジェクトから879のテストに対してUTRefactorを評価し、テストの匂いを2,375から265に減らし、89%の削減を実現した。
- 参考スコア(独自算出の注目度): 10.847400457238423
- License:
- Abstract: Test smells arise from poor design practices and insufficient domain knowledge, which can lower the quality of test code and make it harder to maintain and update. Manually refactoring test smells is time-consuming and error-prone, highlighting the necessity for automated approaches. Current rule-based refactoring methods often struggle in scenarios not covered by predefined rules and lack the flexibility needed to handle diverse cases effectively. In this paper, we propose a novel approach called UTRefactor, a context-enhanced, LLM-based framework for automatic test refactoring in Java projects. UTRefactor extracts relevant context from test code and leverages an external knowledge base that includes test smell definitions, descriptions, and DSL-based refactoring rules. By simulating the manual refactoring process through a chain-of-thought approach, UTRefactor guides the LLM to eliminate test smells in a step-by-step process, ensuring both accuracy and consistency throughout the refactoring. Additionally, we implement a checkpoint mechanism to facilitate comprehensive refactoring, particularly when multiple smells are present. We evaluate UTRefactor on 879 tests from six open-source Java projects, reducing the number of test smells from 2,375 to 265, achieving an 89% reduction. UTRefactor outperforms direct LLM-based refactoring methods by 61.82% in smell elimination and significantly surpasses the performance of a rule-based test smell refactoring tool. Our results demonstrate the effectiveness of UTRefactor in enhancing test code quality while minimizing manual involvement.
- Abstract(参考訳): テストの臭いは、設計プラクティスの貧弱さとドメイン知識の不足から生じ、テストコードの品質が低下し、メンテナンスや更新が難しくなります。
手動でテストの臭いをリファクタリングするのは時間がかかり、エラーが発生しやすいため、自動化アプローチの必要性が浮き彫りになる。
現在のルールベースのリファクタリングメソッドは、事前に定義されたルールに守られず、多様なケースを効果的に扱うために必要な柔軟性に欠けるシナリオで苦労することが多い。
本稿では,Javaプロジェクトにおける自動テストリファクタリングのためのコンテキスト強化LLMベースのフレームワークであるUTRefactorを提案する。
UTRefactorはテストコードから関連するコンテキストを抽出し、テストの臭いの定義、記述、DSLベースのリファクタリングルールを含む外部知識ベースを活用する。
手動でリファクタリングプロセスをシミュレートすることで、UTRefactorはLLMをガイドして、ステップバイステップのプロセスにおけるテストの臭いを排除し、リファクタリング全体の正確性と一貫性を確保する。
さらに,複数の匂いが存在する場合に,包括的なリファクタリングを容易にするためのチェックポイント機構を実装した。
6つのオープンソースのJavaプロジェクトから879のテストに対してUTRefactorを評価し、テストの匂いを2,375から265に減らし、89%の削減を実現した。
UTRefactorは、61.82%の臭気除去率でLCMベースの直接リファクタリング方法より優れており、ルールベースのテスト臭いリファクタリングツールのパフォーマンスを大幅に上回っている。
その結果,UTRefactorが手作業による関与を最小限に抑えつつ,テストコード品質を向上させる効果が示された。
関連論文リスト
- An Empirical Study on the Potential of LLMs in Automated Software Refactoring [9.157968996300417]
自動ソフトウェアにおける大規模言語モデル(LLM)の可能性について検討する。
私たちは、ChatGPTが提案した176のソリューションのうち13と、Geminiが提案した137のソリューションのうち9が、ソースコードの機能を変更したり、構文エラーを導入したりすることを安全でないことに気付きました。
論文 参考訳(メタデータ) (2024-11-07T05:35:55Z) - FactorLLM: Factorizing Knowledge via Mixture of Experts for Large Language Models [50.331708897857574]
本稿では,高度に訓練された高密度FFNを余分なサブネットワークに分解する新しいアプローチであるFacterLLMを紹介する。
FactorLLMは、最大85%のモデル性能を確保しながら、推論速度を30%以上増加させながら、ソースモデルに匹敵するパフォーマンスを達成する。
論文 参考訳(メタデータ) (2024-08-15T16:45:16Z) - Re-ReST: Reflection-Reinforced Self-Training for Language Agents [101.22559705696885]
言語エージェントにおける自己学習は、エージェント自体から監督を生成することができる。
リフレクション強化自己学習(Reflection-Reinforced Self-Training, Re-ReST)は, テキストレフレクタを用いて低品質な試料を精製する。
論文 参考訳(メタデータ) (2024-06-03T16:21:38Z) - Detecting Refactoring Commits in Machine Learning Python Projects: A Machine Learning-Based Approach [3.000496428347787]
MLRefScannerは、ML固有のものと一般的な操作の両方でコミットを特定する。
本研究は,多言語および技術的領域にわたるプログラム検出におけるML駆動型アプローチの可能性を明らかにする。
論文 参考訳(メタデータ) (2024-04-09T18:46:56Z) - Together We Go Further: LLMs and IDE Static Analysis for Extract Method Refactoring [9.882903340467815]
単一のメソッドに複数の責任をカプセル化する長いメソッドはメンテナンスが難しい。
大規模言語モデル(LLM)は、大規模なコードコーパスで訓練されている。
LLMは非常に効果的であるが、信頼できない。最大76.3%は幻覚である。
論文 参考訳(メタデータ) (2024-01-27T05:01:03Z) - RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename
Refactoring [57.8069006460087]
本研究では,他のリネーム活動よりも難易度の高い変数名の自動改名について検討する。
変数名に対する名前変更のための2段階事前訓練フレームワークであるRefBERTを提案する。
RefBERTの変数名は既存の手法よりも正確で有意義であることを示す。
論文 参考訳(メタデータ) (2023-05-28T12:29:39Z) - Do code refactorings influence the merge effort? [80.1936417993664]
複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
論文 参考訳(メタデータ) (2023-05-10T13:24:59Z) - Supporting single responsibility through automated extract method
refactoring [48.0838443679187]
本稿では,長いメソッドを少し重なり合うスライスに分解する後方スライスアルゴリズムを提案する。
スライスは各出力命令に対して計算され、メソッドに委譲された責任の結果を表す。
平均して、我々の実験は、少なくとも29.6%の精度の向上と、発見される機会のリコールにおける12.1%の改善を実証した。
論文 参考訳(メタデータ) (2023-05-05T11:02:02Z) - Reinforcement Learning for Branch-and-Bound Optimisation using
Retrospective Trajectories [72.15369769265398]
機械学習は分岐のための有望なパラダイムとして登場した。
分岐のための単純かつ効果的なRLアプローチであるレトロ分岐を提案する。
我々は現在最先端のRL分岐アルゴリズムを3~5倍に上回り、500の制約と1000の変数を持つMILP上での最高のILメソッドの性能の20%以内である。
論文 参考訳(メタデータ) (2022-05-28T06:08:07Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z) - Toward the Automatic Classification of Self-Affirmed Refactoring [22.27416971215152]
SAR(Self-Affirmed Refactoring)は、開発者がコミットメッセージでアクティビティをドキュメント化する方法について調査するために導入された。
まず、コミットが開発者関連の事象を記述しているかを識別し、共通の品質改善カテゴリに従って分類する2段階のアプローチを提案する。
我々のモデルは、コミットを正確に分類し、パターンベースのランダムアプローチより優れ、より関連する40のSARパターンを発見できる。
論文 参考訳(メタデータ) (2020-09-19T18:35:21Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。