Skip to main navigation Skip to search Skip to main content

Repairing Crashes in Android Apps

  • Shin Hwei Tan
  • , Zhen Dong
  • , Xiang Gao
  • , Abhik Roychoudhury
  • Southern University of Science and Technology
  • National University of Singapore

Research output: Contribution to journalConference articlepeer-review

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.

Original languageEnglish
Pages (from-to)187-198
Number of pages12
JournalProceedings - International Conference on Software Engineering
Volume2018-January
DOIs
StatePublished - 2018
Externally publishedYes
Event40th International Conference on Software Engineering, ICSE 2018 - Gothenburg, Sweden
Duration: 27 May 20183 Jun 2018

Keywords

  • Android apps
  • Automated repair
  • Crash
  • SBSE

Fingerprint

Dive into the research topics of 'Repairing Crashes in Android Apps'. Together they form a unique fingerprint.

Cite this