Skip to main content

Testing of Concurrent Programs Using Genetic Algorithms

  • Conference paper
Search Based Software Engineering (SSBSE 2012)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7515))

Included in the following conference series:

Abstract

Noise injection disturbs the scheduling of program threads in order to increase the probability that more of their different legal interleavings occur during the testing process. However, there exist many different types of noise heuristics with many different parameters that are not easy to set such that noise injection is really efficient. In this paper, we propose a new way of using genetic algorithms to search for suitable types of noise heuristics and their parameters. This task is formalized as the test and noise configuration search problem in the paper, followed by a discussion of how to represent instances of this problem for genetic algorithms, which objectives functions to use, as well as parameter tuning of genetic algorithms when solving the problem. The proposed approach is evaluated on a set of benchmarks, showing that it provides significantly better results than the so far preferred random noise injection.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alba, E., Chicano, F.: Finding Safety Errors with ACO. In: Proc. of GECCO 2007. ACM Press (2007)

    Google Scholar 

  2. Alba, E., Chicano, F.: Searching for Liveness Property Violations in Concurrent Systems with ACO. In: Proc. of GECCO 2008, pp. 1727–1734. ACM Press (2008)

    Google Scholar 

  3. Alba, E., Chicano, F., Ferreira, M., Gomez-Pulido, J.: Finding Deadlocks in Large Concurrent Java Programs Using Genetic Algorithms. In: Proc. of GECCO 2008. ACM Press (2008)

    Google Scholar 

  4. Ben-Asher, Y., Eytani, Y., Farchi, E., Ur, S.: Noise Makers Need To Know Where To Be Silent–Producing Schedules That Find Bugs. In: Proc. of ISOLA 2006. IEEE CS (2006)

    Google Scholar 

  5. Bron, A., Farchi, E., Magid, Y., Nir, Y., Ur, S.: Applications of Synchronization Coverage. In: Proc. of PPoPP 2005. ACM Press (2005)

    Google Scholar 

  6. Chicano, F., Ferrer, J., Alba, E.: Elementary Landscape Decomposition of the Test Suite Minimization Problem. In: Cohen, M.B., Ó Cinnéide, M. (eds.) SSBSE 2011. LNCS, vol. 6956, pp. 48–63. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  7. Edelstein, O., Farchi, E., Goldin, E., Nir, Y., Ratsaby, G., Ur, S.: Framework for Testing Multi-Threaded Java Programs. Concurrency and Computation: Practice and Experience 15(3-5), 485–499 (2003)

    Article  MATH  Google Scholar 

  8. Elmas, T., Qadeer, S., Tasiran, S.: Goldilocks: A Race and Transaction-aware Java Runtime. In: Proc. of PLDI 2007. ACM Press (2007)

    Google Scholar 

  9. Eytani, Y.: Concurrent Java Test Generation as a Search Problem. ENTCS 144, 57–72 (2006)

    Google Scholar 

  10. Giannakopoulou, D., Pasareanu, C.S., Lowry, M., Washington, R.: Lifecycle Verification of the NASA Ames K9 Rover Executive. In: Proc. of ICAPS 2005 (2005)

    Google Scholar 

  11. Godefroid, P., Khurshid, S.: Exploring Very Large State Spaces Using Genetic Algorithms. STTT 6(2), 117–127 (2004)

    Article  Google Scholar 

  12. Hrubá, V., Křena, B., Letko, Z., Vojnar, T.: Testing of Concurrent Programs Using Genetic Algorithms. Technical report FIT-TR-2012-01, BUT (2012)

    Google Scholar 

  13. Křena, B., Letko, Z., Vojnar, T.: Coverage Metrics for Saturation-Based and Search-Based Testing of Concurrent Software. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 177–192. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  14. Křena, B., Letko, Z., Vojnar, T.: Noise Injection Heuristics for Concurrency Testing. In: Kotásek, Z., Bouda, J., Černá, I., Sekanina, L., Vojnar, T., Antoš, D. (eds.) MEMICS 2011. LNCS, vol. 7119, pp. 123–135. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  15. Křena, B., Letko, Z., Vojnar, T., Ur, S.: A Platform for Search-based Testing of Concurrent Software. In: Proc. of PADTAD 2010. ACM Press (2010)

    Google Scholar 

  16. Musuvathi, M., Qadeer, S., Ball, T.: Chess: A Systematic Testing Tool for Concurrent Software. Technical Report MSR-TR-2007-149, Microsoft Research (2007)

    Google Scholar 

  17. Talbi, E.-G.: Metaheuristics: From Design to Implementation. Wiley Publishing (2009)

    Google Scholar 

  18. Tzoref, R., Ur, S., Yom-Tov, E.: Instrumenting Where It Hurts: An Automatic Concurrent Debugging Technique. In: Proc. of ISSTA 2007. ACM Press (2007)

    Google Scholar 

  19. Šimša, J., Bryant, R., Gibson, G.: dBug: Systematic Testing of Unmodified Distributed and Multi-threaded Systems. In: Groce, A., Musuvathi, M. (eds.) SPIN Workshops 2011. LNCS, vol. 6823, pp. 188–193. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  20. White, D.: Software Review: The ECJ Toolkit. Genetic Programming and Evolvable Machines 13, 65–67 (2012)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hrubá, V., Křena, B., Letko, Z., Ur, S., Vojnar, T. (2012). Testing of Concurrent Programs Using Genetic Algorithms. In: Fraser, G., Teixeira de Souza, J. (eds) Search Based Software Engineering. SSBSE 2012. Lecture Notes in Computer Science, vol 7515. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33119-0_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-33119-0_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-33118-3

  • Online ISBN: 978-3-642-33119-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics