1. A method for testing software code in a computer system comprising: identifying a set of code tests associated with the software code; identifying, for each code test of the set of code tests, relevant code elements of the software code, determining, by a code change tracker implemented using at least one processor executing instructions stored on at least one non-transitory computer-readable storage medium, changed code elements in the software code; determining, by a dependency analyser implemented using at least one processor executing instructions stored on at least one non-transitory computer-readable storage medium, dependencies between the code elements and dependency changes between code elements based on the determined changed code elements; determining, by an impact assessment engine implemented using at least one processor executing instructions stored on at least one non-transitory computer-readable storage medium, impact factors for each of the respective changed code elements based on the determined dependency changes, each impact factor predicting a potential failure of future tests conducted using at least one of the set of code tests; selecting a subset of the set of code tests for the software code based on the identified relevant code elements and on the impact factors; and performing using at least one processor executing instructions stored on at least one non-transitory computer-readable storage medium, the selected subset of code tests on the software code.