Heuristic-based Mining of Service Behavioral Models from Interaction Traces

Software behavioral models have proven useful for emulating and testing software systems. Many techniques have been proposed to infer behavioral models of software systems from their interaction traces. The quality of the inferred model is critical to its successful use. While generalization is necessary to deduce concise behavioral models, existing techniques of inferring models, in general, overgeneralize what behavior is valid. Imprecise models include many spurious behaviors, and thus compromise the effectiveness of their use. In this paper, we propose a novel technique that increases the accuracy of the behavioral model inferred from interaction traces. The essence of our approach is a heuristic-based generalization and truthful minimization. The set of heuristics include patterns to match input traces and generalize them towards concise model representations. Furthermore, we adopt a truthful minimization technique to merge these generalized traces. The key insight of our approach is to infer a concise behavioral model without compromising its accuracy. We present an empirical evaluation of how our approach improves upon the state-of-the-art specification inference techniques. The results show that our approach mines model with 100% precision and recall with a limited computation overhead.

[1]  Yuriy Brun,et al.  Behavioral resource-aware model inference , 2014, ASE.

[2]  John G. Hosking Visualisation of object oriented program execution , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[3]  Leonardo Mariani,et al.  AVA: automated interpretation of dynamically detected anomalies , 2009, ISSTA.

[4]  Siau-Cheng Khoo,et al.  QUARK: Empirical Assessment of Automaton-based Specification Miners , 2006, 2006 13th Working Conference on Reverse Engineering.

[5]  Tim Wright,et al.  Visualisations of execution traces (VET): an interactive plugin-based visualisation tool , 2006, AUIC.

[6]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[7]  Yuriy Brun,et al.  Automatic mining of specifications from invocation traces and method invariants , 2014, SIGSOFT FSE.

[8]  Andreas Zeller,et al.  Automatically Generating Test Cases for Specification Mining , 2012, IEEE Transactions on Software Engineering.

[9]  Paulo Veríssimo,et al.  Reverse Engineering of Protocols from Network Traces , 2011, 2011 18th Working Conference on Reverse Engineering.

[10]  John C. Grundy,et al.  Interaction Traces Mining for Efficient System Responses Generation , 2015, SOEN.

[11]  Manuvir Das,et al.  Perracotta: mining temporal API rules from imperfect traces , 2006, ICSE.

[12]  Lionel C. Briand,et al.  Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software , 2006, IEEE Transactions on Software Engineering.

[13]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[14]  Dana S. Scott,et al.  Finite Automata and Their Decision Problems , 1959, IBM J. Res. Dev..

[15]  David Lo,et al.  Learning extended FSA from software: An empirical assessment , 2012, J. Syst. Softw..

[16]  Neil Walkinshaw,et al.  Inferring Finite-State Models with Temporal Constraints , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[17]  Chao Liu,et al.  Mining past-time temporal rules from execution traces , 2008, WODA '08.

[18]  Yuriy Brun,et al.  Unifying FSM-inference algorithms through declarative specification , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[19]  Alexander L. Wolf,et al.  Discovering models of software processes from event-based data , 1998, TSEM.

[20]  Leonardo Mariani,et al.  Dynamic Detection of COTS Component Incompatibility , 2007, IEEE Software.

[21]  M. W. Shields An Introduction to Automata Theory , 1988 .

[22]  Chao Liu,et al.  Journal of Software Maintenance and Evolution: Research and Practice Mining Temporal Rules for Software Maintenance , 2022 .

[23]  Sebastián Uchitel,et al.  Automated Abstractions for Contract Validation , 2012, IEEE Transactions on Software Engineering.

[24]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[25]  Andreas Zeller,et al.  Mining object behavior with ADABU , 2006, WODA '06.

[26]  Leonardo Mariani,et al.  Dynamic Analysis for Diagnosing Integration Faults , 2011, IEEE Transactions on Software Engineering.

[27]  Siau-Cheng Khoo,et al.  SMArTIC: towards building an accurate, robust and scalable specification miner , 2006, SIGSOFT '06/FSE-14.

[28]  David Lo,et al.  Automatic steering of behavioral model inference , 2009, ESEC/SIGSOFT FSE.

[29]  Yuriy Brun,et al.  Leveraging existing instrumentation to automatically infer invariant-constrained models , 2011, ESEC/FSE '11.

[30]  Neil Walkinshaw,et al.  Reverse Engineering State Machines by Interactive Grammar Inference , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[31]  Yuriy Brun,et al.  Synoptic: studying logged behavior with inferred models , 2011, ESEC/FSE '11.

[32]  David Lo,et al.  Mining Scenario-Based Triggers and Effects , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[33]  Jerome A. Feldman,et al.  On the Synthesis of Finite-State Machines from Samples of Their Behavior , 1972, IEEE Transactions on Computers.

[34]  Jun Han,et al.  Mining accurate message formats for service APIs , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[35]  Fabio Casati,et al.  Deriving Protocol Models from Imperfect Service Conversation Logs , 2008, IEEE Transactions on Knowledge and Data Engineering.

[36]  Yuriy Brun,et al.  Using Declarative Specification to Improve the Understanding, Extensibility, and Comparison of Model-Inference Algorithms , 2015, IEEE Transactions on Software Engineering.

[37]  Chao Liu,et al.  Efficient mining of iterative patterns for software specification discovery , 2007, KDD '07.

[38]  Steven P. Reiss,et al.  Encoding program executions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[39]  Kamran Sartipi,et al.  Dynamic Analysis of Software Systems using Execution Pattern Mining , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[40]  Jing-Yang Jou,et al.  FSM-based transaction-level functional coverage for interface compliance verification , 2006, Asia and South Pacific Conference on Design Automation, 2006..

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

[42]  Sylvain Lamprier,et al.  The CARE platform for the analysis of behavior model inference techniques , 2015, Inf. Softw. Technol..

[43]  Siau-Cheng Khoo,et al.  Mining modal scenario-based specifications from execution traces of reactive systems , 2007, ASE '07.

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

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

[46]  Mary Shaw,et al.  Semantic anomaly detection in online data sources , 2002, ICSE '02.

[47]  David Lo,et al.  DSM: a specification mining tool using recurrent neural network based language model , 2018, ESEC/SIGSOFT FSE.

[48]  Leonardo Mariani,et al.  Automated Identification of Failure Causes in System Logs , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[49]  Sudheendra Hangal,et al.  Tracking down software bugs using automatic anomaly detection , 2002, ICSE '02.

[50]  Harald Raffelt,et al.  LearnLib: a library for automata learning and experimentation , 2005, FMICS '05.

[51]  Zhendong Su,et al.  Testing mined specifications , 2012, SIGSOFT FSE.

[52]  Michael D. Ernst,et al.  Eclat: Automatic Generation and Classification of Test Inputs , 2005, ECOOP.