1. A computer-implemented method to localize faults in a software application, the computer-implemented method comprising: receiving a set of tests to apply on a software application, wherein the software includes both unknown fault paths and known fault paths; associating one or more domain elements with the software; receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements based on those domain elements appearing in passing and failing tests; executing each test in the set of tests on the software application, and recording, for each executed test, a set of test information including: a test outcome on whether a specific fault has occurred, wherein a passing test is the test outcome with no fault that has occurred, and a failing test is the test outcome with a fault that has occurred; one or more executed statements in the software application, and for each execution of each executed statement in the software application, compute an abstract value based on its runtime behavior that indicates a domain element to which that statement execution corresponds; using the statistical fault localization technique which has been received, calculating a suspiciousness rating for each of the domain elements based on the set of test information which has been recorded, wherein the suspiciousness rating is computed for each executed domain element as a percentage of passing and failing tests that execute that domain element; and reporting a list containing a suspiciousness rating for each domain element in one of a decreasing order of suspiciousness rating and an increasing order of suspiciousness rating.