論文の概要: Real-World Fault Detection for C-Extended Python Projects with Automated Unit Test Generation
- arxiv url: http://arxiv.org/abs/2603.06107v1
- Date: Fri, 06 Mar 2026 10:05:29 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-03-09 13:17:45.503692
- Title: Real-World Fault Detection for C-Extended Python Projects with Automated Unit Test Generation
- Title(参考訳): 自動単体テスト生成によるC拡張Pythonプロジェクトの実時間故障検出
- Authors: Lucas Berg, Lukas Krodinger, Stephan Lukasczyk, Annibale Panichella, Gordon Fraser, Wim Vanhoof, Xavier Devroey,
- Abstract要約: Pythonライブラリはパフォーマンスクリティカルな操作にC拡張を使用する。
C言語で発生した例外はPythonの例外処理をバイパスし、インタプリタ全体をクラッシュさせる。
テスト生成プロセスの生成と実行の段階を分離することを提案する。
- 参考スコア(独自算出の注目度): 14.579734219257224
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Many popular Python libraries use C-extensions for performance-critical operations allowing users to combine the best of the two worlds: The simplicity and versatility of Python and the performance of C. A drawback of this approach is that exceptions raised in C can bypass Python's exception handling and cause the entire interpreter to crash. These crashes are real faults if they occur when calling a public API. While automated test generation should, in principle, detect such faults, crashes in native code can halt the test process entirely, preventing detection or reproduction of the underlying errors and inhibiting coverage of non-crashing parts of the code. To overcome this problem, we propose separating the generation and execution stages of the test-generation process. We therefore adapt Pynguin, an automated test case generation tool for Python, to use subprocess-execution. Executing each generated test in an isolated subprocess prevents a crash from halting the test generation process itself. This allows us to (1) detect such faults, (2) generate reproducible crash-revealing test cases for them, (3) allow studying the underlying faults, and (4) enable test generation for non-crashing parts of the code. To evaluate our approach, we created a dataset consisting of 1648 modules from 21 popular Python libraries with C-extensions. Subprocess-execution allowed automated testing of up to 56.5% more modules and discovered 213 unique crash causes, revealing 32 previously unknown faults.
- Abstract(参考訳): 多くの人気のあるPythonライブラリは、パフォーマンスクリティカルな操作にC拡張を使用しているため、ユーザは2つの世界のベストを組み合わせることができる: Pythonの単純さとCのパフォーマンスの汎用性。
これらのクラッシュは、パブリックAPIを呼び出すときに発生する真の障害である。
自動テスト生成は、原則としてそのような障害を検出するべきであるが、ネイティブコードのクラッシュはテストプロセスを完全に停止し、基盤となるエラーの検出や再現を防止し、コードの非クラッシュ部分のカバレッジを阻害する。
そこで本研究では,テスト生成プロセスの生成段階と実行段階を分離することを提案する。
したがって、Python用の自動テストケース生成ツールであるPynguinをサブプロセス実行に適応させる。
分離されたサブプロセスで生成された各テストを実行すると、クラッシュがテスト生成プロセス自体を停止するのを防ぐ。
これにより、(1)そのような障害を検出し、(2)再現可能なクラッシュ防止テストケースを生成し、(3)基礎となる障害を研究できるようにし、(4)コードの非破壊部分のテスト生成を可能にする。
このアプローチを評価するために、C拡張を備えた21の人気のあるPythonライブラリから1648のモジュールからなるデータセットを作成しました。
サブプロセス実行により56.5%以上のモジュールの自動テストが可能となり、213のユニークなクラッシュ原因を発見し、32の障害が発見された。
関連論文リスト
- Constraint-Guided Unit Test Generation for Machine Learning Libraries [8.883254370291256]
PyTorchやtensorといった機械学習(ML)ライブラリは、幅広い現代的なアプリケーションに必須である。
テストを通じてMLライブラリの正しさを保証することが重要です。
本稿では,これらの制約を活用するためにPynguinテストジェネレータを改善するアプローチであるPynguinMLを提案する。
論文 参考訳(メタデータ) (2025-10-10T08:02:15Z) - Reflective Unit Test Generation for Precise Type Error Detection with Large Language Models [13.969152395348653]
RTEDはPythonの型エラーを自動的に検出する型認識テスト生成技術である。
RTEDは4つの最先端技術よりも22-29のベンチマーク型エラーを検出できることを示す。
また、偽陽性を減らし、173.9%-245.9%の精度で改善できる。
論文 参考訳(メタデータ) (2025-07-03T05:10:33Z) - Bugs in the Shadows: Static Detection of Faulty Python Refactorings [44.115219601924856]
Pythonの動的型システムは、自動コード変換に重大な課題をもたらす。
分析の結果,合計1,152回の試行の結果,4種類の29のバグが判明した。
これらの結果は、自動コード変換の正確性を保証するために、現在のPythonツールの堅牢性を改善する必要性を強調している。
論文 参考訳(メタデータ) (2025-07-01T18:03:56Z) - PyResBugs: A Dataset of Residual Python Bugs for Natural Language-Driven Fault Injection [5.383910843560784]
PyResBugsは、主要なPythonフレームワークからの残留バグのデータセットである。
各バグは、対応するフォールトフリー(固定)バージョンとペアリングされ、マルチレベル自然言語(NL)記述と注釈付けされる。
論文 参考訳(メタデータ) (2025-05-09T04:39:09Z) - Type-aware LLM-based Regression Test Generation for Python Programs [13.631541369653066]
Test4PyはPythonの自動テスト生成における型正しさを高める新しいフレームワークである。
Test4Pyは、生成したテストケースを段階的に洗練してカバレッジを改善する反復的な修復手順を統合する。
実世界のPythonモジュール183の評価において、Test4Pyは平均ステートメントカバレッジ83.0%、ブランチカバレッジ70.8%を達成した。
論文 参考訳(メタデータ) (2025-03-18T08:07:17Z) - PyPulse: A Python Library for Biosignal Imputation [58.35269251730328]
PyPulseは,臨床およびウェアラブルの両方のセンサ設定において生体信号の計算を行うPythonパッケージである。
PyPulseのフレームワークは、非機械学習バイオリサーバーを含む幅広いユーザーベースに対して、使い勝手の良いモジュラーで拡張可能なフレームワークを提供する。
PyPulseはMITライセンスでGithubとPyPIでリリースしました。
論文 参考訳(メタデータ) (2024-12-09T11:00:55Z) - On Leakage of Code Generation Evaluation Datasets [44.4726918027046]
コード生成テストセットによる汚染について考察する。
これを解決するために、LBPP(Less Basic Python Problems)をリリースします。
論文 参考訳(メタデータ) (2024-07-10T11:50:20Z) - SBFT Tool Competition 2024 -- Python Test Case Generation Track [4.149356993529412]
Pythonのテストケース生成(TCG)は、言語の動的性質と厳密な型情報がないため、独特な課題を生じさせる。
従来の研究では、Python用の自動ユニットTCGの探索に成功しており、ランダムなテスト生成方法よりも優れたソリューションが提供されている。
本稿では,提案手法,競合ツールと組み合わせた結果の分析,および競合実験の実施時に直面する課題について述べる。
論文 参考訳(メタデータ) (2024-01-26T20:21:15Z) - 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) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。