In one embodiment, the present invention is a method for automatically
preventing errors in computer software. The method includes storing the
computer software in a code repository; executing a plurality of software
verification tools to verify the computer software, wherein each of the
plurality of software verification tools automatically generates one or
more test cases; generating verification results responsive to executing
the plurality of software verification tools and the automatically
generated test cases; processing the verification results for generating
an objective criterion of quality of the computer software; and
customizing the scope of one or more of the plurality of verification
tools responsive to the objective criterion of quality of the computer
software.