Test Case Generation of Actor Systems

  • Elvira Albert
  • Puri ArenasEmail author
  • Miguel Gómez-Zamalloa
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9364)


Testing is a vital part of the software development process. It is even more so in the context of concurrent languages, since due to undesired task interleavings and to unexpected behaviours of the underlying task scheduler, errors can go easily undetected. Test case generation (TCG) is the process of automatically generating test inputs for interesting coverage criteria, which are then applied to the system under test. This paper presents a TCG framework for actor systems, which consists of three main elements, which are the original contributions of this work: (1) a symbolic execution calculus, which allows symbolically executing the program (i.e., executing the program for unknown input data), (2) improved techniques to avoid performing redundant computations during symbolic execution, (3) new termination and coverage criteria, which ensure the termination of symbolic execution and guarantee that the test cases provide the desired degree of code coverage. Finally, our framework has been implemented and evaluated within the aPET system.


Task Switch Distribute Hash Table Coverage Criterion Symbolic Execution Test Case Generation 
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.



This work was funded partially by the EU project FP7-ICT-610582 ENVISAGE: Engineering Virtualized Services (, by the Spanish MINECO project TIN2012-38137, and by the CM project S2013/ICE-3006.


  1. 1.
    Abdulla, P., Aronis, S., Jonsson, B., Sagonas, K.F.: Optimal dynamic partial order reduction. In: Proceedings of the POPL 2014, pp. 373–384. ACM (2014)Google Scholar
  2. 2.
    Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)Google Scholar
  3. 3.
    Albert, E., Arenas, P., Gómez-Zamalloa, M.: Actor- and task-selection strategies for pruning redundant state-exploration in testing. In: Ábrahám, E., Palamidessi, C. (eds.) FORTE 2014. LNCS, vol. 8461, pp. 49–65. Springer, Heidelberg (2014) CrossRefGoogle Scholar
  4. 4.
    Albert, E., Arenas, P., Gómez-Zamalloa, M., Wong, P.Y.H.: aPET: a test case generation tool for concurrent objects. In: Proceedings of the ESEC/FSE 2013, pp. 595–598. ACM (2013)Google Scholar
  5. 5.
    Andrews, G.R.: Concurrent Programming: Principles and Practice. Benjamin/Cummings, Redwood (1991)zbMATHGoogle Scholar
  6. 6.
    Clarke, L.A.: A system to generate test data and symbolically execute programs. IEEE Trans. Softw. Eng. 2(3), 215–222 (1976)MathSciNetCrossRefGoogle Scholar
  7. 7.
    Degrave, F., Schrijvers, T., Vanhoof, W.: Towards a framework for constraint-based test case generation. In: De Schreye, D. (ed.) LOPSTR 2009. LNCS, vol. 6037, pp. 128–142. Springer, Heidelberg (2010) CrossRefGoogle Scholar
  8. 8.
    Engel, C., Hähnle, R.: Generating unit tests from formal proofs. In: Gurevich, Y., Meyer, B. (eds.) TAP 2007. LNCS, vol. 4454, pp. 169–188. Springer, Heidelberg (2007) CrossRefGoogle Scholar
  9. 9.
    Esparza, J.: Model checking using net unfoldings. SCP 23(2–3), 151–195 (1994)MathSciNetzbMATHGoogle Scholar
  10. 10.
    Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: Proceedings of the POPL 2005, pp. 110–121. ACM (2005)Google Scholar
  11. 11.
    Godefroid, P.: Using partial orders to improve automatic verification methods. In: Clarke, E., Kurshan, R.P. (eds.) CAV 1990. LNCS, vol. 531, pp. 176–185. Springer, Heidelberg (1991) CrossRefGoogle Scholar
  12. 12.
    Gotlieb, A., Botella, B., Rueher, M.: A CLP framework for computing structural test data. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, p. 399. Springer, Heidelberg (2000) CrossRefGoogle Scholar
  13. 13.
    Griesmayer, A., Aichernig, B., Johnsen, E.B., Schlatte, R.: Dynamic symbolic execution of distributed concurrent objects. In: Lee, D., Lopes, A., Poetzsch-Heffter, A. (eds.) FMOODS 2009. LNCS, vol. 5522, pp. 225–230. Springer, Heidelberg (2009) CrossRefGoogle Scholar
  14. 14.
    Haller, P., Odersky, M.: Scala actors: unifying thread-based and event-based programming. Theor. Comput. Sci. 410(2–3), 202–220 (2009)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Howden, W.E.: Symbolic testing and the DISSECT symbolic evaluation system. IEEE Trans. Soft. Eng. 3(4), 266–278 (1977)CrossRefzbMATHGoogle Scholar
  16. 16.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: a core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) Formal Methods for Components and Objects. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  17. 17.
    King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394 (1976)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Lauterburg, S., Karmani, R.K., Marinov, D., Agha, G.: Evaluating ordering heuristics for dynamic partial-order reduction techniques. In: Rosenblum, D.S., Taentzer, G. (eds.) FASE 2010. LNCS, vol. 6013, pp. 308–322. Springer, Heidelberg (2010) CrossRefGoogle Scholar
  19. 19.
    Meudec, C.: ATGen: automatic test data generation using constraint logic programming and symbolic execution. STVR 11(2), 81–96 (2001)Google Scholar
  20. 20.
    Müller, R.A., Lembeck, C., Kuchen, H.: A symbolic java virtual machine for test case generation. In: Proceedings of the IASTEDSE 2004, pp. 365–371. ACTA Press (2004)Google Scholar
  21. 21.
    Sen, K., Agha, G.: Automated systematic testing of open distributed programs. In: Baresi, L., Heckel, R. (eds.) FASE 2006. LNCS, vol. 3922, pp. 339–356. Springer, Heidelberg (2006) CrossRefGoogle Scholar
  22. 22.
    Tasharofi, S., Karmani, R.K., Lauterburg, S., Legay, A., Marinov, D., Agha, G.: TransDPOR: a novel dynamic partial-order reduction technique for testing actor programs. In: Giese, H., Rosu, G. (eds.) FORTE 2012 and FMOODS 2012. LNCS, vol. 7273, pp. 219–234. Springer, Heidelberg (2012) CrossRefGoogle Scholar
  23. 23.
    Tillmann, N., de Halleux, J.: Pex–white box test generation for.NET. In: Beckert, B., Hähnle, R. (eds.) TAP 2008. LNCS, vol. 4966, pp. 134–153. Springer, Heidelberg (2008) CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Elvira Albert
    • 1
  • Puri Arenas
    • 1
    Email author
  • Miguel Gómez-Zamalloa
    • 1
  1. 1.DSICComplutense University of MadridMadridSpain

Personalised recommendations