論文の概要: Understanding API Usage and Testing: An Empirical Study of C Libraries
- arxiv url: http://arxiv.org/abs/2506.11598v1
- Date: Fri, 13 Jun 2025 09:07:16 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-06-16 17:50:49.728543
- Title: Understanding API Usage and Testing: An Empirical Study of C Libraries
- Title(参考訳): API使用状況とテストを理解する - Cライブラリの実証的研究
- Authors: Ahmed Zaki, Cristian Cadar,
- Abstract要約: この研究は、C/C++エコシステムの規模でAPI使用率とAPIテストを比較する最初のものである。
我々はLibProbeを開発した。LibProbeはライブラリの大規模なコーパスを分析できるフレームワークだ。
- 参考スコア(独自算出の注目度): 0.2532202013576546
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: For library developers, understanding how their Application Programming Interfaces (APIs) are used in the field can be invaluable. Knowing how clients are using their APIs allows for data-driven decisions on prioritising bug reports, feature requests, and testing activities. For example, the priority of a bug report concerning an API can be partly determined by how widely that API is used. In this paper, we present an empirical study in which we analyse API usage across 21 popular open-source C libraries, such as OpenSSL and SQLite, with a combined total of 3,061 C/C++ clients. We compare API usage by clients with how well library test suites exercise the APIs to offer actionable insights for library developers. To our knowledge, this is the first study that compares API usage and API testing at scale for the C/C++ ecosystem. Our study shows that library developers do not prioritise their effort based on how clients use their API, with popular APIs often poorly tested. For example, in LMDB, a popular key-value store, 45% of the APIs are used by clients but not tested by the library test suite. We further show that client test suites can be leveraged to improve library testing e.g., improving coverage in LMDB by 14.7% with the important advantage that those tests are representative of how the APIs are used in the field. For our empirical study, we have developed LibProbe, a framework that can be used to analyse a large corpus of clients for a given library and produce various metrics useful to library developers.
- Abstract(参考訳): ライブラリ開発者にとっては、アプリケーションプログラミングインターフェース(API)がこの分野でどのように使われているかを理解することは、非常に重要なことです。
クライアントがAPIをどのように使っているかを知ることで、バグレポートや機能要求、テストアクティビティの優先順位付けに関するデータ駆動的な決定が可能になる。
例えば、APIに関するバグレポートの優先度は、そのAPIがどの程度広く使用されているかによって部分的に決定できる。
本稿では,OpenSSLやSQLiteなど,21のオープンソースCライブラリのAPI使用状況を分析し,合計3,061のC/C++クライアントについて分析する。
私たちは、クライアントによるAPI使用率と、ライブラリテストスイートがライブラリ開発者に実行可能な洞察を提供するために、APIをどの程度うまく動作させるかを比較します。
私たちの知る限り、これはC/C++エコシステムの規模でAPI使用率とAPIテストを比較する最初の研究です。
私たちの調査によると、ライブラリ開発者は、クライアントがAPIをどのように利用するかに基づいて、自分たちの努力を優先していない。
例えば、人気のキーバリューストアであるLMDBでは、APIの45%がクライアントによって使用されるが、ライブラリテストスイートではテストされない。
さらに、クライアントテストスイートを活用して、例えばライブラリテストを改善し、LMDBのカバレッジを14.7%向上させることも示しています。
LibProbeは、ライブラリの大規模なコーパスを分析し、ライブラリ開発者にとって有用なさまざまなメトリクスを作成できるフレームワークです。
関連論文リスト
- Your Fix Is My Exploit: Enabling Comprehensive DL Library API Fuzzing with Large Language Models [49.214291813478695]
AIアプリケーションで広く使用されているディープラーニング(DL)ライブラリは、オーバーフローやバッファフリーエラーなどの脆弱性を含むことが多い。
従来のファジィングはDLライブラリの複雑さとAPIの多様性に悩まされている。
DLライブラリのためのLLM駆動ファジィ手法であるDFUZZを提案する。
論文 参考訳(メタデータ) (2025-01-08T07:07:22Z) - ExploraCoder: Advancing code generation for multiple unseen APIs via planning and chained exploration [70.26807758443675]
ExploraCoderはトレーニング不要のフレームワークで、大規模な言語モデルにコードソリューションで見えないAPIを呼び出す権限を与える。
ExploraCoderは,事前のAPI知識を欠いたモデルのパフォーマンスを著しく向上させ,NAGアプローチの11.24%,pass@10の事前トレーニングメソッドの14.07%を絶対的に向上させることを示す。
論文 参考訳(メタデータ) (2024-12-06T19:00:15Z) - A Systematic Evaluation of Large Code Models in API Suggestion: When, Which, and How [53.65636914757381]
API提案は、現代のソフトウェア開発において重要なタスクである。
大規模コードモデル(LCM)の最近の進歩は、API提案タスクにおいて有望であることを示している。
論文 参考訳(メタデータ) (2024-09-20T03:12:35Z) - An Empirical Study of API Misuses of Data-Centric Libraries [9.667988837321943]
本稿では,データ処理,数値計算,機械学習,可視化などの分野をカバーする5つのデータ中心ライブラリのAPI誤用に関する実証的研究を行う。
Stack OverflowとGitHubのデータを分析することで、これらのライブラリの誤用を特定します。
論文 参考訳(メタデータ) (2024-08-28T15:15:52Z) - A Solution-based LLM API-using Methodology for Academic Information Seeking [49.096714812902576]
SoAyは学術情報検索のためのソリューションベースのLLM API利用方法論である。
ソリューションが事前に構築されたAPI呼び出しシーケンスである場合、推論メソッドとしてソリューションを備えたコードを使用する。
その結果、最先端のLLM APIベースのベースラインと比較して34.58-75.99%のパフォーマンス改善が見られた。
論文 参考訳(メタデータ) (2024-05-24T02:44:14Z) - Lightweight Syntactic API Usage Analysis with UCov [0.0]
本稿では,ライブラリメンテナのAPIによるインタラクション理解を支援するための,新しい概念フレームワークを提案する。
これらのカスタマイズ可能なモデルにより、ライブラリメンテナはリリース前に設計を改善することができ、進化中の摩擦を減らすことができる。
我々は,これらのモデルを新しいツールUCovに実装し,多様なインタラクションスタイルを示す3つのライブラリ上でその能力を実証する。
論文 参考訳(メタデータ) (2024-02-19T10:33:41Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z) - Automatic Unit Test Generation for Deep Learning Frameworks based on API
Knowledge [11.523398693942413]
ディープラーニングフレームワークのAPIの単体テストケースを生成するために,MUTesterを提案する。
まず、APIドキュメントからAPI制約をマイニングするための18のルールを提案する。
次に、頻繁なアイテムセットマイニング技術を使用して、マシンラーニングAPI関連のコードフラグメントの大規模なコーパスからAPI使用パターンをマイニングします。
論文 参考訳(メタデータ) (2023-07-01T18:34:56Z) - Carving UI Tests to Generate API Tests and API Specification [8.743426215048451]
APIレベルのテストは、単体レベルのテストとUIレベルの(あるいはエンドツーエンドの)テストの間で重要な役割を果たす。
既存のAPIテストツールにはAPI仕様が必要である。
WebアプリケーションのAPIレベルのテストを可能にするために,UIテストを活用するアプローチを提案する。
論文 参考訳(メタデータ) (2023-05-24T03:53:34Z) - Evaluating Embedding APIs for Information Retrieval [51.24236853841468]
ドメインの一般化と多言語検索における既存のセマンティック埋め込みAPIの機能を評価する。
BM25の結果をAPIを使って再ランク付けすることは、予算に優しいアプローチであり、英語でもっとも効果的である。
非英語検索では、再ランク付けは結果を改善するが、BM25のハイブリッドモデルは高いコストで機能する。
論文 参考訳(メタデータ) (2023-05-10T16:40:52Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。