论文

从资源流到可执行测试:Petri-Net 引导的 LLM 并发状态 Rust API 测试生成

From Resource Flow to Executable Tests: Petri-Net-Guided LLM Test Generation for Concurrent Stateful Rust APIs

摘要

并发有状态库 API 通过不断发展的资源所有权、生命周期状态和竞争交错来公开行为。 大语言模型 可以合成可执行的 Rust 测试,但它们的输出经常违反 API 前提条件、保持浅层或减少意外顺序跟踪的并发性。相反,基于模型的系统测试技术提供语义控制,但通常需要大量手写代码才能将抽象场景转化为可执行测试。本文解决了正式场景设计和低成本测试具体化之间的差距。我们提出了一种 Petri 网引导的方法,用于通过并发有状态 Rust API 进行测试生成。该方法将 API 资源、生命周期条件和因果依赖关系表示为彩色标记和转换;推导出合法的深层状态、准合法和偏序并发场景;并使用这些场景作为基于 LLM 的代码合成的约束中间表示。本地 忠实性 合约和结构修复循环在具体化过程中保留了建模意图,而 Petri 引导的进度塑造优先考虑高冲突并发框架以进行系统探索。然后,分层语义预言机将合成失败与违反目标 API 预期行为的行为区分开来。