1. A method for testing source code, comprising: receiving a configuration file specifying an Internet Protocol (IP) address of a server which runs tests on source code and a type of code coverage instrumentation used in the tests; copying an agent, which is configured to interpret the type of code coverage instrumentation specified in the configuration file, to the server based on the IP address of the server; intercepting, by the agent, tests run on a first version of the source code at the server specified in the configuration file, based on the type of code coverage instrumentation specified in the configuration file, to determine the tests being run and code coverage from running the tests; storing, in a database, mappings of the determined tests to portions of the first version of the source code based on the determined code coverage; responsive to a second version of the source code being checked in, determining a set of tests to run on the second version of the source code and code that is dependent on the second version of the source code based on the stored mappings in the database, wherein the code that is dependent on the second version of the source code includes code determined to use application programming interfaces (APIs) within the second version of the source code; running the determined set of tests on the second version of the source code and the dependent code; and re-learning one or more of the stored mappings subsequent to changes being made to one or more of the tests corresponding to the one or more of the stored mappings.