論文の概要: Generating and Understanding Tests via Path-Aware Symbolic Execution with LLMs
- arxiv url: http://arxiv.org/abs/2506.19287v1
- Date: Tue, 24 Jun 2025 03:46:16 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-06-25 19:48:23.473906
- Title: Generating and Understanding Tests via Path-Aware Symbolic Execution with LLMs
- Title(参考訳): LLMを用いた経路認識記号実行によるテストの生成と理解
- Authors: Yaoxuan Wu, Xiaojie Zhou, Ahmad Humayun, Muhammad Ali Gulzar, Miryung Kim,
- Abstract要約: PALMは、シンボリックパス列挙とLLM支援テスト生成を組み合わせたテスト生成システムである。
Palmは、パスカバレッジをよりよく理解し、PALMが生成したテストで実際にどのパスが実行されているかを特定するのに役立つ。
- 参考スコア(独自算出の注目度): 8.828992823055
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Symbolic execution is a widely used technique for test generation, offering systematic exploration of program paths through constraint solving. However, it is fundamentally constrained by the capability to model the target code including library functions in terms of symbolic constraint and the capability of underlying constraint solvers. As a result, many paths involving complex features remain unanalyzed or insufficiently modeled. Recent advances in large language models (LLMs) have shown promise in generating diverse and valid test inputs. Yet, LLMs lack mechanisms for systematically enumerating program paths and often fail to cover subtle corner cases. We observe that directly prompting an LLM with the full program leads to missed coverage of interesting paths. In this paper, we present PALM, a test generation system that combines symbolic path enumeration with LLM-assisted test generation. PALM statically enumerates possible paths through AST-level analysis and transforms each into an executable variant with embedded assertions that specify the target path. This avoids the need to translate path constraints into SMT formulae, by instead constructing program variants that LLM can interpret. Importantly, PALM is the first to provide an interactive frontend that visualizes path coverage alongside generated tests, assembling tests based on the specific paths they exercise. A user study with 12 participants demonstrates that PALM's frontend helps users better understand path coverage and identify which paths are actually exercised by PALM-generated tests, through verification and visualization of their path profiles.
- Abstract(参考訳): シンボリック実行はテスト生成に広く用いられている手法であり、制約解決によるプログラムパスの体系的な探索を提供する。
しかし、シンボリック制約と基礎となる制約解決器の能力の観点から、ライブラリ関数を含む対象のコードをモデル化する能力は、基本的には制約である。
その結果、複雑な特徴を含む多くの経路は分析されていないか、不十分にモデル化されている。
大規模言語モデル(LLM)の最近の進歩は、多種多様で有効なテストインプットを生成することを約束している。
しかし、LSMにはプログラムパスを体系的に列挙する機構がなく、しばしば微妙なコーナーケースをカバーできない。
LLMをプログラム全体で直接的にプロンプトすることは、興味深いパスのカバレッジを欠いていることを観察する。
本稿では,シンボルパス列挙とLPM支援テスト生成を組み合わせたテスト生成システムPALMを提案する。
PALMはASTレベルの解析を通じて可能なパスを静的に列挙し、それぞれをターゲットパスを指定するアサーションを組み込んだ実行可能変種に変換する。
これにより、LSMが解釈できるプログラム変種を構築することで、パス制約をSMT式に変換する必要がなくなる。
重要なことは、PALMが最初に、生成されたテストと一緒にパスカバレッジを視覚化し、実行した特定のパスに基づいてテストを組み立てる、インタラクティブなフロントエンドを提供することである。
12人の参加者によるユーザスタディでは、PALMのフロントエンドが、パスのカバレッジをよりよく理解し、パスプロファイルの検証と視覚化を通じて、PALMが生成したテストによって実際にどのパスが実行されているかを特定するのに役立つことが示されている。
関連論文リスト
- TestWeaver: Execution-aware, Feedback-driven Regression Testing Generation with Large Language Models [5.871736617580623]
回帰テストは、コードの変更が意図せずに既存の機能を壊さないようにする。
大規模言語モデル(LLM)の最近の進歩は、回帰テストのためのテスト生成を自動化することを約束している。
テスト生成をより効率的にガイドするために、軽量なプログラム分析を統合する新しいアプローチであるTestWeaverを提案する。
論文 参考訳(メタデータ) (2025-08-02T08:13:02Z) - Learning on LLM Output Signatures for gray-box Behavior Analysis [52.81120759532526]
大きな言語モデル(LLM)は広く採用されていますが、その振る舞いに対する私たちの理解は限定的です。
グレーボックス設定におけるプロセス汚染とデータ検出のためのトランスフォーマーベースのアプローチを開発する。
提案手法は,グレーボックス設定における幻覚とデータ検出における優れた性能を実現し,既存のベースラインを著しく上回る。
論文 参考訳(メタデータ) (2025-03-18T09:04:37Z) - LLM-AutoDiff: Auto-Differentiate Any LLM Workflow [58.56731133392544]
自動プロンプト工学(APE)のための新しいフレームワーク LLM-AutoDiff について紹介する。
LLMs-AutoDiffは、各テキスト入力をトレーニング可能なパラメータとして扱い、フリーズした後方エンジンを使用して、テキスト勾配に対するフィードバック・アキンを生成する。
精度とトレーニングコストの両方において、既存のテキスト勾配ベースラインを一貫して上回ります。
論文 参考訳(メタデータ) (2025-01-28T03:18:48Z) - Test Wars: A Comparative Study of SBST, Symbolic Execution, and LLM-Based Approaches to Unit Test Generation [11.037212298533069]
大規模言語モデル(LLM)は、自動テストを生成する新しい機会を開いた。
本稿では,SBSTのEvoSuite,シンボル実行のKex,LLMベースのテスト生成のTestSparkという3つのツールを用いた自動テスト生成手法について検討する。
以上の結果から,LSMベースのテスト生成は有望であるが,従来の手法には及ばないことがわかった。
論文 参考訳(メタデータ) (2025-01-17T13:48:32Z) - Python Symbolic Execution with LLM-powered Code Generation [40.906079949304726]
シンボリック実行はソフトウェアテストにおいて重要な技術であり、シンボリックパスの制約を収集してテストケースを生成する。
シンボリック実行は高いカバレッジテストケースを生成する上で有効であることが証明されている。
本稿では,実行経路制約を解決するために,SMTソルバ,Z3を自動的に呼び出すエージェント LLM-Sym を提案する。
論文 参考訳(メタデータ) (2024-09-14T02:43:20Z) - HITS: High-coverage LLM-based Unit Test Generation via Method Slicing [37.43624865049592]
大規模言語モデル(LLM)は、Javaプロジェクトの単体テストの生成においてうまく振る舞っている。
しかし、プロジェクト内の複雑な焦点メソッドをカバーするパフォーマンスは貧弱である。
そこで本研究では, 焦点メソッドをスライスに分解し, LLMに対してスライス毎にテストケーススライスを生成することを提案する。
論文 参考訳(メタデータ) (2024-08-21T04:14:26Z) - LLM-A*: Large Language Model Enhanced Incremental Heuristic Search on Path Planning [91.95362946266577]
経路計画はロボット工学と自律航法における基本的な科学的問題である。
A*やその変種のような伝統的なアルゴリズムは、パスの妥当性を保証することができるが、状態空間が大きくなるにつれて、計算とメモリの非効率が著しく低下する。
本稿では, A* の正確なパスフィニング能力と LLM のグローバルな推論能力とを相乗的に組み合わせた LLM ベースの経路計画法を提案する。
このハイブリッドアプローチは、特に大規模シナリオにおいて、パス妥当性の完全性を維持しながら、時間と空間の複雑さの観点からパスフィニング効率を向上させることを目的としている。
論文 参考訳(メタデータ) (2024-06-20T01:24:30Z) - Aligning Language Models with Demonstrated Feedback [58.834937450242975]
Demonstration ITerated Task Optimization (DITTO)は、言語モデルの出力とユーザの実証された振る舞いを直接調整する。
我々は,DITTOがニュース記事やメール,ブログ記事などのドメイン間できめ細かいスタイルやタスクアライメントを学習する能力を評価する。
論文 参考訳(メタデータ) (2024-06-02T23:13:56Z) - Get my drift? Catching LLM Task Drift with Activation Deltas [55.75645403965326]
タスクドリフトは攻撃者がデータを流出させたり、LLMの出力に影響を与えたりすることを可能にする。
そこで, 簡易線形分類器は, 分布外テストセット上で, ほぼ完全なLOC AUCでドリフトを検出することができることを示す。
このアプローチは、プロンプトインジェクション、ジェイルブレイク、悪意のある指示など、目に見えないタスクドメインに対して驚くほどうまく一般化する。
論文 参考訳(メタデータ) (2024-06-02T16:53:21Z) - Enhancing LLM-based Test Generation for Hard-to-Cover Branches via Program Analysis [8.31978033489419]
難解な分岐に到達可能なテストを生成する新しい技術である TELPA を提案する。
27のオープンソースPythonプロジェクトに対する実験結果から,TELPAは最先端のSBSTやLLMベースの技術よりも優れていたことが判明した。
論文 参考訳(メタデータ) (2024-04-07T14:08:28Z) - Code-Aware Prompting: A study of Coverage Guided Test Generation in Regression Setting using LLM [32.44432906540792]
テスト生成における大規模言語モデルのコード認識促進戦略であるSymPromptを提案する。
SymPromptは、正しいテスト世代を5倍に増やし、CodeGen2の相対カバレッジを26%向上させる。
特に、GPT-4に適用すると、SymPromptはベースラインのプロンプト戦略に比べて2倍以上のカバレッジが向上する。
論文 参考訳(メタデータ) (2024-01-31T18:21:49Z) - Guiding Large Language Models via Directional Stimulus Prompting [114.84930073977672]
我々は,特定の所望の出力に対して,ブラックボックス大言語モデル(LLM)を導くための新しいフレームワークであるDirectional Stimulus Promptingを紹介する。
LLMを直接調整するのではなく、小さな調整可能なポリシーモデルを用いて各入力インスタンスに対して補助的な指向性刺激プロンプトを生成する。
論文 参考訳(メタデータ) (2023-02-22T17:44:15Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。