Mining Android Crash Fixes in the Absence of Issue- and Change-Tracking Systems
Android apps are prone to crash. This often arises from the misuse of Android framework APIs, making it harder to debug since official Android framework documentation does not discuss thoroughly potential exceptions, especially those that are thrown deep in related code. Recently, the program repair community has also started to investigate the possibility to fix crashes automatically. Current results, however, apply to limited example cases. In both scenarios of repair, the main issue is the need for more example data to drive the fix processes due to the high cost in time and effort needed to collect and identify fix examples. We propose in this work a scalable approach, CraftDroid, to mine crash fixes by leveraging a set of 28 thousand carefully reconstructed app lineages from app markets. We developed a replicative testing approach that locates fixes among app versions which output different runtime logs with the exact same test inputs. Overall, we have mined 104 relevant crash fixes, and further abstracted 17 fine-grained fix templates. We have demonstrated in a patch recommendation experiment that these templates are effective for repairing crashed apks. Finally, we release ReCBench, a benchmark consisting of 200 crashed apks and the crash replication scripts, which the community can explore for evaluating generated crash-inducing bug patches.
Wed 17 Jul
|14:00 - 14:22|
Jiexin ZhangUniversity of Cambridge, Alastair R. BeresfordUniversity of Cambridge, UK, Stephan A. KollmannUniversity of CambridgeDOI Pre-print
|14:22 - 14:45|
|14:45 - 15:07|
|15:07 - 15:30|