Comparing Metaheuristic Algorithms for Error Detection in Java Programs

  • Francisco Chicano
  • Marco Ferreira
  • Enrique Alba
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6956)


Model checking is a fully automatic technique for checking concurrent software properties in which the states of a concurrent system are explored in an explicit or implicit way. The main drawback of this technique is the high memory consumption, which limits the size of the programs that can be checked. In the last years, some researchers have focused on the application of guided non-complete stochastic techniques to the search of the state space of such concurrent programs. In this paper, we compare five metaheuristic algorithms for this problem. The algorithms are Simulated Annealing, Ant Colony Optimization, Particle Swarm Optimization and two variants of Genetic Algorithm. To the best of our knowledge, it is the first time that Simulated Annealing has been applied to the problem. We use in the comparison a benchmark composed of 17 Java concurrent programs. We also compare the results of these algorithms with the ones of deterministic algorithms.


Model checking Java PathFinder simulated annealing particle swarm optimization ant colony optimization genetic algorithm 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (2000)Google Scholar
  2. 2.
    Clarke, E.M., Grumberg, O., Minea, M., Peled, D.: State space reduction using partial order techniques. International Journal on Software Tools for Technology Transfer (STTT) 2(3), 279–287 (1999)CrossRefzbMATHGoogle Scholar
  3. 3.
    Lafuente, A.L.: Symmetry reduction and heuristic search for error detection in model checking. In: Workshop on Model Checking and Artificial Intelligence (2003)Google Scholar
  4. 4.
    Holzmann, G.J.: The SPIN Model Checker. Addison-Wesley, Reading (2004)Google Scholar
  5. 5.
    Burch, J., Clarke, E., Long, D., McMillan, K., Dill, D.: Symbolic model checking for sequential circuit verification. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 13(4), 401–424 (1994)CrossRefGoogle Scholar
  6. 6.
    Bradbury, J.S., Cordy, J.R., Dingel, J.: Comparative assessment of testing and model checking using program mutation. In: Proceedings of the 3rd Workshop on Mutation Analysis (MUTATION 2007), Windsor, UK, pp. 210–222 (2007)Google Scholar
  7. 7.
    Blum, C., Roli, A.: Metaheuristics in combinatorial optimization: Overview and conceptual comparison. ACM Comput. Surv. 35(3), 268–308 (2003)CrossRefGoogle Scholar
  8. 8.
    Godefroid, P., Khurshid, S.: Exploring very large state spaces using genetic algorithms. International Journal on Software Tools for Technology Transfer 6(2), 117–127 (2004)CrossRefzbMATHGoogle Scholar
  9. 9.
    Alba, E., Chicano, F.: Finding safety errors with ACO. In: Proceedings of the Genetic and Evolutionary Computation Conference, pp. 1066–1073. ACM Press, London (2007)Google Scholar
  10. 10.
    Staunton, J., Clark, J.A.: Searching for safety violations using estimation of distribution algorithms. In: International Workshop on Search-Based Software Testing, pp. 212–221. IEEE Computer Society, Los Alamitos (2010)Google Scholar
  11. 11.
    Groce, A., Visser, W.: Heuristics for model checking java programs. International Journal on Software Tools for Technology Transfer (STTT) 6(4), 260–276 (2004)CrossRefzbMATHGoogle Scholar
  12. 12.
    Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems. Springer-Verlag New York, Inc., New York (1992)CrossRefzbMATHGoogle Scholar
  13. 13.
    Alba, E., Chicano, F., Ferreira, M., Gomez-Pulido, J.: Finding deadlocks in large concurrent java programs using genetic algorithms. In: Proceedings of Genetic and Evolutionary Computation Conference, pp. 1735–1742. ACM, New York (2008)Google Scholar
  14. 14.
    Ferreira, M., Chicano, F., Alba, E., Gómez-Pulido, J.A.: Detecting protocol errors using particle swarm optimization with java pathfinder. In: Smari, W.W. (ed.) ISHPC 2000, pp. 319–325 (2008)Google Scholar
  15. 15.
    Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P.: Optimization by simulated annealing. Science 220(4598), 671–680 (1983)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Francisco Chicano
    • 1
  • Marco Ferreira
    • 2
  • Enrique Alba
    • 1
  1. 1.University of MálagaSpain
  2. 2.Instituto Politécnico de LeiriaPortugal

Personalised recommendations