  Automated program repair (APR) has attracted great research attention, and
various techniques have been proposed. Search-based APR is one of the most
important categories among these techniques. Existing researches focus on the
design of effective mutation operators and searching algorithms to better find
the correct patch. Despite various efforts, the effectiveness of these
techniques are still limited by the search space explosion problem. One of the
key factors attribute to this problem is the quality of fault spaces as
reported by existing studies. This motivates us to study the importance of the
fault space to the success of finding a correct patch. Our empirical study aims
to answer three questions. Does the fault space significantly correlate with
the performance of search-based APR? If so, are there any indicative
measurements to approximate the accuracy of the fault space before applying
expensive APR techniques? Are there any automatic methods that can improve the
accuracy of the fault space? We observe that the accuracy of the fault space
affects the effectiveness and efficiency of search-based APR techniques, e.g.,
the failure rate of GenProg could be as high as $60\%$ when the real fix
location is ranked lower than 10 even though the correct patch is in the search
space. Besides, GenProg is able to find more correct patches and with fewer
trials when given a fault space with a higher accuracy. We also find that the
negative mutation coverage, which is designed in this study to measure the
capability of a test suite to kill the mutants created on the statements
executed by failing tests, is the most indicative measurement to estimate the
efficiency of search-based APR. Finally, we confirm that automated generated
test cases can help improve the accuracy of fault spaces, and further improve
the performance of search-based APR techniques.
