Please use this identifier to cite or link to this item: https://hdl.handle.net/10356/161835
Title: Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps
Authors: Su, Ting
Fan, Lingling
Chen, Sen
Liu, Yang
Xu, Lihua
Pu, Geguang
Su, Zhendong
Keywords: Engineering::Computer science and engineering
Issue Date: 2020
Source: Su, T., Fan, L., Chen, S., Liu, Y., Xu, L., Pu, G. & Su, Z. (2020). Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps. IEEE Transactions On Software Engineering, 48(4), 1115-1137. https://dx.doi.org/10.1109/TSE.2020.3013438
Project: NRF2018NCR-NCR005-0001
NRF2018NCR-NSOE004-0001
NRFI06-2020-0022
Journal: IEEE Transactions on Software Engineering
Abstract: Mobile apps have become ubiquitous. Ensuring their correctness and reliability is important. However, many apps still suffer from occasional to frequent crashes, weakening their competitive edge. Large-scale, deep analyses of the characteristics of real-world app crashes can provide useful insights to both developers and researchers. However, such studies are difficult and yet to be carried out - this work fills this gap. We collected 16,245 and 8,760 unique exceptions from 2,486 open-source and 3,230 commercial Android apps, respectively, and observed that the exceptions thrown from Android framework (termed 'framework-specific exceptions') account for the majority. With one-year effort, we (1) extensively investigated these framework-specific exceptions, and (2) further conducted an online survey of 135 professional app developers about how they analyze, test, reproduce and fix these exceptions. Specifically, we aim to understand the framework-specific exceptions from several perspectives: (i) their characteristics (e.g., manifestation locations, fault taxonomy), (ii) the developers' testing practices, (iii) existing bug detection techniques' effectiveness, (iv) their reproducibility and (v) bug fixes. To enable follow-up research (e.g., bug understanding, detection, localization and repairing), we further systematically constructed, DroidDefects, the first comprehensive and largest benchmark of Android app exception bugs. This benchmark contains 33 reproducible exceptions (with test cases, stack traces, faulty and fixed app versions, bug types, etc.), and 3,696 ground-truth exceptions (real faults manifested by automated testing tools), which cover the apps with different complexities and diverse exception types. Based on our findings, we also built two prototype tools: Stoat+, an optimized dynamic testing tool, which quickly uncovered three previously-unknown, fixed crashes in Gmail and Google+; ExLocator, an exception localization tool, which can locate the root causes of specific exception types. Our dataset, benchmark and tools are publicly available on https://github.com/tingsu/droiddefects.
URI: https://hdl.handle.net/10356/161835
ISSN: 0098-5589
DOI: 10.1109/TSE.2020.3013438
Schools: School of Computer Science and Engineering 
Rights: © 2020 IEEE. All rights reserved.
Fulltext Permission: none
Fulltext Availability: No Fulltext
Appears in Collections:SCSE Journal Articles

SCOPUSTM   
Citations 20

9
Updated on Oct 1, 2023

Web of ScienceTM
Citations 20

16
Updated on Oct 2, 2023

Page view(s)

95
Updated on Oct 3, 2023

Google ScholarTM

Check

Altmetric


Plumx

Items in DR-NTU are protected by copyright, with all rights reserved, unless otherwise indicated.