1. An apparatus comprising an event-driven test framework for running tests in an event-driven fashion, wherein the event-driven test framework comprises: a test application base class that implements an external test execution interface and defines an event-driven test application interface to be implemented by a user of the event-driven test framework, wherein the event-driven test application interface comprises a hook for user-implemented creation of a test scenario object, a hook for user-implemented creation of a test observer, a hook for user-implemented initialization of a test suite and a hook for user-implemented cleanup of a test suite; a test scenario base class that defines an event-driven test scenario interface to be implemented by a user of the event-driven test framework, wherein the event-driven test scenario interface comprises a hook for user-implemented initialization of a test scenario and a hook for a user-implemented callback method for a test scenario and implements a callback timer; a test observer base class that implements scheduling of event-driven tests and provision of timer and initialization events to a test scenario; and a transition-graph test model, comprising: a transition base class that encapsulates one transition of one event and one event to wait on; a transition graph base class for a transition graph that implements a callback method for testing scenarios and for working with transition parsers to parse a transition graph; and a transition parser base class implementing parsing of transitions derived from the transition base class.