1. A method for testing software code, comprising: determining tainted branch targets by performing data flow analysis on the execution traces of the code to obtain tainted branch targets that are a result of tainted conditional branches; and filtering the tainted branch targets to a set where new code coverage is likely to occur in order to test the software code.