Finding liveness errors with ACO

Model checking is a well-known and fully automatic technique for checking software properties, usually given as temporal logic formulae on the program variables. Most of model checkers found in the literature use exact deterministic algorithms to check the properties. These algorithms usually require huge amounts of memory if the checked model is large. We propose here the use of an algorithm based on ACOhg, a new kind of ant colony optimization model, to search for liveness property violations in concurrent systems. This algorithm has been previously applied to the search for safety errors with very good results and we apply it here for the first time to liveness errors. The results state that our algorithmic proposal, called ACOhg-live, is able to obtain very short error trails in faulty concurrent systems using a low amount of resources, outperforming by far the results of nested-DFS, the traditional algorithm used for this task in the model checking community and implemented in most of the explicit state model checkers. This fact makes ACOhg-live a very suitable algorithm for finding liveness errors in large faulty concurrent systems, in which traditional techniques fail because of the model size.

[1]  Enrique Alba,et al.  ACOhg: dealing with huge graphs , 2007, GECCO '07.

[2]  Stefan Leue,et al.  Protocol verification with heuristic search , 2001 .

[3]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[4]  Keith A. Bartlett,et al.  A note on reliable full-duplex transmission over half-duplex links , 1969, Commun. ACM.

[5]  Alex Groce,et al.  Heuristics for model checking Java programs , 2004, International Journal on Software Tools for Technology Transfer.

[6]  Enrique Alba,et al.  Ant colony optimization with partial order reduction for discovering safety property violations in concurrent models , 2008, Inf. Process. Lett..

[7]  Alberto Lluch-Lafuente Symmetry reduction and heuristic search for error detection in model checking , 2003 .

[8]  Gary McGraw,et al.  Generating Software Test Data by Evolution , 2001, IEEE Trans. Software Eng..

[9]  Stefan Edelkamp,et al.  Directed explicit model checking with HSF-SPIN , 2001, SPIN '01.

[10]  Christian Blum,et al.  Metaheuristics in combinatorial optimization: Overview and conceptual comparison , 2003, CSUR.

[11]  Manuel López-Ibáñez,et al.  Ant colony optimization , 2010, GECCO '10.

[12]  Thomas Stützle,et al.  Ant Colony Optimization , 2009, EMO.

[13]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[14]  Sarfraz Khurshid,et al.  Exploring very large state spaces using genetic algorithms , 2004, International Journal on Software Tools for Technology Transfer.

[15]  Paul Ammann,et al.  Using model checking to generate tests from specifications , 1998, Proceedings Second International Conference on Formal Engineering Methods (Cat.No.98EX241).

[16]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[17]  Maliha S. Nash,et al.  Handbook of Parametric and Nonparametric Statistical Procedures , 2001, Technometrics.

[18]  Enrique Alba,et al.  Ant Colony Optimization for Model Checking , 2007, EUROCAST.

[19]  Mihalis Yannakakis,et al.  On nested depth first search , 1996, The Spin Verification System.

[20]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching Time Temporal Logic , 2008, 25 Years of Model Checking.

[21]  Enrique Alba,et al.  Finding safety errors with ACO , 2007, GECCO '07.

[22]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[23]  Stefan Edelkamp,et al.  Partial Order Reduction in Directed Model Checking , 2002, SPIN.

[24]  Alex Groce,et al.  Model checking Java programs using structural heuristics , 2002, ISSTA '02.

[25]  Gerard J. Holzmann Formal methods and software reliability , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[26]  Stefan Leue,et al.  Validation of Remote Object Invocation and Object Migration in CORBA GIOP using Promela/Spin , 1998 .

[27]  Edmund M. Clarke,et al.  Symbolic model checking for sequential circuit verification , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[28]  Stefan Edelkamp,et al.  Directed explicit-state model checking in the validation of communication protocols , 2004, International Journal on Software Tools for Technology Transfer.