論文の概要: Go-Oracle: Automated Test Oracle for Go Concurrency Bugs
- arxiv url: http://arxiv.org/abs/2412.08061v1
- Date: Wed, 11 Dec 2024 03:07:56 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-12-12 14:04:16.296765
- Title: Go-Oracle: Automated Test Oracle for Go Concurrency Bugs
- Title(参考訳): Go-Oracle: Goコンカレンシーバグに対するOracleの自動テスト
- Authors: Foivos Tsimpourlas, Chao Peng, Carlos Rosuero, Ping Yang, Ajitha Rajan,
- Abstract要約: Go言語では、バグが大きな問題となっている。
我々の研究は、Goプログラムのテストオラクル問題に対処し、テスト実行をパスまたはフェールとして自動的に分類することを目指している。
ネイティブなGo実行トレーサを使用して、包括的な実行イベントをキャプチャします。
トランスフォーマーベースのニューラルネットワークをトレーニングする前に、これらのトレースを前処理してエンコードして、トレースをパスまたはフェールのいずれかとして効果的に分類します。
- 参考スコア(独自算出の注目度): 6.773048267569272
- License:
- Abstract: The Go programming language has gained significant traction for developing software, especially in various infrastructure systems. Nonetheless, concurrency bugs have become a prevalent issue within Go, presenting a unique challenge due to the language's dual concurrency mechanisms-communicating sequential processes and shared memory. Detecting concurrency bugs and accurately classifying program executions as pass or fail presents an immense challenge, even for domain experts. We conducted a survey with expert developers at Bytedance that confirmed this challenge. Our work seeks to address the test oracle problem for Go programs, to automatically classify test executions as pass or fail. This problem has not been investigated in the literature for Go programs owing to its distinctive programming model. Our approach involves collecting both passing and failing execution traces from various subject Go programs. We capture a comprehensive array of execution events using the native Go execution tracer. Subsequently, we preprocess and encode these traces before training a transformer-based neural network to effectively classify the traces as either passing or failing. The evaluation of our approach encompasses 8 subject programs sourced from the GoBench repository. These subject programs are routinely used as benchmarks in an industry setting. Encouragingly, our test oracle, Go-Oracle, demonstrates high accuracies even when operating with a limited dataset, showcasing the efficacy and potential of our methodology. Developers at Bytedance strongly agreed that they would use the Go-Oracle tool over the current practice of manual inspections to classify tests for Go programs as pass or fail.
- Abstract(参考訳): Go言語は、特に様々なインフラシステムにおいて、ソフトウェア開発において大きな牽引力を得てきた。
それにもかかわらず、並行処理のバグがGoの一般的な問題となり、言語の二重並行処理機構がシーケンシャルなプロセスと共有メモリを通信しているため、ユニークな課題が浮かび上がっている。
並列性バグを検出し、プログラムの実行をパスまたはフェールとして正確に分類することは、ドメインの専門家にとっても大きな課題となる。
私たちはBytedanceのエキスパート開発者と調査を行い、この課題を確認しました。
我々の研究は、Goプログラムのテストオラクル問題に対処し、テスト実行をパスまたはフェールとして自動的に分類することを目指している。
この問題は、その特異なプログラミングモデルのため、Goプログラムの文献では研究されていない。
このアプローチでは、さまざまなテーマGoプログラムからパストレースとフェールトレースの両方を収集する。
ネイティブなGo実行トレーサを使用して、包括的な実行イベントをキャプチャします。
その後、トランスフォーマーベースのニューラルネットワークをトレーニングする前に、これらのトレースを前処理してエンコードし、トレースをパスまたはフェールのいずれかとして効果的に分類する。
提案手法の評価は,GoBenchリポジトリから得られた8つの対象プログラムを対象とする。
これらの科目プログラムは、業界環境でベンチマークとして日常的に使用される。
私たちのテストオラクルであるGo-Oracleは、限られたデータセットで運用しても高い精度を示し、方法論の有効性と可能性を示します。
Bytedanceの開発者は、Goプログラムのテストをパスまたはフェールとして分類するために、現在の手動インスペクションよりもGo-Oracleツールを使用することに強く同意した。
関連論文リスト
- Effective Technical Reviews [0.7212939068975619]
プログラムの実行は、プログラムの正しさをレビューする究極のテストである一方で、プログラムは開発初期に発生し、効果的に実行された場合の問題を見つけることができる。
プログラマは、プログラムを効果的にレビューし、インタフェースの問題から様々な問題を見つけることができる。
論文 参考訳(メタデータ) (2024-07-02T15:19:52Z) - Test Oracle Automation in the era of LLMs [52.69509240442899]
大規模言語モデル(LLM)は、多様なソフトウェアテストタスクに取り組むのに顕著な能力を示した。
本研究の目的は, 各種のオラクル生成時に生じる課題とともに, LLMs によるオラクルの自動化の可能性について検討することである。
論文 参考訳(メタデータ) (2024-05-21T13:19:10Z) - Parallel Decoding via Hidden Transfer for Lossless Large Language Model Acceleration [54.897493351694195]
本稿では,複数連続するトークンを1つのフォワードパスで同時に復号する,新しい並列復号法,すなわちthithidden Transferを提案する。
加速度測定では,Medusa や Self-Speculative decoding など,単モデル加速技術よりも優れています。
論文 参考訳(メタデータ) (2024-04-18T09:17:06Z) - Navigating the Concurrency Landscape: A Survey of Race Condition Vulnerability Detectors [0.12289361708127873]
本稿では,レースコンディションバグ検出の領域に焦点をあてる。
我々はこれらの検出器を,それらが採用する多様な手法に基づいて系統的に分類する。
レースコンディションの脆弱性の検出におけるファジリング技術の適用について,光を当てた。
論文 参考訳(メタデータ) (2023-12-22T07:05:39Z) - Modelling Concurrency Bugs Using Machine Learning [0.0]
このプロジェクトは、一般的な機械学習アプローチと最近の機械学習アプローチを比較することを目的としている。
我々は、実生活(同時)プログラムをシミュレートする範囲で生成する合成データセットを定義する。
各種機械学習モデルモデルの基本的な限界に関する仮説を定式化する。
論文 参考訳(メタデータ) (2023-05-08T17:30:24Z) - Teaching Large Language Models to Self-Debug [62.424077000154945]
大規模言語モデル(LLM)は、コード生成において素晴らしいパフォーマンスを達成した。
本稿では,大規模言語モデルで予測プログラムを数発のデモでデバッグする自己デバッグを提案する。
論文 参考訳(メタデータ) (2023-04-11T10:43:43Z) - HyperPUT: Generating Synthetic Faulty Programs to Challenge Bug-Finding
Tools [3.8520163964103835]
シードバグのあるプログラムを自動的に生成する補完的手法を提案する。
プログラム変換を漸進的に適用することで、"シード"バグからCプログラムを構築します。
論文 参考訳(メタデータ) (2022-09-14T13:09:41Z) - 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) - Static Prediction of Runtime Errors by Learning to Execute Programs with
External Resource Descriptions [31.46148643917194]
実世界のデータセットと実行時のエラーを予測するタスクを導入します。
プログラムの実行を模倣する帰納的バイアスを持つインタプリタにインスパイアされたアーキテクチャを開発する。
また,このモデルでは,エラーの有無やエラーの種類を示すラベルにのみトレーニングされているにもかかわらず,エラーの位置を予測できることを示す。
論文 参考訳(メタデータ) (2022-03-07T23:17:17Z) - Measuring Coding Challenge Competence With APPS [54.22600767666257]
コード生成のベンチマークであるAPPSを紹介する。
私たちのベンチマークには1万の問題が含まれています。
GPT-Neoのような最近のモデルでは、導入問題のテストケースの約15%をパスできる。
論文 参考訳(メタデータ) (2021-05-20T17:58:42Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。