論文の概要: LLM Based Input Space Partitioning Testing for Library APIs
- arxiv url: http://arxiv.org/abs/2501.05456v1
- Date: Sun, 15 Dec 2024 17:50:50 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-01-19 09:33:23.836239
- Title: LLM Based Input Space Partitioning Testing for Library APIs
- Title(参考訳): LLMによるライブラリAPIの入力空間分割テスト
- Authors: Jiageng Li, Zhen Dong, Chong Wang, Haozhen You, Cen Zhang, Yang Liu, Xin Peng,
- Abstract要約: ライブラリAPIテストのための LLM ベースの入力空間分割テスト手法 LISP を提案する。
LISPを10の人気のあるオープンソースJavaライブラリから抽出した2,205以上のライブラリAPIメソッドで評価する。
平均して、LISPは67.82%のブランチカバレッジを獲得し、EvoSuiteを1.21倍上回っている。
- 参考スコア(独自算出の注目度): 13.070272424794744
- License:
- Abstract: Automated library APIs testing is difficult as it requires exploring a vast space of parameter inputs that may involve objects with complex data types. Existing search based approaches, with limited knowledge of relations between object states and program branches, often suffer from the low efficiency issue, i.e., tending to generate invalid inputs. Symbolic execution based approaches can effectively identify such relations, but fail to scale to large programs. In this work, we present an LLM-based input space partitioning testing approach, LISP, for library APIs. The approach leverages LLMs to understand the code of a library API under test and perform input space partitioning based on its understanding and rich common knowledge. Specifically, we provide the signature and code of the API under test to LLMs, with the expectation of obtaining a text description of each input space partition of theAPI under test. Then, we generate inputs through employing the generated text description to sample inputs from each partition, ultimately resulting in test suites that systematically explore the program behavior of the API. We evaluate LISP on more than 2,205 library API methods taken from 10 popular open-source Java libraries (e.g.,apache/commonslang with 2.6k stars, guava with 48.8k stars on GitHub). Our experiment results show that LISP is effective in library API testing. It significantly outperforms state-of-the-art tool EvoSuite in terms of edge coverage. On average, LISP achieves 67.82% branch coverage, surpassing EvoSuite by 1.21 times. In total, LISP triggers 404 exceptions or errors in the experiments, and discovers 13 previously unknown vulnerabilities during evaluation, which have been assigned CVE IDs.
- Abstract(参考訳): 複雑なデータ型を持つオブジェクトを含む可能性のあるパラメータ入力の広大なスペースを探索する必要があるため、自動ライブラリAPIのテストは難しい。
既存の検索ベースのアプローチでは、オブジェクトの状態とプログラムの分岐の関係に関する知識が限られており、しばしば低効率の問題、すなわち、無効な入力を生成する傾向がある。
シンボリックな実行に基づくアプローチは、そのような関係を効果的に識別できるが、大規模なプログラムにスケールできない。
本稿では,ライブラリAPIのための LLM ベースの入力空間分割テスト手法 LISP を提案する。
このアプローチはLLMを活用して、テスト中のライブラリAPIのコードを理解し、その理解と豊富な共通知識に基づいて入力空間分割を実行する。
具体的には、テスト中のAPIのシグネチャとコードをLCMに提供し、テスト中のAPIの各入力スペースパーティションのテキスト記述を取得することを期待する。
そして、生成したテキスト記述を用いて各パーティションからのサンプル入力を生成し、最終的には、APIのプログラム動作を体系的に探索するテストスイートを生成する。
LISPを、人気のある10のJavaライブラリ(例:apache/commonslang、2.6k星、guava、GitHub48.8k星)から抽出した2,205以上のライブラリAPIメソッドで評価する。
実験の結果,LISPはライブラリAPIテストに有効であることがわかった。
最先端のツールであるEvoSuiteよりも、エッジカバレッジにおいてはるかに優れています。
平均して、LISPは67.82%のブランチカバレッジを獲得し、EvoSuiteを1.21倍上回っている。
合計で、LISPは実験で404の例外やエラーをトリガーし、CVE IDが割り当てられた評価中に13の既知の脆弱性を発見した。
関連論文リスト
- 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) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - LLMs Meet Library Evolution: Evaluating Deprecated API Usage in LLM-based Code Completion [13.633501449498402]
APIの使用を分解することは、大規模言語モデル(LLM)ベースのコード補完の問題である。
この研究には、7つの高度なLLM、人気のあるPythonライブラリの145のAPIマッピング、28125の補完プロンプトが含まれていた。
本稿では,REPLACEAPIとINSERTPROMPTの2つの軽量固定手法を提案する。
論文 参考訳(メタデータ) (2024-06-14T08:44:10Z) - DLLens: Testing Deep Learning Libraries via LLM-aided Synthesis [8.779035160734523]
テストは、ディープラーニング(DL)ライブラリの品質を保証するための主要なアプローチである。
既存のテスト技術では、テストオラクルの構築を緩和するために差分テストを採用するのが一般的である。
本稿では,DLライブラリテストのための新しい差分試験手法であるシーレンスを紹介する。
論文 参考訳(メタデータ) (2024-06-12T07:06:38Z) - 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) - Compositional API Recommendation for Library-Oriented Code Generation [23.355509276291198]
我々は、粗粒度要求のためのAPIを推奨するために、"diide-and-conquer"戦略を採用するCAPIRを提案する。
RAPID(Documentationに基づく推奨API)とLOCG(Library-Oriented Code Generation)の2つの挑戦的なベンチマークを提示する。
これらのベンチマーク実験の結果,既存のベースラインと比較してCAPIRの有効性が示された。
論文 参考訳(メタデータ) (2024-02-29T18:27:27Z) - ML-Bench: Evaluating Large Language Models and Agents for Machine Learning Tasks on Repository-Level Code [76.84199699772903]
ML-Benchは、既存のコードリポジトリを利用してタスクを実行する現実世界のプログラミングアプリケーションに根ざしたベンチマークである。
LLM(Large Language Model)とAIエージェントの両方を評価するために、事前に定義されたデプロイメント環境でLLMのテキスト-コード変換を評価するML-LLM-Benchと、Linuxサンドボックス環境でエンドツーエンドのタスク実行で自律エージェントをテストするML-Agent-Benchの2つの設定が採用されている。
論文 参考訳(メタデータ) (2023-11-16T12:03:21Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。