Learning Concise Models from Long Execution Traces

15 Jan 2020  ·  Natasha Yogananda Jeppu, Tom Melham, Daniel Kroening, John O'Leary ·

Abstract models of system-level behaviour have applications in design exploration, analysis, testing and verification. We describe a new algorithm for automatically extracting useful models, as automata, from execution traces of a HW/SW system driven by software exercising a use-case of interest. Our algorithm leverages modern program synthesis techniques to generate predicates on automaton edges, succinctly describing system behaviour. It employs trace segmentation to tackle complexity for long traces. We learn concise models capturing transaction-level, system-wide behaviour--experimentally demonstrating the approach using traces from a variety of sources, including the x86 QEMU virtual platform and the Real-Time Linux kernel.

PDF Abstract

Categories


Formal Languages and Automata Theory Software Engineering

Datasets


  Add Datasets introduced or used in this paper