Abstract
We present a novel framework for exploring very large state spaces of concurrent reactive systems. Our framework exploits application-independent heuristics using genetic algorithms to guide a state-space search towards error states.We have implemented this frameworkin conjunction with VeriSoft, a tool for exploring the state spaces of software applications composed of several concurrent processes executing arbitrary code. We present experimental results obtained with several examples of programs, including a C implementation of a public key authentication protocol.We discuss heuristics and properties of state spaces that help a genetic search detect deadlocks and assertion violations. For finding errors in very large state spaces, our experiments show that a genetic search using simple heuristics can significantly outperform random and systematic searches.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
B. Boigelot and P. Godefroid. Model checking in practice: An analysis of the ACCESS.bus protocol using SPIN. In Proceedings of Formal Methods Europe’96, volume 1051 of Lecture Notes in Computer Science, pages 465–478, Oxford, March 1996. Springer-Verlag.
Paul Marcos Siqueira Bueno and Mario Jino. Identification of potentially infeasible program paths by monitoring the search for test data. In Proceedings of the 15th IEEE International Conference on Automated Software Engineering (ASE), Grenoble, France, September 2000.
E. M. Clarke, O. Grumberg, H. Hiraishi, S. Jha, D. E. Long, K. L. McMillan, and L. A. Ness. Verification of the Futurebus+ cache coherence protocol. In Proceedings of the Eleventh International Symposium on Computer Hardware Description Languages and Their Apllications. North-Holland, 1993.
Edmund M. Clarke, Orna Grumberg, and Doron A. Peled. Model Checking. The MIT Press, Cambridge, MA, 1999.
S. Edelkamp, A. L. Lafuente, and S. Leue. Directed explicit model checking with hsf-spin. In Proceedings of the 2001 SPIN Workshop, volume 2057 of Lecture Notes in Computer Science, pages 57–79. Springer-Verlag, 2001.
A. E. Eiben, R. Hinterding, and Z. Michalewicz. Parameter control in evolutionary algorithms. IEEE Transactions on Evolutionary Computation, 3(2):124–141, 1999.
Patrice Godefroid. Partial-Order Methods for the Verification of Concurrent Systems—An Approach to the State-Explosion Problem, volume 1032 of Lecture Notes in Computer Science. Springer-Verlag, January 1996.
Patrice Godefroid. Model checking for programming languages using VeriSoft. In Proceedings of the 24th Annual ACM Symposium on the Principles of Programming Languages (POPL), pages 174–186, Paris, France, January 1997.
Patrice Godefroid, Robert Hanmer, and Lalita Jagadeesan. Model Checking Without a Model: An Analysis of the Heart-Beat Monitor of a Telephone Switch using VeriSoft. In Proceedings of ACM SIGSOFT ISSTA’98 (International Symposium on Software Testing and Analysis), pages 124–133, Clearwater Beach, March 1998.
David E. Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley Publishing Company, Inc., Reading, MA, 1989.
John Holland. Adaptation in Natural and Artificial Systems. The University of Michigan Press, Ann Arbor, MI, 1975.
B. F. Jones, H. H. Sthamer, and D. E. Eyres. Automatic structural testing using genetic algorithms. Software Engineering Journal, pages 299–306, Sep 1996.
Sarfraz Khurshid. Testing an intentional naming system using genetic algorithms. In Proceedings of the 7th International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS), Genova, Italy, April 2001.
Gavin Lowe. An attackon the Needham-Schroeder public-key authentication protocol. Information Processing Letters, 1995.
Roger Needham and Michael Schroeder. Using encryption for authentication in large networks of computers. Communications of the ACM, 21(12):993–999, 1978.
Roy P. Pargas, Mary Jean Harrold, and Robert Peck. Test-data generation using genetic algorithms. Journal of Software Testing, Verification, and Reliability, 9(4):263–282, 1999.
Ingo Rechenberg. Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution. Frommann-Holzbog, Stuttgart, 1973.
Peter Ross and Dave Corne. Applications of genetic algorithms. AISB Quaterly on Evolutionary Computation, pages 23–30, Autumn 1994.
H. Rudin. Protocol development success stories: Part I. In Proc. 12th IFIP WG 6.1 International Symposium on Protocol Specification, Testing, and Verification, Lake Buena Vista, Florida, June 1992. North-Holland.
Nicol N. Schraudolph and Richard K. Belew. Dynamic parameter encoding for genetic algorithms. Machine Learning, 9(1):9–21, 1992.
C. H. Yang. Prioritized Model Checking. PhD thesis, Stanford University, 1998.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Godefroid, P., Khurshid, S. (2002). Exploring Very Large State Spaces Using Genetic Algorithms. In: Katoen, JP., Stevens, P. (eds) Tools and Algorithms for the Construction and Analysis of Systems. TACAS 2002. Lecture Notes in Computer Science, vol 2280. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46002-0_19
Download citation
DOI: https://doi.org/10.1007/3-540-46002-0_19
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43419-1
Online ISBN: 978-3-540-46002-2
eBook Packages: Springer Book Archive