1. A method for testing source code, comprising: intercepting tests run on a first version of source code to determine the tests being run and code coverage from running the tests; storing mappings of the determined tests to the first version of the source code and the determined code coverage in a database; upon 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 stored mappings and code coverage information in the database; and running the determined set of tests on the second version of the source code and the dependent code.