English

Active Learning of Input Grammars

Programming Languages 2017-08-30 v1 Formal Languages and Automata Theory

Abstract

Knowing the precise format of a program's input is a necessary prerequisite for systematic testing. Given a program and a small set of sample inputs, we (1) track the data flow of inputs to aggregate input fragments that share the same data flow through program execution into lexical and syntactic entities; (2) assign these entities names that are based on the associated variable and function identifiers; and (3) systematically generalize production rules by means of membership queries. As a result, we need only a minimal set of sample inputs to obtain human-readable context-free grammars that reflect valid input structure. In our evaluation on inputs like URLs, spreadsheets, or configuration files, our AUTOGRAM prototype obtains input grammars that are both accurate and very readable - and that can be directly fed into test generators for comprehensive automated testing.

Keywords

Cite

@article{arxiv.1708.08731,
  title  = {Active Learning of Input Grammars},
  author = {Matthias Höschele and Alexander Kampmann and Andreas Zeller},
  journal= {arXiv preprint arXiv:1708.08731},
  year   = {2017}
}

Comments

12 pages

R2 v1 2026-06-22T21:26:27.286Z