論文の概要: HyperPUT: Generating Synthetic Faulty Programs to Challenge Bug-Finding
Tools
- arxiv url: http://arxiv.org/abs/2209.06615v2
- Date: Fri, 2 Feb 2024 14:43:44 GMT
- ステータス: 処理完了
- システム内更新日: 2024-02-05 20:50:28.951878
- Title: HyperPUT: Generating Synthetic Faulty Programs to Challenge Bug-Finding
Tools
- Title(参考訳): HyperPUT: バグフィンディングツールに挑戦する合成障害プログラムの生成
- Authors: Riccardo Felici, Laura Pozzi and Carlo A. Furia
- Abstract要約: シードバグのあるプログラムを自動的に生成する補完的手法を提案する。
プログラム変換を漸進的に適用することで、"シード"バグからCプログラムを構築します。
- 参考スコア(独自算出の注目度): 3.8520163964103835
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: As research in automatically detecting bugs grows and produces new
techniques, having suitable collections of programs with known bugs becomes
crucial to reliably and meaningfully compare the effectiveness of these
techniques. Most of the existing approaches rely on benchmarks collecting
manually curated real-world bugs, or synthetic bugs seeded into real-world
programs. Using real-world programs entails that extending the existing
benchmarks or creating new ones remains a complex time-consuming task.
In this paper, we propose a complementary approach that automatically
generates programs with seeded bugs. Our technique, called HyperPUT, builds C
programs from a "seed" bug by incrementally applying program transformations
(introducing programming constructs such as conditionals, loops, etc.) until a
program of the desired size is generated. In our experimental evaluation, we
demonstrate how HyperPUT can generate buggy programs that can challenge in
different ways the capabilities of modern bug-finding tools, and some of whose
characteristics are comparable to those of bugs in existing benchmarks. These
results suggest that HyperPUT can be a useful tool to support further research
in bug-finding techniques -- in particular their empirical evaluation.
- Abstract(参考訳): バグを自動的に検出する研究が成長し、新たなテクニックが生み出されるにつれて、既知のバグを持つプログラムの適切なコレクションを持つことが、これらの手法の有効性を確実かつ有意義に比較することが重要となる。
既存のアプローチのほとんどは、実世界のバグを手作業で収集するベンチマークや、実世界のプログラムにシードされた合成バグに依存している。
実世界のプログラムを使うには、既存のベンチマークを拡張したり、新しいベンチマークを作成したりするのは複雑な作業である。
本稿では,シードバグのあるプログラムを自動生成する補完的手法を提案する。
提案手法は,プログラム変換(条件,ループなどのプログラミング構造の導入)を所望の大きさのプログラムが生成されるまで段階的に適用することで,"シード"バグからCプログラムを構築する。
実験的な評価では、hyperputが現代のバグ発見ツールの能力や、既存のベンチマークのバグに匹敵する特性に異なる方法で挑戦できるバグの多いプログラムをいかに生成できるかを実証する。
これらの結果から,HyperPUTはバグフィニングテクニック,特に経験的評価のさらなる研究を支援する上で,有用なツールである可能性が示唆されている。
関連論文リスト
- 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) - Modelling Concurrency Bugs Using Machine Learning [0.0]
このプロジェクトは、一般的な機械学習アプローチと最近の機械学習アプローチを比較することを目的としている。
我々は、実生活(同時)プログラムをシミュレートする範囲で生成する合成データセットを定義する。
各種機械学習モデルモデルの基本的な限界に関する仮説を定式化する。
論文 参考訳(メタデータ) (2023-05-08T17:30:24Z) - Fully Autonomous Programming with Large Language Models [0.9558392439655015]
LLM(Large Language Models)を用いたプログラム合成への最近のアプローチは、"ニアミスシンドローム"を示す。
我々は、LLMとプログラム合成ベンチマーク2としてOpenAI Codexを使用し、問題記述と評価のためのテストのデータベースとして使用します。
結果として生じるフレームワークは、修復フェーズなしでのCodexの従来の使用法と、従来の遺伝的プログラミングアプローチの両方を上回ります。
論文 参考訳(メタデータ) (2023-04-20T16:12:05Z) - Generation Probabilities Are Not Enough: Uncertainty Highlighting in AI Code Completions [54.55334589363247]
本研究では,不確実性に関する情報を伝達することで,プログラマがより迅速かつ正確にコードを生成することができるかどうかを検討する。
トークンのハイライトは、編集される可能性が最も高いので、タスクの完了が早くなり、よりターゲットを絞った編集が可能になることがわかりました。
論文 参考訳(メタデータ) (2023-02-14T18:43:34Z) - BigIssue: A Realistic Bug Localization Benchmark [89.8240118116093]
BigIssueは、現実的なバグローカライゼーションのためのベンチマークである。
実際のJavaバグと合成Javaバグの多様性を備えた一般的なベンチマークを提供する。
われわれは,バグローカライゼーションの最先端技術として,APRの性能向上と,現代の開発サイクルへの適用性の向上を期待している。
論文 参考訳(メタデータ) (2022-07-21T20:17:53Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - Learning from Self-Sampled Correct and Partially-Correct Programs [96.66452896657991]
そこで本研究では,モデルが学習中にサンプリングを行い,自己サンプリングされた完全正当プログラムと部分正当プログラムの両方から学習することを提案する。
自己サンプリング型プログラムと部分修正型プログラムを併用することで,学習とサンプリングプロセスのガイドに役立てることができることを示す。
提案手法は,MLEを用いた単一の参照プログラムからの学習と比較して,パス@kの性能を3.1%から12.3%向上させる。
論文 参考訳(メタデータ) (2022-05-28T03:31:07Z) - Iterative Genetic Improvement: Scaling Stochastic Program Synthesis [11.195558777385259]
プログラム合成は、与えられた仕様を満たす基礎となるプログラミング言語からプログラムを自動的に見つけることを目的としている。
既存のプログラム合成技術はこの期待を十分に満たさず、スケーラビリティの問題に悩まされている。
本稿では、この問題を解決するために反復的遺伝的改善と呼ばれるプログラム合成の新しい枠組みを提案する。
論文 参考訳(メタデータ) (2022-02-26T02:00:35Z) - Searching for More Efficient Dynamic Programs [61.79535031840558]
本稿では,プログラム変換の集合,変換プログラムの効率を評価するための単純な指標,およびこの指標を改善するための探索手順について述べる。
実際に、自動検索は初期プログラムの大幅な改善を見出すことができることを示す。
論文 参考訳(メタデータ) (2021-09-14T20:52:55Z) - Recent Developments in Program Synthesis with Evolutionary Algorithms [1.8047694351309207]
関連する進化的プログラム合成手法を同定し,その性能を詳細に解析する。
私たちが特定する最も影響力のあるアプローチは、スタックベース、文法誘導、および線形遺伝プログラミングである。
今後の研究のために、研究者は、プログラムのアウトプットを使用して、ソリューションの品質を評価するだけでなく、ソリューションへの道を開くことを奨励します。
論文 参考訳(メタデータ) (2021-08-27T11:38:27Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。