paperbot · PL 论文追踪

全部论文 待读 收藏

P2 SpecFuzzer: A Tool for Inferring Class Specifications via Grammar-Based Fuzzing

SpecFuzzer:一个通过基于语法的模糊测试推断类规约的工具
ASE 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)2023匹配度 3/10 · 该论文属于程序分析与形式化验证中的规约自动推断方向,与静态分析/形式化验证有间接关联,但完全不涉及用户核心关注的 LLM/Agent 与程序分析的交叉,也不涉及浮点程序分析或贝叶斯程序分析。引用 3 inbox
Facundo Molina, Marcelo d'Amorim, Nazareno Aguirre
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:结合语法模糊测试、动态不变式检测与变异分析,自动推断 Java 类的断言式规约。

在面向对象设计中,类规约用于表达方法预期行为与对象约束,对测试生成、缺陷发现和自动调试都很有价值,但开发者很少主动编写。本文以工具演示形式提出 SpecFuzzer:给定待分析的 Java 类,它首先从类中自动提取语法,并据此生成候选断言;随后借助动态不变式检测器 Daikon,利用现有测试套件过滤掉被反例证伪的断言;最后通过基于变异分析的机制对剩余断言进行聚类与排序,将相似约束归为一组并优先保留更强的断言。工具已在 GitHub 开源,并提供演示视频。

问题
面向对象程序中类规约的缺失严重制约测试生成、缺陷发现与自动调试等任务,而开发者通常不愿手动编写规约。
方法
从待分析类自动提取语法以生成候选断言,用 Daikon 动态不变式检测基于测试套件过滤无效断言,再以变异分析对断言进行聚类与强度排序。
评估
以工具演示形式实现并发布 SpecFuzzer,在 Java 类上展示其自动推断规约的流程,工具与演示视频均已公开。
原文摘要(Abstract)

In object-oriented design, class specifications are primarily used to express properties describing the intended behavior of the class methods and constraints on class' objects. Although the presence of these specifications is important for various software engineering tasks such as test generation, bug finding and automated debugging, developers rarely write them. In this tool demo we present the details of SPEcFuzZER, a tool that aims at alleviating the problem of writing class specifications by using a combination of grammar-based fuzzing, dynamic invariant detection and mutation analysis to auto-maticallyautomatically infer specifications for Java classes. Given a class under analysis, SPEcFuzZER uses (i) a generator of candidate assertions derived from a grammar automatically extracted from the class; (ii) a dynamic invariant detector -Daikon- in order to discard the assertions invalidated by a test suite; and (iii) a mutation-based mechanism to cluster and rank assertions, so that similar constraints are grouped together and the stronger assertions are prioritized. The tool is available on GitHub at https://github.com/facumolina/specfuzzer, and the demo video can be found on YouTube: https://youtu.be/IfakNCbzOUg.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{MolinadA23,
  title = {SpecFuzzer: A Tool for Inferring Class Specifications via Grammar-Based Fuzzing},
  author = {Facundo Molina and Marcelo d'Amorim and Nazareno Aguirre},
  booktitle = {ASE},
  year = {2023},
  doi = {10.1109/ase56229.2023.00024}
}