Strategies for Testing Event-Driven Programs

Testing strategies are well understood and established in traditional Object Oriented and/or functional settings. The same is not true for asynchronous, event-driven paradigms such as the actor model, in which the timing and execution context of assertions is important and temporal relations between generated events become test objectives.

This session introduces the Akka TestKit, which supports a wide range of testing approaches, from white box to black box, detailing strengths and weaknesses of the different levels at which tests can be conducted. The TestKit’s mostly passive approach is complemented by specialized frameworks such as Basset and Setak, which control event schedules as well as static verification of finite state machines.