Hardness for Explicit State Software Model Checking Benchmarks

Directed model checking algorithms focus computation resources in the error-prone areas of concurrent systems. The algorithms depend on some empirical analysis to report their performance gains. Recent work characterizes the hardness of models used in the analysis as an estimated number of paths in the model that contain an error. This hardness metric is computed using a stateless random walk. We show that this is not a good hardness metric because models labeled hard with a stateless random walk metric have easily discoverable errors with a stateful randomized search. We present an analysis which shows that a hardness metric based on a stateful randomized search is a tighter bound for hardness in models used to benchmark explicit state directed model checking techniques. Furthermore, we convert easy models into hard models as measured by our new metric by pushing the errors deeper in the system and manipulating the number of threads that actually manifest an error.

[1]  Michael D. Jones,et al.  Model Checking Machine Code with the GNU Debugger , 2005, SPIN.

[2]  Ivana Černá,et al.  Enhancing random walk state space exploration , 2005, FMICS '05.

[3]  Thomas A. Henzinger,et al.  Software Verification with BLAST , 2003, SPIN.

[4]  Scott D. Stoller,et al.  Testing Concurrent Java Programs using Randomized Scheduling , 2002, RV@FLoC.

[5]  Klaus Havelund,et al.  Towards a framework and a benchmark for testing tools for multi-threaded programs: Research Articles , 2007 .

[6]  Patrik Haslum Model Checking by Random Walk , 1999 .

[7]  Matthew B. Dwyer,et al.  Controlling factors in evaluating path-sensitive error detection techniques , 2006, SIGSOFT '06/FSE-14.

[8]  Klaus Havelund,et al.  Towards a framework and a benchmark for testing tools for multi‐threaded programs , 2007, Concurr. Comput. Pract. Exp..

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

[10]  Eric Mercer,et al.  A context-sensitive structural heuristic for guided search model checking , 2005, ASE '05.

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

[12]  George S. Avrunin,et al.  Heuristic-guided counterexample search in FLAVERS , 2004, SIGSOFT '04/FSE-12.

[13]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[14]  Michael D. Jones,et al.  Parallel search for LTL violations , 2003, International Journal on Software Tools for Technology Transfer.

[15]  Stefan Edelkamp,et al.  Directed Error Detection in C++ with the Assembly-Level Model Checker StEAM , 2004, SPIN.

[16]  Lubos Brim,et al.  DiVinE - A Tool for Distributed Verification , 2006, CAV.

[17]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[18]  Matthew B. Dwyer,et al.  Parallel Randomized State-Space Search , 2007, 29th International Conference on Software Engineering (ICSE'07).

[19]  David L. Dill,et al.  The Murphi Verification System , 1996, CAV.

[20]  Michael D. Jones,et al.  Explicit State Model Checking with Hopper , 2004, SPIN.

[21]  Eitan Farchi,et al.  Concurrent bug patterns and how to test them , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[22]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[23]  Sriram K. Rajamani,et al.  The SLAM Toolkit , 2001, CAV.

[24]  Ganesh Gopalakrishnan,et al.  Random Walk Based Heuristic Algorithms for Distributed Memory Model Checking , 2003, PDMC@CAV.

[25]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[26]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[27]  Eric Mercer,et al.  Generating Counter-Examples Through Randomized Guided Search , 2007, SPIN.

[28]  Eric Mercer,et al.  An Improved Distance Heuristic Function for Directed Software Model Checking , 2006, 2006 Formal Methods in Computer Aided Design.

[29]  Shmuel Ur,et al.  Compiling a benchmark of documented multi-threaded bugs , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[30]  M. Robby,et al.  Bogor : An Extensible and Highly Modular Model Checking Framework , 2003 .