論文の概要: Mimicking Production Behavior with Generated Mocks
- arxiv url: http://arxiv.org/abs/2208.01321v4
- Date: Tue, 10 Sep 2024 11:00:02 GMT
- ステータス: 処理完了
- システム内更新日: 2024-09-12 00:08:16.446522
- Title: Mimicking Production Behavior with Generated Mocks
- Title(参考訳): 発生モックによる生産挙動の模倣
- Authors: Deepika Tiwari, Martin Monperrus, Benoit Baudry,
- Abstract要約: 実運用環境でのアプリケーションを監視して,モックによる現実的な実行シナリオを模倣するテストを生成することを提案する。
このアプローチは自動化され、RICKと呼ばれるオープンソースのツールで実装されている。
生成されたテストケースはすべて実行可能であり、52.4%は本番環境で観測されたターゲットメソッドの完全な実行コンテキストをうまく模倣している。
- 参考スコア(独自算出の注目度): 11.367562045401554
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Mocking allows testing program units in isolation. A developer who writes tests with mocks faces two challenges: design realistic interactions between a unit and its environment; and understand the expected impact of these interactions on the behavior of the unit. 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 three real-world, open-source Java applications. RICK monitors the invocation of 128 methods in production across the three applications and captures their behavior. Based on this captured data, RICK generates test cases that include realistic initial states and test inputs, as well as mocks and stubs. All the generated test cases are executable, and 52.4% of them successfully mimic the complete execution context of the target methods observed in production. The mock-based oracles are also 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. Our experimental findings clearly demonstrate the feasibility and added value of generating mocks from production interactions.
- Abstract(参考訳): モッキングは、プログラムユニットを独立した形でテストすることを可能にする。
モックを使ってテストを書く開発者は、ユニットと環境の間の現実的な相互作用を設計すること、これらの相互作用がユニットの振る舞いに与える影響について理解することの2つの課題に直面します。
本稿では,モックによる現実的な実行シナリオを模倣したテストを生成するために,本番環境でのアプリケーションの監視を提案する。
私たちのアプローチは3つのフェーズで機能します。
まず、テストを生成したいターゲットメソッドのセットと、それらが呼び出しているメソッドをモック可能なメソッド呼び出しと呼びます。
第2に、本番環境では、ターゲットメソッドが呼び出されるコンテキストに関するデータと、モック可能なメソッド呼び出し毎にパラメータと返される値を収集します。
第3にオフラインでは、実運用データを分析して、現実的なインプットとモックインタラクションでテストケースを生成します。
このアプローチは自動化され、RICKと呼ばれるオープンソースのツールで実装されている。
われわれのアプローチを3つの実世界のオープンソースJavaアプリケーションで評価する。
RICKは3つのアプリケーション間で128のメソッドの本番環境での呼び出しを監視し、その振る舞いをキャプチャする。
このキャプチャデータに基づいて、RICKは実際の初期状態やテスト入力、モックやスタブを含むテストケースを生成する。
生成されたテストケースはすべて実行可能であり、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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。