論文の概要: Client--Library Compatibility Testing with API Interaction Snapshots
- arxiv url: http://arxiv.org/abs/2507.20814v1
- Date: Mon, 28 Jul 2025 13:22:19 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-07-29 16:23:58.135032
- Title: Client--Library Compatibility Testing with API Interaction Snapshots
- Title(参考訳): クライアント--APIインタラクションスナップショットによるライブラリ互換性テスト
- Authors: Gustave Monce, Thomas Degueule, Jean-Rémy Falleri, Romain Robbes,
- Abstract要約: 動作の破壊的変更(BBC)は、コンパイル時に検出されることなく、クライアントアプリケーションを静かに破壊することができる。
クライアント側の従来の回帰テストは、しばしばそのようなBBCを検出するのに失敗する。
本稿では,既存のクライアントテストを活用するクライアント-ライブラリ互換性テストに対する新しいアプローチを提案する。
- 参考スコア(独自算出の注目度): 6.2272693929051295
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Modern software development heavily relies on third-party libraries to speed up development and enhance quality. As libraries evolve, they may break the tacit contract established with their clients by introducing behavioral breaking changes (BBCs) that alter run-time behavior and silently break client applications without being detected at compile time. Traditional regression tests on the client side often fail to detect such BBCs, either due to limited library coverage or weak assertions that do not sufficiently exercise the library's expected behavior. To address this issue, we propose a novel approach to client--library compatibility testing that leverages existing client tests in a novel way. Instead of relying on developer-written assertions, we propose recording the actual interactions at the API boundary during the execution of client tests (protocol, input and output values, exceptions, etc.). These sequences of API interactions are stored as snapshots which capture the exact contract expected by a client at a specific point in time. As the library evolves, we compare the original and new snapshots to identify perturbations in the contract, flag potential BBCs, and notify clients. We implement this technique in our prototype tool Gilesi, a Java framework that automatically instruments library APIs, records snapshots, and compares them. Through a preliminary case study on several client--library pairs with artificially seeded BBCs, we show that Gilesi reliably detects BBCs missed by client test suites.
- Abstract(参考訳): 現代のソフトウェア開発は、開発をスピードアップし、品質を向上させるために、サードパーティのライブラリに大きく依存している。
ライブラリが進化するにつれて、コンパイル時に検出されることなく、実行時の動作を変更し、クライアントアプリケーションを静かに破壊する振舞い変更(BBC)を導入することで、クライアントが確立した暗黙の契約を破る可能性がある。
クライアント側の従来の回帰テストは、ライブラリのカバレッジが制限されたり、ライブラリの期待する振る舞いを十分に満たさないようなアサーションが弱いため、そのようなBBCを検知できないことが多い。
この問題に対処するために,既存のクライアントテストを活用するクライアント-ライブラリ互換性テストに対する新しいアプローチを提案する。
開発者が記述したアサーションに頼る代わりに、クライアントテスト(プロトコル、入出力値、例外など)の実行中のAPIバウンダリでの実際のインタラクションを記録することを提案する。
これらのAPIインタラクションのシーケンスはスナップショットとして格納され、特定の時点でクライアントが期待する正確なコントラクトをキャプチャする。
ライブラリが進化するにつれて、最初のスナップショットと新しいスナップショットを比較して、契約の摂動を特定し、潜在的なBBCにフラグを付け、クライアントに通知します。
私たちはこのテクニックを,ライブラリAPIを自動計測し,スナップショットを記録して比較するJavaフレームワークであるGilesiのプロトタイプツールに実装しています。
人工シードBBCを用いたクライアント-ライブラリペアの予備ケーススタディにより,Gilesiがクライアントテストスイートで欠落したBBCを確実に検出できることが判明した。
関連論文リスト
- Understanding API Usage and Testing: An Empirical Study of C Libraries [0.2532202013576546]
この研究は、C/C++エコシステムの規模でAPI使用率とAPIテストを比較する最初のものである。
我々はLibProbeを開発した。LibProbeはライブラリの大規模なコーパスを分析できるフレームワークだ。
論文 参考訳(メタデータ) (2025-06-13T09:07:16Z) - LlamaRestTest: Effective REST API Testing with Small Language Models [50.058600784556816]
LlamaRestTestは、2つのLLM(Large Language Models)を使って現実的なテストインプットを生成する新しいアプローチである。
私たちは、GPTを使った仕様強化ツールであるRESTGPTなど、最先端のREST APIテストツールに対して、これを評価しています。
私たちの研究は、REST APIテストにおいて、小さな言語モデルは、大きな言語モデルと同様に、あるいは、より良く機能することができることを示しています。
論文 参考訳(メタデータ) (2025-01-15T05:51:20Z) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - Model Equality Testing: Which Model Is This API Serving? [59.005869726179455]
APIプロバイダは、基本モデルの定量化、透かし、微調整を行い、出力分布を変更することができる。
モデル平等テスト(Model Equality Testing)は,2サンプルテスト問題である。
単純な文字列カーネル上に構築されたテストは、歪みの範囲に対して77.4%の中央値を達成する。
論文 参考訳(メタデータ) (2024-10-26T18:34:53Z) - KAT: Dependency-aware Automated API Testing with Large Language Models [1.7264233311359707]
KAT(Katalon API Testing)は、APIを検証するためのテストケースを自律的に生成する、AI駆動の新たなアプローチである。
実世界の12のサービスを用いたKATの評価は、検証カバレッジを改善し、文書化されていないステータスコードを検出し、これらのサービスの偽陽性を低減できることを示している。
論文 参考訳(メタデータ) (2024-07-14T14:48:18Z) - Lightweight Syntactic API Usage Analysis with UCov [0.0]
本稿では,ライブラリメンテナのAPIによるインタラクション理解を支援するための,新しい概念フレームワークを提案する。
これらのカスタマイズ可能なモデルにより、ライブラリメンテナはリリース前に設計を改善することができ、進化中の摩擦を減らすことができる。
我々は,これらのモデルを新しいツールUCovに実装し,多様なインタラクションスタイルを示す3つのライブラリ上でその能力を実証する。
論文 参考訳(メタデータ) (2024-02-19T10:33:41Z) - CompSuite: A Dataset of Java Library Upgrade Incompatibility Issues [25.189328666070107]
CompSuiteは123の現実世界のJavaクライアント-ライブラリペアを含むデータセットで、ライブラリのアップグレードは非互換性の問題を引き起こします。
CompSuiteの各非互換性問題は、開発者によって書かれたテストケースに関連付けられており、この問題を再現するために使用できる。
論文 参考訳(メタデータ) (2023-05-15T14:26:14Z) - SequeL: A Continual Learning Library in PyTorch and JAX [50.33956216274694]
SequeLは継続学習のためのライブラリで、PyTorchとJAXフレームワークの両方をサポートする。
それは、正規化ベースのアプローチ、リプレイベースのアプローチ、ハイブリッドアプローチを含む、幅広い連続学習アルゴリズムのための統一インターフェースを提供する。
私たちはSequeLをオープンソースライブラリとしてリリースし、研究者や開発者が自身の目的で簡単にライブラリを実験し拡張することができます。
論文 参考訳(メタデータ) (2023-04-21T10:00:22Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。