1. A method for assessing vulnerabilities of software applications, the method comprising: providing a plurality of software assessment testing engines, each configured to perform vulnerability tests on a software application; receiving technical characteristics of the software application; receiving business context information relating to the software application; determining a preferred assurance level for the software application based at least in part on the technical characteristics and business context information; and defining a vulnerability test plan for the software application based on the preferred assurance level, wherein the vulnerability test plan comprises one or more of the vulnerability tests.