論文の概要: Mimicking Production Behavior with Generated Mocks
- arxiv url: http://arxiv.org/abs/2208.01321v2
- Date: Tue, 18 Jul 2023 15:59:03 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-24 15:19:18.798965
- Title: Mimicking Production Behavior with Generated Mocks
- Title(参考訳): 生成モックによる生産行動の模倣
- Authors: Deepika Tiwari, Martin Monperrus, Benoit Baudry
- Abstract要約: 実運用環境でのアプリケーションを監視して,モックによる現実的な実行シナリオを模倣するテストを生成することを提案する。
まず、テストを生成するための一連のターゲットメソッドと、それらが呼び出すメソッドを設定します。
第2に、本番環境では、ターゲットメソッドが呼び出されるコンテキストに関するデータと、モック可能なメソッド呼び出し毎にパラメータと返される値を収集します。
第3にオフラインでは、実運用データを分析して、現実的なインプットとモックインタラクションでテストケースを生成します。
- 参考スコア(独自算出の注目度): 12.776000540274154
- 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。