1. A method for testing a software application program, the method comprising: providing randomized input into a logging facility; 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.