Learning Extended Finite State Machines

We present an active learning algorithm for inferring extended finite state machines (EFSM)s, combining data flow and control behavior. Key to our learning technique is a novel learning model based on so-called tree queries. The learning algorithm uses the tree queries to infer symbolic data constraints on parameters, e.g., sequence numbers, time stamps, identifiers, or even simple arithmetic. We describe sufficient conditions for the properties that the symbolic constraints provided by a tree query in general must have to be usable in our learning model. We have evaluated our algorithm in a black-box scenario, where tree queries are realized through (black-box) testing. Our case studies include connection establishment in TCP and a priority queue from the Java Class Library.

[1]  Ronald L. Rivest,et al.  Inference of finite automata using homing sequences , 1989, STOC '89.

[2]  Andreas Zeller,et al.  Mining behavior models from enterprise web applications , 2013, ESEC/FSE 2013.

[3]  Antti Huima,et al.  Implementing Conformiq Qtronic , 2007, TestCom/FATES.

[4]  Dana Angluin,et al.  Learning Regular Sets from Queries and Counterexamples , 1987, Inf. Comput..

[5]  Grzegorz Rozenberg,et al.  Developments in Language Theory II , 2002 .

[6]  James R. Larus,et al.  Mining specifications , 2002, POPL '02.

[7]  Bengt Jonsson,et al.  A Succinct Canonical Register Automaton Model for Data Domains with Binary Relations , 2012, ATVA.

[8]  Falk Howar,et al.  Active learning of interface programs , 2012 .

[9]  Monica S. Lam,et al.  Automatic extraction of object-oriented component interfaces , 2002, ISSTA '02.

[10]  Hüsnü Yenigün,et al.  Testing Software and Systems , 2015, Lecture Notes in Computer Science.

[11]  Carlo Ghezzi,et al.  Synthesizing intensional behavior models by graph transformation , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[12]  Bengt Jonsson,et al.  Inferring Semantic Interfaces of Data Structures , 2012, ISoLA.

[13]  David Lee,et al.  Testing Security Properties of Protocol Implementations - a Machine Learning Based Approach , 2007, 27th International Conference on Distributed Computing Systems (ICDCS '07).

[14]  Frits W. Vaandrager,et al.  Automata Learning through Counterexample Guided Abstraction Refinement , 2012, FM.

[15]  Pavol Cerný,et al.  Synthesis of interface specifications for Java classes , 2005, POPL '05.

[16]  Alexandre Petrenko,et al.  Testing of Software and Communicating Systems , 2007, Lecture Notes in Computer Science.

[17]  Stephen McCamant,et al.  The Daikon system for dynamic detection of likely invariants , 2007, Sci. Comput. Program..

[18]  AngluinDana Learning regular sets from queries and counterexamples , 1987 .

[19]  Rishabh Singh,et al.  Learning Component Interfaces with May and Must Abstractions , 2010, CAV.

[20]  David Harel,et al.  Rhapsody: A Complete Life-Cycle Model-Based Development System , 2002, IFM.

[21]  Matthew B. Dwyer,et al.  Adapting side effects analysis for modular program model checking , 2003, ESEC/FSE-11.

[22]  Bengt Jonsson,et al.  Generating models of infinite-state communication protocols using regular inference with abstraction , 2015, Formal Methods Syst. Des..

[23]  Benedikt Bollig,et al.  A Fresh Approach to Learning Register Automata , 2013, Developments in Language Theory.

[24]  Bernhard Steffen,et al.  Automata Learning with Automated Alphabet Abstraction Refinement , 2011, VMCAI.

[25]  Alastair F. Donaldson,et al.  Software Model Checking , 2014, Computing Handbook, 3rd ed..

[26]  Paola Inverardi,et al.  Automatic synthesis of behavior protocols for composable web-services , 2009, ESEC/FSE '09.

[27]  John Derrick,et al.  Increasing Functional Coverage by Inductive Testing: A Case Study , 2010, ICTSS.

[28]  Jun Sun,et al.  TzuYu: Learning stateful typestates , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[29]  Nikolaj Bjørner,et al.  Symbolic finite state transducers: algorithms and applications , 2012, POPL '12.

[30]  Domagoj Babic,et al.  Sigma*: symbolic learning of input-output specifications , 2013, POPL.

[31]  Bengt Jonsson,et al.  Inferring Canonical Register Automata , 2012, VMCAI.

[32]  Leonardo Mariani,et al.  Automatic generation of software behavioral models , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[33]  Zvonimir Rakamaric,et al.  Symbolic Learning of Component Interfaces , 2012, SAS.