Skip to main content

Advertisement

Log in

Exploring very large state spaces using genetic algorithms

  • Special section on tools and algorithms for the construction and analysis of systems
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

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 toward error states. We have implemented this framework in 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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Beyer H-G, Schwefel H-P (2002) Evolution strategies – a comprehensive introduction. Nat Comput 1(1)

  2. Boigelot B, Godefroid P (1996) Model checking in practice: an analysis of the ACCESS.bus protocol using SPIN. In: Proceedings of Formal Methods Europe’96, Oxford, March 1996. Lecture notes in computer science, vol 1051. Springer, Berlin Heidelberg New York, pp 465–478

  3. Bueno SPM, Jino M (2000) 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

  4. Clarke EM, Grumberg O, Hiraishi H, Jha S, Long DE, McMillan KL, Ness LA (1993) Verification of the Futurebus+ cache coherence protocol. In: Proceedings of the 11th international symposium on computer hardware description languages and their apllications. North-Holland, Amsterdam

  5. Clarke EM, Grumberg O, Peled DA (1999) Model checking. MIT Press, Cambridge, MA

  6. Edelkamp S, Lafuente AL, Leue S (2001) Directed explicit model checking with hsf-spin. In: Proceedings of the 2001 SPIN workshop, May 2001. Lecture notes in computer science, vol 2057. Springer, Berlin Heidelberg New York, pp 57–79

  7. Eiben AE, Hinterding R, Michalewicz Z (1999) Parameter control in evolutionary algorithms. IEEE Trans Evolut Comput 3(2):124–141

    Article  Google Scholar 

  8. Eiben AE, van Hemert JI, Marchiori E, Steenbeek AG (1998) Solving binary constraint satisfaction problems using evolutionary algorithms with an adaptive fitness function. In: Proceedings of the 5th conference on parallel problem solving from nature, pp 196–205

  9. Godefroid P (1996) Partial-order methods for the verification of concurrent systems – an approach to the state-explosion problem. Lecture notes in computer science, vol 1032. Springer, Berlin Heidelberg New York

  10. Godefroid P (1997) Model checking for programming languages using VeriSoft. In: Proceedings of the 24th annual ACM symposium on the principles of programming languages (POPL), Paris, January 1997, pp 174–186

  11. Godefroid P, Hanmer R, Jagadeesan L (1998) 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), Clearwater Beach, FL, March 1998, pp 124–133

  12. Goldberg DE (1989) Genetic algorithms in search, optimization, and machine learning. Addison-Wesley, Reading, MA

  13. Groce A, Visser W (2002) Model checking Java programs using structural heuristics. In: Proceedings of the international symposium on software testing and analysis (ISSTA), Rome, July 2002, pp 12–21

  14. Holland J (1975) Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor, MI

  15. Jones BF, Sthamer HH, Eyres DE (1996) Automatic structural testing using genetic algorithms. Softw Eng J 11(5):299–306

    Article  Google Scholar 

  16. Khurshid S (2001) 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), Genoa, Italy, April 2001, pp 358-372

  17. Lowe G (1995) An attack on the Needham–Schroeder public-key authentication protocol. Inf Process Lett 56(3)::131–133

  18. Needham R, Schroeder M (1978) Using encryption for authentication in large networks of computers. Commun ACM 21(12):993–999

    Article  Google Scholar 

  19. Pargas RP, Harrold MJ, Peck R (1999) Test-data generation using genetic algorithms. J Softw Test Verif Reliabil 9(4):263–282

    Article  Google Scholar 

  20. Rechenberg I (1973) Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution. Frommann-Holzbog, Stuttgart

  21. Ross P, Corne D (1994) Applications of genetic algorithms. AISB Q Evolut Comput 89:23–30

    Google Scholar 

  22. Rudin H (1992) Protocol development success stories: Part I. In: Proceedings of the 12th IFIP WG 6.1 international symposium on protocol specification, testing, and verification, Lake Buena Vista, FL, June 1992. North-Holland, Amsterdam

  23. Schoofs L, Naudts B (2000) Solving CSP instances beyond the phase transition using evolutionary algorithms. In: Proceedings of the 6th conference on parallel problem solving from nature. Springer, Berlin Heidelberg New York, pp 549-558

  24. Schraudolph NN, Belew RK (1992) Dynamic parameter encoding for genetic algorithms. Mach Learn 9(1):9–21

    Google Scholar 

  25. Schultz AC, Grefenstette JJ, De Jong KA (1997) Learning to break things: adaptive testing of intelligent controllers. In: Baeck T, Fogel DB, Michalewicz Z (eds) Handbook of evolutionary computation, Institute of Physics, Bristol, UK

  26. Sthamer H, Wegener J, Baresel A (2002) Using evolutionary testing to improve efficiency and quality in software testing. In: Proceedings of the 2nd Asia-Pacific conference on software testing analysis and review, Melbourne, Australia

  27. Van Hemert J (2002) Comparing classical methods for solving binary constraint satisfaction problems with state of the art evolutionary computation. In: Applications of evolutionary computing, pp 81–90

  28. Wegener J, Grochtmann M (1998) Verifying timing constraints of real-time systems by means of evolutionary testing. Real Time Sys 15(3):275–298

    Article  Google Scholar 

  29. Yang CH (1998) Prioritized model checking. PhD thesis, Stanford University, Stanford, CA

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Patrice Godefroid.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Godefroid, P., Khurshid, S. Exploring very large state spaces using genetic algorithms. Int J Softw Tools Technol Transfer 6, 117–127 (2004). https://doi.org/10.1007/s10009-004-0141-1

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-004-0141-1

Keywords

Navigation