# TzuYu: Learning stateful typestates

@article{Xiao2013TzuYuLS, title={TzuYu: Learning stateful typestates}, author={Hao Xiao and Jun Sun and Yang Liu and Shang-Wei Lin and Chengnian Sun}, journal={2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE)}, year={2013}, pages={432-442} }

Behavioral models are useful for various software engineering tasks. They are, however, often missing in practice. Thus, specification mining was proposed to tackle this problem. Existing work either focuses on learning simple behavioral models such as finite-state automata, or relies on techniques (e.g., symbolic execution) to infer finite-state machines equipped with data states, referred to as stateful typestates. The former is often inadequate as finite-state automata lack expressiveness in… Expand

#### Figures, Tables, and Topics from this paper

#### 30 Citations

Foundations of active automata learning: an algorithmic perspective

- Computer Science, Mathematics
- 2015

One of the stated goals of this thesis is to change this situation, by giving a rigorously formal description of an approach to active automata learning that is independent of specific data structures or algorithmic realizations. Expand

Active Learning for Extended Finite State Machines 12

- 2015

We present a black-box active learning algorithm for inferring extended finite state machines (EFSM)s by dynamic black-box analysis. EFSMs can be used to model both data flow and control behavior of… Expand

Active learning for extended finite state machines

- Computer Science
- Formal Aspects of Computing
- 2016

A black-box active learning algorithm for inferring extended finite state machines (EFSM) by dynamic black- box analysis based on a novel learning model based on so-called tree queries that induces a generalization of the classical Nerode equivalence and canonical automata construction to the symbolic setting. Expand

TLV: abstraction through testing, learning, and validation

- Computer Science
- ESEC/SIGSOFT FSE
- 2015

The approach is designed such that a large part of the abstraction is generated based on testing and learning so as to minimize the use of heavy-weight techniques like symbolic execution, and shows that TLV generates abstraction for program analysis and verification more efficiently. Expand

Extending Automata Learning to Extended Finite State Machines

- Computer Science
- Machine Learning for Dynamic Software Analysis
- 2018

This work extends techniques for inferring automata models by observing how they respond to a sample of input words to infer extended finite state machines (EFSMs) by dynamic black-box analysis. Expand

Mining understandable state machine models from embedded code

- Computer Science
- Empir. Softw. Eng.
- 2020

The results show that the approach is highly effective in making the guards understandable, and that guards reduced by the approach and presented with priorities are easier to understand than guards without priorities. Expand

Do Extracted State Machine Models Help to Understand Embedded Software?

- Computer Science
- 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)
- 2019

Program understanding is a prerequisite for several software activities, such as maintenance, evolution, and reengineering. Code in itself is so detailed that it is often hard to understand. More… Expand

On State Machine Mining from Embedded Control Software

- Computer Science
- 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)
- 2018

Several techniques that enable state machine mining from embedded control code and an empirical study examines the limits of transition conditions' complexity that can still be understood by humans are proposed and evaluated. Expand

Learning Extended Finite State Machines

- Computer Science
- SEFM
- 2014

An active learning algorithm for inferring extended finite state machines (EFSM)s, combining data flow and control behavior, based on a novel learning model based on so-called tree queries is presented. Expand

Automata based monitoring and mining of execution traces

- Computer Science
- 2014

This thesis contributes work to the fields of runtime monitoring and specification mining. It develops a formalism for specifying patterns of behaviour in execution traces and defines techniques for… Expand

#### References

SHOWING 1-10 OF 38 REFERENCES

Symbolic Learning of Component Interfaces

- Computer Science
- SAS
- 2012

The technique, named Psyco (Predicate-based SYmbolic COmpositional reasoning), employs a novel combination of the L* automata learning algorithm with symbolic execution, generating interfaces that capture whether a sequence of method invocations is safe, unsafe, or its effect on the component state is unresolved by the symbolic execution engine. Expand

Automata Learning through Counterexample Guided Abstraction Refinement

- Computer Science
- FM
- 2012

This article shows how such abstractions can be constructed fully automatically for a restricted class of extended finite state machines in which one can test for equality of data parameters, but no operations on data are allowed. Expand

Hybrid learning: interface generation through static, dynamic, and symbolic analysis

- Computer Science
- ISSTA
- 2013

The explosion of method sequences that learning generates to validate its computed interfaces is reduced through partial order reduction resulting from a static analysis of the component, and novel algorithms that are primarily based on dynamic, concrete component execution, while resorts to symbolic analysis on a limited, as needed, basis are proposed. Expand

Synthesis of interface specifications for Java classes

- Computer Science
- POPL '05
- 2005

This paper proposes a novel solution for automatically extracting temporal specifications for Java classes using algorithms for learning finite automata and symbolic model checking for branching-time logics and describes an implementation of the proposed techniques in the tool JIST--- Java Interface Synthesis Tool---and demonstrates that the tool can construct interfaces accurately and efficiently for sample Java2SDK library classes. Expand

Counterexample-Guided Assume-Guarantee Synthesis through Learning

- Computer Science
- IEEE Transactions on Computers
- 2011

A framework is proposed that can automatically eliminate all counterexamples from a system model such that the synthesized model satisfies a given safety specification and the synthesis flow terminates after a finite number of iterations. Expand

Mining specifications

- Computer Science
- POPL '02
- 2002

Program verification is a promising approach to improving program quality, because it can search all possible program executions for specific errors. However, the need to formally describe correct… Expand

Automatic Compositional Verification of Timed Systems

- Computer Science
- FM
- 2012

A self-contained toolkit to analyze real-time systems specified using event-recording automata (ERAs), which supports system modeling, animated simulation, and fully automatic compositional verification based on learning techniques is presented. Expand

CUTE: a concolic unit testing engine for C

- Computer Science
- ESEC/FSE-13
- 2005

A method to represent and track constraints that capture the behavior of a symbolic execution of a unit with memory graphs as inputs is developed and an efficient constraint solver is proposed to facilitate incremental generation of such test inputs. Expand

Principles and methods of testing finite state machines-a survey

- Computer Science
- 1996

The fundamental problems in testing finite state machines and techniques for solving these problems are reviewed, tracing progress in the area from its inception to the present and the stare of the art is traced. Expand

Proof Rules for Automated Compositional Verification through Learning

- Computer Science
- 2003

Novel assume- guarantee rules in the setting of finite labelled transition systems with blocking communication are presented and it is shown how these rules can be applied in an iterative and fully automated fashion within a framework based on learning. Expand