1. A method for testing web applications with recursive discovery and analysis comprising the steps of: (a) receiving a target; (b) crawling the target to discover a plurality of analyzable objects; (c) conduct attack sequences on the plurality of analyzable objects; (d) discovering an additional analyzable object during the attack sequence, such additional analyzable object not being readily apparent to a crawl process, and continuing at step (b) with the additional analyzable object used as an input to be used during said crawling.