1. A computer-implemented method for fuzz testing an asynchronous event processing application, the method comprising: receiving test information that describes one or more tests that involve modifying asynchronous events relative to a contract that specifies expected behavior of an event stream and that follows a determined statistical distribution, based on one or more edge conditions, the edge conditions identifying input event conditions for which the interfaces are to be tested for expected results, wherein an event is representative of a type of action to be performed and not of the actual action, wherein at least one of the events is an event generated internal to an application; setting up one or more event processors by connecting the processors between event sources and event sinks of the target application, wherein the event processors allow modifying the event stream based on the received test information; starting the target application with asynchronous behavior that includes the event sources and event sinks; receiving from an event source a source event through one or more event processors, wherein the event sources are located external from the event sinks that handles the event; transforming the source event through the event processors by modifying the event; providing the modified source event to an event sink from the event processor; storing one or more seeds used to generate a particular test run and distribution so that a particular test run can be repeated to reproduce an identified software defect; and storing one or more tests in a data store, wherein the preceding steps are performed by at least one processor.