1. A method for testing a software application program, the method comprising: providing randomized input into a logging facility, the logging facility collecting data from multiple systems in a coupling facility log stream; performing automated testing of the logging facility in a multi-processing environment; performing self-verification of data retrieved from the logging facility to ensure no data loss occurs due to external system events or failures driven by a test tool; performing real-time analysis of results received by the test tool based on the randomized input into the logging facility; capturing first failure data; and performing self-verification of results of a data recovery operation of the logging facility in a disaster recovery scenario; wherein performing self-verification of data retrieved includes: writing a number of log blocks, N, to the log stream, each log block being a randomly sized block having tracking information stored inside each log block; iteratively forcing log data to be offloaded from primary storage to secondary storage; iteratively performing a dynamic update of log stream attributes including a class name, log stream size and a threshold offload values; iteratively swapping duplexing of the log stream between a Coupling Facility Structure DUPLEX and SIMPLEX modes; reading all log blocks from the log stream that were written during this current iteration; after verification completes successfully, deleting log blocks older than N/2+1 from the log stream.