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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alba, E., Chicano, F.: Finding Safety Errors with ACO. In: Proc. of GECCO 2007. ACM Press (2007)
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)
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)
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)
Bron, A., Farchi, E., Magid, Y., Nir, Y., Ur, S.: Applications of Synchronization Coverage. In: Proc. of PPoPP 2005. ACM Press (2005)
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)
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)
Elmas, T., Qadeer, S., Tasiran, S.: Goldilocks: A Race and Transaction-aware Java Runtime. In: Proc. of PLDI 2007. ACM Press (2007)
Eytani, Y.: Concurrent Java Test Generation as a Search Problem. ENTCS 144, 57–72 (2006)
Giannakopoulou, D., Pasareanu, C.S., Lowry, M., Washington, R.: Lifecycle Verification of the NASA Ames K9 Rover Executive. In: Proc. of ICAPS 2005 (2005)
Godefroid, P., Khurshid, S.: Exploring Very Large State Spaces Using Genetic Algorithms. STTT 6(2), 117–127 (2004)
Hrubá, V., Křena, B., Letko, Z., Vojnar, T.: Testing of Concurrent Programs Using Genetic Algorithms. Technical report FIT-TR-2012-01, BUT (2012)
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)
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)
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)
Musuvathi, M., Qadeer, S., Ball, T.: Chess: A Systematic Testing Tool for Concurrent Software. Technical Report MSR-TR-2007-149, Microsoft Research (2007)
Talbi, E.-G.: Metaheuristics: From Design to Implementation. Wiley Publishing (2009)
Tzoref, R., Ur, S., Yom-Tov, E.: Instrumenting Where It Hurts: An Automatic Concurrent Debugging Technique. In: Proc. of ISSTA 2007. ACM Press (2007)
Š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)
White, D.: Software Review: The ECJ Toolkit. Genetic Programming and Evolvable Machines 13, 65–67 (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)