abstract = "Android apps are omnipresent, and frequently suffer
from crashes leading to poor user experience and
economic loss. Past work focused on automated test
generation to detect crashes in Android apps. However,
automated repair of crashes has not been studied. In
this paper, we propose the first approach to
automatically repair Android apps, specifically we
propose a technique for fixing crashes in Android apps.
Unlike most test-based repair approaches, we do not
need a test-suite; instead a single failing test is
meticulously analyzed for crash locations and reasons
behind these crashes. Our approach hinges on a careful
empirical study which seeks to establish common
root-causes for crashes in Android apps, and then
distills the remedy of these root-causes in the form of
eight generic transformation operators. These operators
are applied using a search-based repair framework
embodied in our repair tool Droix. We also prepare a
benchmark DroixBench capturing reproducible crashes in
Android apps. Our evaluation of Droix on DroixBench
reveals that the automatically produced patches are
often syntactically identical to the human patch, and
on some rare occasion even better than the human patch
(in terms of avoiding regressions). These results
confirm our intuition that our proposed transformations
form a sufficient set of operators to patch crashes in
Android.",