Learning Temporal Specifications from Imperfect Traces Using Bayesian Inference

Verification is essential to prevent malfunctioning of software systems. Model checking allows to verify conformity with nominal behavior. As manual definition of specifications from such systems gets infeasible, automated techniques to mine specifications from data become increasingly important. Existing approaches produce specifications of limited lengths, do not segregate functions and do not easily allow to include expert input. We present BaySpec, a dynamic mining approach to extract temporal specifications from Bayesian models, which represent behavioral patterns. This allows to learn specifications of arbitrary length from imperfect traces. Within this framework we introduce a novel extraction algorithm that for the first time mines LTL specifications from such models.

[1]  Uwe Baumgarten,et al.  Automated Interpretation and Reduction of In-Vehicle Network Traces at a Large Scale , 2018, 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC).

[2]  Suresh Jagannathan,et al.  Static specification inference using predicate mining , 2007, PLDI '07.

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

[4]  Andrew J. Viterbi,et al.  Error bounds for convolutional codes and an asymptotically optimum decoding algorithm , 1967, IEEE Trans. Inf. Theory.

[5]  J. Y. Yen Finding the K Shortest Loopless Paths in a Network , 1971 .

[6]  Sanjit A. Seshia,et al.  Scalable specification mining for verification and diagnosis , 2010, Design Automation Conference.

[7]  Dawson R. Engler,et al.  Bugs as deviant behavior: a general approach to inferring errors in systems code , 2001, SOSP.

[8]  David Eppstein,et al.  Finding the k Shortest Paths , 1999, SIAM J. Comput..

[9]  Eran Yahav,et al.  Static Specification Mining Using Automata-Based Abstractions , 2007, IEEE Transactions on Software Engineering.

[10]  Masahiro Fujita,et al.  Dynamic property mining for embedded software , 2012, CODES+ISSS.

[11]  Sebastian Fischmeister,et al.  Mining timed regular expressions from system traces , 2016, SoftwareMining@ASE.

[12]  David Tcheng,et al.  GoldMine: Automatic assertion generation using data mining and static analysis , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[13]  Ivan Beschastnikh,et al.  General LTL Specification Mining (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

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

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

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

[17]  Vladimir I. Levenshtein,et al.  Binary codes capable of correcting deletions, insertions, and reversals , 1965 .

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

[19]  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).

[20]  Graziano Pravadelli,et al.  Automatic extraction of assertions from execution traces of behavioural models , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[21]  Zhendong Su,et al.  Javert: fully automatic mining of general temporal properties from dynamic traces , 2008, SIGSOFT '08/FSE-16.

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