論文の概要: Mimicking Production Behavior with Generated Mocks
- arxiv url: http://arxiv.org/abs/2208.01321v3
- Date: Wed, 10 Jul 2024 13:19:20 GMT
- ステータス: 処理完了
- システム内更新日: 2024-07-11 22:39:21.060474
- Title: Mimicking Production Behavior with Generated Mocks
- Title(参考訳): 発生モックによる生産挙動の模倣
- Authors: Deepika Tiwari, Martin Monperrus, Benoit Baudry,
- Abstract要約: 実運用環境でのアプリケーションを監視して,モックによる現実的な実行シナリオを模倣するテストを生成することを提案する。
まず、テストを生成するための一連のターゲットメソッドと、それらが呼び出すメソッドを設定します。
第2に、本番環境では、ターゲットメソッドが呼び出されるコンテキストに関するデータと、モック可能なメソッド呼び出し毎にパラメータと返される値を収集します。
第3にオフラインでは、実運用データを分析して、現実的なインプットとモックインタラクションでテストケースを生成します。
- 参考スコア(独自算出の注目度): 11.367562045401554
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Mocking in the context of automated software tests allows testing program units in isolation. Designing realistic interactions between a unit and its environment, and understanding the expected impact of these interactions on the behavior of the unit, are two key challenges that software testers face when developing tests with mocks. In this paper, we propose to monitor an application in production to generate tests that mimic realistic execution scenarios through mocks. Our approach operates in three phases. First, we instrument a set of target methods for which we want to generate tests, as well as the methods that they invoke, which we refer to as mockable method calls. Second, in production, we collect data about the context in which target methods are invoked, as well as the parameters and the returned value for each mockable method call. Third, offline, we analyze the production data to generate test cases with realistic inputs and mock interactions. The approach is automated and implemented in an open-source tool called RICK. We evaluate our approach with 3 real-world, open-source Java applications. RICK monitors the invocation of 128 methods in production across the 3 applications and captures their behavior. Based on this captured data, RICK generates test cases that include realistic initial states and test inputs, mocks, and stubs. The three kinds of mock-based oracles generated by RICK verify the actual interactions between the method and its environment. All the generated test cases are executable, and 52.4% of them successfully mimic the complete execution context of the methods observed in production. The mock-based oracles are effective at detecting regressions within the target methods, complementing each other in their fault-finding ability. We interview 5 developers from the industry who confirm the relevance of using production observations to design mocks and stubs.
- Abstract(参考訳): 自動ソフトウェアテストのコンテキストでモックすることで、プログラムユニットを独立した形でテストすることができる。
ユニットと環境の間の現実的な相互作用を設計し、これらの相互作用がユニットの振る舞いに与える影響を理解することは、ソフトウェアテスタがモックを使ってテストを開発する際に直面する2つの重要な課題である。
本稿では,モックによる現実的な実行シナリオを模倣したテストを生成するために,本番環境でのアプリケーションの監視を提案する。
私たちのアプローチは3つのフェーズで機能します。
まず、テストを生成したいターゲットメソッドのセットと、それらが呼び出しているメソッドをモック可能なメソッド呼び出しと呼びます。
第2に、本番環境では、ターゲットメソッドが呼び出されるコンテキストに関するデータと、モック可能なメソッド呼び出し毎にパラメータと返される値を収集します。
第3にオフラインでは、実運用データを分析して、現実的なインプットとモックインタラクションでテストケースを生成します。
このアプローチは自動化され、RICKと呼ばれるオープンソースのツールで実装されている。
3つの実世界のオープンソースのJavaアプリケーションで、我々のアプローチを評価します。
RICKは3つのアプリケーション間で128のメソッドの本番環境での呼び出しを監視し、その振る舞いをキャプチャする。
このキャプチャデータに基づいて、RICKは現実的な初期状態やテストインプット、モック、スタブを含むテストケースを生成する。
RICKによって生成される3種類のモックベースのオラクルは、メソッドと環境の間の実際の相互作用を検証する。
生成されたテストケースはすべて実行可能であり、52.4%は本番環境で観察されたメソッドの完全な実行コンテキストをうまく模倣している。
モックベースのオラクルは、ターゲットメソッド内の回帰を検出するのに有効であり、フォールトフィニング能力において互いに補完する。
業界から5人の開発者に対してインタビューを行い、モックやスタブの設計に生産観察を使うことの関連性を確認しました。
関連論文リスト
- Mock Deep Testing: Toward Separate Development of Data and Models for Deep Learning [21.563130049562357]
本研究では,ディープラーニングアプリケーションの単体テストのためのモックディープテスト手法を紹介する。
単体テストを可能にするために、ワークフローを独立した管理可能なコンポーネントに分解する設計パラダイムを導入します。
Kerasライブラリのモックディープテストを可能にするフレームワークであるKUnitを開発しました。
論文 参考訳(メタデータ) (2025-02-11T17:11:11Z) - Revisit Self-Debugging with Self-Generated Tests for Code Generation [18.643472696246686]
自己生成テストによる自己改善は、有望なソリューションだが、その限界と現実的な可能性を十分に探求することができない。
プロセスにはポストエグゼクティブとインエグゼクティブ自己老化という2つのパラダイムを提案する。
実行後の自己老化は基本的な問題に苦しむが、自己生成テストによって生じるバイアスのため、競合する問題の改善の可能性を示す。
論文 参考訳(メタデータ) (2025-01-22T10:54:19Z) - ViUniT: Visual Unit Tests for More Robust Visual Programming [104.55763189099125]
モデルが正しく答えると、不正なプログラムを33%生成します。
自動単体テストを生成することで、視覚プログラムの信頼性を向上させるためのフレームワークであるVisual Unit Testing (ViUniT)を提案する。
論文 参考訳(メタデータ) (2024-12-12T01:36:18Z) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - ASSERTIFY: Utilizing Large Language Models to Generate Assertions for Production Code [0.7973214627863593]
プロダクションアサーションは、開発者がコードに関する仮定を検証するのを助けるために、コードに埋め込まれたステートメントである。
静的解析やディープラーニングのような現在のアサーション生成技術は、プロダクションアサーションの生成に関して不足している。
このプレプリントは、LLM(Large Language Models)を活用した自動エンドツーエンドツールであるAssertifyを導入し、エンジニアリングにプロダクションアサーションを生成することで、ギャップに対処する。
論文 参考訳(メタデータ) (2024-11-25T20:52:28Z) - LLM-based Unit Test Generation via Property Retrieval [26.906316611858518]
プロパティベースのRetrieval Augmentationは、基本的なベクトル、テキスト類似性、グラフベースのメソッドを超えてLLMベースのRetrieval-Augmented Generationを拡張する。
提案手法では,タスク固有のコンテキストを考慮し,プロパティ検索機構を導入している。
提案手法は,前処理,プロパティ検索,単体テスト生成を逐次実行するAPTと呼ばれるツールに実装する。
論文 参考訳(メタデータ) (2024-10-17T13:33:12Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Re-Evaluating LiDAR Scene Flow for Autonomous Driving [80.37947791534985]
自己教師型LiDARシーンフローの一般的なベンチマークは、動的動き、非現実的な対応、非現実的なサンプリングパターンの非現実的な速度を持つ。
実世界のデータセットのスイート上で,トップメソッドのスイートを評価する。
学習に重点を置いているにもかかわらず、ほとんどのパフォーマンス向上は前処理と後処理のステップによって引き起こされる。
論文 参考訳(メタデータ) (2023-04-04T22:45:50Z) - Benchopt: Reproducible, efficient and collaborative optimization
benchmarks [67.29240500171532]
Benchoptは、機械学習で最適化ベンチマークを自動化、再生、公開するためのフレームワークである。
Benchoptは実験を実行、共有、拡張するための既製のツールを提供することで、コミュニティのベンチマークを簡単にする。
論文 参考訳(メタデータ) (2022-06-27T16:19:24Z) - Visual Transformer for Task-aware Active Learning [49.903358393660724]
プールベースのアクティブラーニングのための新しいパイプラインを提案する。
提案手法は,学習中に使用可能なアンラベリング例を利用して,ラベル付き例との相関関係を推定する。
ビジュアルトランスフォーマーは、ラベル付き例と非ラベル付き例の間の非ローカルビジュアル概念依存性をモデル化する。
論文 参考訳(メタデータ) (2021-06-07T17:13:59Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。