論文の概要: 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人の開発者に対してインタビューを行い、モックやスタブの設計に生産観察を使うことの関連性を確認しました。
実験結果から,製品間相互作用からモックを生成する可能性と付加価値が明らかとなった。
関連論文リスト
- 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) - Generative Judge for Evaluating Alignment [84.09815387884753]
本稿では,これらの課題に対処するために,13Bパラメータを持つ生成判断器Auto-Jを提案する。
我々のモデルは,大規模な実環境シナリオ下でのユーザクエリとLLM生成応答に基づいて訓練されている。
実験的に、Auto-Jはオープンソースモデルとクローズドソースモデルの両方を含む、強力なライバルのシリーズを上回っている。
論文 参考訳(メタデータ) (2023-10-09T07:27:15Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - SAGA: Summarization-Guided Assert Statement Generation [34.51502565985728]
本稿では,アサート文の自動生成のための新しい要約誘導手法を提案する。
我々は、事前訓練された言語モデルを参照アーキテクチャとして利用し、アサート文生成のタスクでそれを微調整する。
論文 参考訳(メタデータ) (2023-05-24T07:03:21Z) - Re-Evaluating LiDAR Scene Flow for Autonomous Driving [80.37947791534985]
自己教師型LiDARシーンフローの一般的なベンチマークは、動的動き、非現実的な対応、非現実的なサンプリングパターンの非現実的な速度を持つ。
実世界のデータセットのスイート上で,トップメソッドのスイートを評価する。
学習に重点を置いているにもかかわらず、ほとんどのパフォーマンス向上は前処理と後処理のステップによって引き起こされる。
論文 参考訳(メタデータ) (2023-04-04T22:45:50Z) - Operationalizing Machine Learning: An Interview Study [13.300075655862573]
私たちは18人の機械学習エンジニア(MLE)と半構造化インタビューを行い、多くのアプリケーションで作業しています。
私たちのインタビューでは、運用MLデプロイメントの成功を管理する変数として、Velocity、Validation、Versioningの3つを公開しています。
ML実験の成功、デプロイメント、運用パフォーマンスの維持に関する一般的なプラクティスを要約します。
論文 参考訳(メタデータ) (2022-09-16T16:59:36Z) - 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) - S3M: Siamese Stack (Trace) Similarity Measure [55.58269472099399]
本稿では、深層学習に基づくスタックトレースの類似性を計算する最初のアプローチであるS3Mを紹介します。
BiLSTMエンコーダと、類似性を計算するための完全接続型分類器をベースとしている。
私たちの実験は、オープンソースデータとプライベートなJetBrainsデータセットの両方において、最先端のアプローチの優位性を示しています。
論文 参考訳(メタデータ) (2021-03-18T21:10:41Z) - Generating Accurate Assert Statements for Unit Test Cases using
Pretrained Transformers [10.846226514357866]
単体テストは、ソフトウェアテストピラミッドの基礎となる基礎である。
正確で有用なアサーション文を生成することによって、開発者が単体テストケースを書くのを支援するアプローチを提案する。
論文 参考訳(メタデータ) (2020-09-11T19:35:09Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。