1. A method performed by at least one computer system that tests a web service, the method comprising: obtaining web service metadata from the web service; automatically generating a first set of test cases at least in part based on the web service metadata obtained from the web service; automatically testing the web service using the first set of test cases; automatically generating first learning data regarding the first set of test cases by associating each test case of the first set of test cases with at least one respective test metric; automatically generating a second set of test cases at least in part based on the web service metadata obtained from the web service; automatically testing the web service using the second set of test cases; automatically generating second learning data regarding the second set of test cases by associating each test case of the second set of test cases with at least one respective test metric; automatically comparing the second learning data to the first learning data; automatically determining, at least in part based on the comparison between the first and the second learning data, that a third set of test cases is to be generated at least in part based on which one of the first or the second set of test cases performs worse relative to the other of the first or the second set of test cases; responsive to determining that the first set of test cases performs worse relative to the second set of test cases, automatically generating the third set of test cases at least in part based on the first set of test cases, the third set of test cases different from the first set of test cases; and responsive to determining that the second set of test cases performs worse relative to the first set of test cases, automatically generating the third set of test cases at least in part based on the second set of test cases, the third set of test cases different from the second set of test cases.