1. A method for optimized testing of vulnerabilities in an application, the method comprising: performing vulnerability testing on a software application, comprising: generating a first probe configured to determine whether the software application is vulnerable to a first type of attack, the generating comprising selecting the first probe from a list of tests, and embedding test data in a payload that simulates a particular type of attack on the software application, each of the tests from the list of tests simulating a different type of attack; inputting the first probe to the software application; analyzing one or more responses to the first probe received from the software application; in response to determining that the one or more responses from the software application validate a first hypothesis that one or more vulnerabilities is associated with the software application, generating at least a second probe to further verify the first hypothesis, wherein the second probe is configured to discover additional details about the software application's vulnerabilities to the first type of attack; inputting the second probe to the software application; analyzing one or more responses to the second probe received from the software application; determining an accuracy of the first hypothesis based on results of the analyzing the one or more responses to the second probe, the first hypothesis is determined to be accurate when an attack on the software application, as defined by the payload, is successful in exposing a vulnerability in the software application; and performing further testing of the software application as a function of the accuracy of the first hypothesis.