論文の概要: 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が生成したテストによって実際にどのパスが実行されているかを特定するのに役立つことが示されている。
関連論文リスト
- LLM-AutoDiff: Auto-Differentiate Any LLM Workflow [58.56731133392544]
自動プロンプト工学(APE)のための新しいフレームワーク LLM-AutoDiff について紹介する。
LLMs-AutoDiffは、各テキスト入力をトレーニング可能なパラメータとして扱い、フリーズした後方エンジンを使用して、テキスト勾配に対するフィードバック・アキンを生成する。
精度とトレーニングコストの両方において、既存のテキスト勾配ベースラインを一貫して上回ります。
論文 参考訳(メタデータ) (2025-01-28T03:18:48Z) - 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) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。