1. A computer-implemented method to generate a test suite for fault localization in a software application, the computer-implemented method comprising: receiving at least a portion of a software application, a failing test causing the portion of the software application to fail and an execution similarity criterion; adding the failing test to a set of tests; performing the following at least once includes repeating until at least one of a time budget and a computational budget is exhausted: selecting one or more tests out of the set of tests for execution; executing at least one of the selected one or more tests on the portion of the software application concretely to record a test outcome; executing at least one of the selected one or more tests on the portion of the software application symbolically to record a path constraint; generating a set of one or more new tests by modifying the path constraint and solving the path constraint; selecting for execution, from the set of one or more new tests, a new test that is substantially most similar to any previously executed failing test using the execution similarity criterion; and adding the selected new test to the set of tests.