論文の概要: ChangeGuard: Validating Code Changes via Pairwise Learning-Guided Execution
- arxiv url: http://arxiv.org/abs/2410.16092v1
- Date: Mon, 21 Oct 2024 15:13:32 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-10-22 13:19:53.277679
- Title: ChangeGuard: Validating Code Changes via Pairwise Learning-Guided Execution
- Title(参考訳): ChangeGuard: Pairwise Learning-Guided Executionによるコード変更の検証
- Authors: Lars Gröninger, Beatriz Souza, Michael Pradel,
- Abstract要約: ChangeGuardは、学習誘導型実行を使用して、修正された関数の実行動作を比較するアプローチである。
提案手法は,77.1%の精度で,69.5%のリコールで意味的変化を識別する。
- 参考スコア(独自算出の注目度): 16.130469984234956
- License:
- Abstract: Code changes are an integral part of the software development process. Many code changes are meant to improve the code without changing its functional behavior, e.g., refactorings and performance improvements. Unfortunately, validating whether a code change preserves the behavior is non-trivial, particularly when the code change is performed deep inside a complex project. This paper presents ChangeGuard, an approach that uses learning-guided execution to compare the runtime behavior of a modified function. The approach is enabled by the novel concept of pairwise learning-guided execution and by a set of techniques that improve the robustness and coverage of the state-of-the-art learning-guided execution technique. Our evaluation applies ChangeGuard to a dataset of 224 manually annotated code changes from popular Python open-source projects and to three datasets of code changes obtained by applying automated code transformations. Our results show that the approach identifies semantics-changing code changes with a precision of 77.1% and a recall of 69.5%, and that it detects unexpected behavioral changes introduced by automatic code refactoring tools. In contrast, the existing regression tests of the analyzed projects miss the vast majority of semantics-changing code changes, with a recall of only 7.6%. We envision our approach being useful for detecting unintended behavioral changes early in the development process and for improving the quality of automated code transformations.
- Abstract(参考訳): コードの変更はソフトウェア開発プロセスの不可欠な部分です。
多くのコード変更は、機能的振る舞い、例えばリファクタリング、パフォーマンス改善を変更することなく、コードを改善することを意図している。
残念なことに、複雑なプロジェクトの中でコード変更が深く実行される場合、コード変更が振る舞いを保存するかどうかを検証するのは簡単ではありません。
本稿では、学習誘導型実行を用いて修正関数の実行動作を比較する方法であるChangeGuardを提案する。
この手法は、ペアワイズ学習誘導実行という新しい概念と、最先端の学習誘導実行技術の堅牢性とカバレッジを改善する一連の技術によって実現されている。
評価では,Pythonのオープンソースプロジェクトから手動でアノテートされた224のコード変更のデータセットと,自動コード変換を適用した3つのコード変更のデータセットにChangeGuardを適用した。
提案手法は,77.1%の精度と69.5%のリコールでセマンティクス変化を識別し,自動コードリファクタリングツールによる予期せぬ振る舞い変化を検出する。
対照的に、分析されたプロジェクトの既存の回帰テストでは、セマンティクスを変えるコード変更の大部分を見逃しており、リコールはわずか7.6%だった。
開発プロセスの早い段階で意図しない振る舞いの変化を検出し、自動コード変換の品質向上に役立ちます。
関連論文リスト
- Understanding Code Understandability Improvements in Code Reviews [79.16476505761582]
GitHub上のJavaオープンソースプロジェクトからの2,401のコードレビューコメントを分析した。
改善提案の83.9%が承認され、統合され、1%未満が後に復活した。
論文 参考訳(メタデータ) (2024-10-29T12:21:23Z) - Understanding Code Change with Micro-Changes [9.321152185934105]
マイクロチェンジのカタログと自動マイクロチェンジ検出器について述べる。
我々の検出器は、研究中のシステムで起きている変化の67%以上を説明できることがわかった。
論文 参考訳(メタデータ) (2024-09-16T01:47:25Z) - MS-Former: Memory-Supported Transformer for Weakly Supervised Change
Detection with Patch-Level Annotations [50.79913333804232]
弱い教師付き変化検出のためのメモリ支援トランス (MS-Former) を提案する。
MS-Former は双方向注意ブロック (BAB) とパッチレベルの監視スキーム (PSS) から構成される。
3つのベンチマークデータセットの実験結果から,提案手法の有効性が示された。
論文 参考訳(メタデータ) (2023-11-16T09:57:29Z) - Context-Encoded Code Change Representation for Automated Commit Message
Generation [0.0]
本稿では,変化したコードと変化しないコードを組み合わせることで,コード変更を表現する手法を提案する。
これは現在の表現の限界を克服し、最先端のコミットメッセージ生成メソッドの5/6のパフォーマンスを改善している。
論文 参考訳(メタデータ) (2023-06-26T04:48:14Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - Coeditor: Leveraging Contextual Changes for Multi-round Code Auto-editing [57.776971051512234]
本研究では,複数ラウンドのコードの自動編集設定について検討し,その内部の最近の変更に基づいて,コード領域への編集を予測することを目的とした。
我々のモデルであるCoeditorは、コード編集タスクに特化して設計された微調整言語モデルである。
単純化されたシングルラウンドのシングル編集タスクでは、Coeditor は GPT-3.5 と SOTA のオープンソースコード補完モデルを大幅に上回っている。
論文 参考訳(メタデータ) (2023-05-29T19:57:36Z) - CCRep: Learning Code Change Representations via Pre-Trained Code Model
and Query Back [8.721077261941236]
この研究は、CCRepという新しいコード変更表現学習手法を提案する。
CCRepは、さまざまな下流タスクのための機能ベクトルとして、コード変更をエンコードすることを学ぶ。
CCRepをコミットメッセージ生成、パッチの正当性評価、ジャスト・イン・タイム欠陥予測の3つのタスクに適用する。
論文 参考訳(メタデータ) (2023-02-08T07:43:55Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z) - Unsupervised Learning of General-Purpose Embeddings for Code Changes [6.652641137999891]
事前学習中にコード変更の埋め込みを得る手法を提案する。
コードの変更とコミットメッセージ生成という、2つの異なる下流タスクでそれらを評価します。
本モデルでは,完全編集シーケンスを用いたモデルの精度を5.9ポイント向上させる。
論文 参考訳(メタデータ) (2021-06-03T19:08:53Z) - Deep Just-In-Time Inconsistency Detection Between Comments and Source
Code [51.00904399653609]
本稿では,コード本体の変更によりコメントが矛盾するかどうかを検出することを目的とする。
私たちは、コメントとコードの変更を関連付けるディープラーニングアプローチを開発しています。
より包括的な自動コメント更新システムを構築するために,コメント更新モデルと組み合わせて提案手法の有用性を示す。
論文 参考訳(メタデータ) (2020-10-04T16:49:28Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。