Setac : A Framework for Phased Deterministic Testing of Scala Actor Programs

Scala provides an actor library where computation entities, called actors, communicate by exchanging messages. The schedule of message exchanges is in general nondeterministic. Testing non-deterministic programs is hard, because it is necessary to ensure that the system under test has executed all important schedules. Setac is our proposed framework for testing Scala actors that (1) allows programmers to specify constraints on schedules and (2) makes it easy to check test assertions that require actors to be in a stable state. Setac requires little change to the program under test and requires no change to the actor run-time system. In sum, Setac aims to make it much simpler to test nondeterministic actor programs in Scala.

[1]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[2]  Daniel Hoffman,et al.  Tool Support for Testing Concurrent Java Components , 2003, IEEE Trans. Software Eng..

[3]  William Pugh,et al.  Unit testing concurrent software , 2007, ASE.

[4]  Francisco Vilar Brasileiro,et al.  Improving Automated Testing of Multi-threaded Software , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[5]  Darko Marinov,et al.  A Framework for State-Space Exploration of Java-Based Actor Programs , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[6]  Darko Marinov,et al.  Evaluating Ordering Heuristics for Dynamic Partial-Order Reduction Techniques , 2010, FASE.

[7]  Darko Marinov,et al.  Basset: a tool for systematic testing of actor programs , 2010, FSE '10.

[8]  Philipp Haller,et al.  Actors in Scala - concurrent programming for the multi-core era , 2011 .