論文の概要: Configuring Test Generators using Bug Reports: A Case Study of GCC
Compiler and Csmith
- arxiv url: http://arxiv.org/abs/2012.10662v2
- Date: Thu, 18 Mar 2021 12:36:38 GMT
- ステータス: 処理完了
- システム内更新日: 2021-05-01 11:07:16.822807
- Title: Configuring Test Generators using Bug Reports: A Case Study of GCC
Compiler and Csmith
- Title(参考訳): バグレポートを用いたテストジェネレータの構成:gccコンパイラとcsmithのケーススタディ
- Authors: Md Rafiqul Islam Rabin and Mohammad Amin Alipour
- Abstract要約: 本稿では,バグレポートのコードスニペットを使用して,テスト生成のガイドを行う。
GCCの8つのバージョンでこのアプローチを評価します。
我々は,本手法がGCCの最先端テスト生成技術よりも高いカバレッジを提供し,誤コンパイル障害を引き起こすことを発見した。
- 参考スコア(独自算出の注目度): 2.1016374925364616
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: The correctness of compilers is instrumental in the safety and reliability of
other software systems, as bugs in compilers can produce executables that do
not reflect the intent of programmers. Such errors are difficult to identify
and debug. Random test program generators are commonly used in testing
compilers, and they have been effective in uncovering bugs. However, the
problem of guiding these test generators to produce test programs that are more
likely to find bugs remains challenging. In this paper, we use the code
snippets in the bug reports to guide the test generation. The main idea of this
work is to extract insights from the bug reports about the language features
that are more prone to inadequate implementation and using the insights to
guide the test generators. We use the GCC C compiler to evaluate the
effectiveness of this approach. In particular, we first cluster the test
programs in the GCC bugs reports based on their features. We then use the
centroids of the clusters to compute configurations for Csmith, a popular test
generator for C compilers. We evaluated this approach on eight versions of GCC
and found that our approach provides higher coverage and triggers more
miscompilation failures than the state-of-the-art test generation techniques
for GCC.
- Abstract(参考訳): コンパイラのバグはプログラマの意図を反映しない実行ファイルを生成することができるため、コンパイラの正しさは他のソフトウェアシステムの安全性と信頼性に欠かせない。
このようなエラーは識別やデバッグが難しい。
ランダムテストプログラムジェネレータは一般的にコンパイラのテストに使われ、バグの発見に有効である。
しかし、これらのテストジェネレータにバグを見つけやすいテストプログラムを作成するよう誘導する問題は、依然として難しい。
本稿では,バグレポート中のコードスニペットを用いて,テスト生成のガイドを行う。
この作業の主なアイデアは、実装が不十分になりやすい言語機能に関するバグレポートから洞察を抽出し、テストジェネレータを導くための洞察を使用することである。
我々は、GCC Cコンパイラを用いて、このアプローチの有効性を評価する。
特に、まずその機能に基づいて、gccのバグレポートにテストプログラムをクラスタ化します。
次にクラスタのcentroidsを使用して、cコンパイラ用の人気のあるテストジェネレータであるcsmithの構成を計算します。
我々は,この手法をGCCの8バージョンで評価し,本手法がGCCの最先端テスト生成技術よりも高いカバレッジを提供し,誤コンパイル障害を引き起こすことを発見した。
関連論文リスト
- Evolutionary Generative Fuzzing for Differential Testing of the Kotlin
Compiler [14.259471945857431]
JetBrainsが開発したKotlinコンパイラのバグ発見における差分テストの有効性について検討する。
そこで我々は,K1コンパイラとK2コンパイラの入力プログラムを生成するブラックボックス生成手法を提案する。
ケーススタディでは,提案手法がK1とK2のバグを効果的に検出している。
論文 参考訳(メタデータ) (2024-01-12T16:01:12Z) - Weak Memory Demands Model-based Compiler Testing [0.0]
コンパイラのバグは、コンパイルされたコンカレントプログラムの動作が、アーキテクチャメモリモデルによって許容されるように、ソースモデルの下でソースプログラムによって許容される振る舞いでない場合に発生する。
プロセッサの実装は、緩やかなアーキテクチャモデルの振る舞いをますます活用している。
論文 参考訳(メタデータ) (2024-01-12T15:50:32Z) - DebugBench: Evaluating Debugging Capability of Large Language Models [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - Compiler Testing With Relaxed Memory Models [0.0]
並列プログラムのためのT'el'echatコンパイラテストツールを提案する。
T'el'echatは並列C/C++プログラムをコンパイルし、ソースとコンパイルされたプログラムの振る舞いを比較する。
論文 参考訳(メタデータ) (2023-10-18T21:24:26Z) - Dcc --help: Generating Context-Aware Compiler Error Explanations with
Large Language Models [53.04357141450459]
dcc --helpはCS1とCS2のコースにデプロイされ、2565人の学生が10週間で64,000回以上このツールを使っている。
LLMが生成した説明は、コンパイル時間の90%と実行時の75%で概念的に正確であるが、コードに解決策を提供しない命令を無視することが多かった。
論文 参考訳(メタデータ) (2023-08-23T02:36:19Z) - Directed Test Program Generation for JIT Compiler Bug Localization [3.626013617212667]
Just-in-Time(JIT)コンパイラのバグローカライズ技術は、この目的のために生成されたテストプログラムのセット上で、ターゲットJITコンパイラの実行動作を分析することに基づいている。
本稿ではJITコンパイラのバグローカライゼーションのための新しいテストプログラム生成手法を提案する。
論文 参考訳(メタデータ) (2023-07-17T22:43:02Z) - A Survey of Modern Compiler Fuzzing [0.0]
この調査は、コンパイラの欠陥を理解し、対処するための研究成果の概要を提供する。
研究者は、その症状や根本原因など、コンパイラーのバグに関する調査と専門知識をカバーしている。
さらに、テストプログラムの構築やテストオラクルの設計など、ファジング技術を設計する研究者の取り組みについても取り上げている。
論文 参考訳(メタデータ) (2023-06-12T06:03:51Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Teaching Large Language Models to Self-Debug [62.424077000154945]
大規模言語モデル(LLM)は、コード生成において素晴らしいパフォーマンスを達成した。
本稿では,大規模言語モデルで予測プログラムを数発のデモでデバッグする自己デバッグを提案する。
論文 参考訳(メタデータ) (2023-04-11T10:43:43Z) - Using Developer Discussions to Guide Fixing Bugs in Software [51.00904399653609]
我々は,タスク実行前に利用可能であり,また自然発生しているバグレポートの議論を,開発者による追加情報の必要性を回避して利用することを提案する。
このような議論から派生したさまざまな自然言語コンテキストがバグ修正に役立ち、オラクルのバグ修正コミットに対応するコミットメッセージの使用よりもパフォーマンスの向上につながることを実証する。
論文 参考訳(メタデータ) (2022-11-11T16:37:33Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。