1. A computer-implemented method for prioritizing tests based on test results, comprising: under the control of one or more computer systems configured with executable instructions, receiving a plurality of test results for each of a plurality of tests, each test result comprising an indicator indicating whether the test was successful or unsuccessful, each test result having an indicator that indicates that the test was unsuccessful further comprising an error message; determining, for each test in the plurality of tests, a failure pattern selected from a plurality of predetermined failure pattern categories, wherein the failure pattern is selected based at least in part on a pattern of indicators for successive test results of the test, the indicators indicating whether the test was successful or unsuccessful; determining, for each test in the plurality of tests, a pass rate based at least in part on a proportion of the test results having indicators indicating that the test was successful; determining, for each test result having the indicator indicating that the test was unsuccessful, an error signature for the test result based at least in part on the error message; determining, for each different error signature associated with each test, an error signature frequency based at least in part on a proportion of the test results for the test associated with the error signature; and generating a report, the report prioritizing the tests based at least in part on the determined failure patterns, pass rates, and error signature frequencies, wherein the generated report is prioritized first by the determined failure patterns, then by the determined pass rates within each failure pattern, and then by the determined error signature frequencies within each pass rate.