Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps

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...

Full description

Bibliographic Details
Main Authors: Su, Ting, Fan, Lingling, Chen, Sen, Liu, Yang, Xu, Lihua, Pu, Geguang, Su, Zhendong
Other Authors: School of Computer Science and Engineering
Format: Journal Article
Language:English
Published: 2022
Subjects:
Online Access:https://hdl.handle.net/10356/161835
_version_ 1826118881500987392
author Su, Ting
Fan, Lingling
Chen, Sen
Liu, Yang
Xu, Lihua
Pu, Geguang
Su, Zhendong
author2 School of Computer Science and Engineering
author_facet School of Computer Science and Engineering
Su, Ting
Fan, Lingling
Chen, Sen
Liu, Yang
Xu, Lihua
Pu, Geguang
Su, Zhendong
author_sort Su, Ting
collection NTU
description 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.
first_indexed 2024-10-01T04:50:47Z
format Journal Article
id ntu-10356/161835
institution Nanyang Technological University
language English
last_indexed 2024-10-01T04:50:47Z
publishDate 2022
record_format dspace
spelling ntu-10356/1618352022-09-21T05:05:14Z Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps Su, Ting Fan, Lingling Chen, Sen Liu, Yang Xu, Lihua Pu, Geguang Su, Zhendong School of Computer Science and Engineering Engineering::Computer science and engineering Mobile Applications Android Applications 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. National Research Foundation (NRF) This work was partially supported by SNSF Spark Project CRSK-2_190302; partially supported by NSFC Project 61632005 and 61532019; partially supported by the National Research Foundation, Prime Ministers Office, Singapore under its National Cybersecurity R&D Program (Award No. NRF2018NCR-NCR005-0001), the Singapore National Research Foundation under NCR Award Number NRF2018NCR-NSOE004-0001, and NRF Investigatorship NRFI06-2020-0022. 2022-09-21T05:05:13Z 2022-09-21T05:05:13Z 2020 Journal Article 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 0098-5589 https://hdl.handle.net/10356/161835 10.1109/TSE.2020.3013438 2-s2.0-85128871403 4 48 1115 1137 en NRF2018NCR-NCR005-0001 NRF2018NCR-NSOE004-0001 NRFI06-2020-0022 IEEE Transactions on Software Engineering © 2020 IEEE. All rights reserved.
spellingShingle Engineering::Computer science and engineering
Mobile Applications
Android Applications
Su, Ting
Fan, Lingling
Chen, Sen
Liu, Yang
Xu, Lihua
Pu, Geguang
Su, Zhendong
Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps
title Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps
title_full Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps
title_fullStr Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps
title_full_unstemmed Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps
title_short Why my app crashes? Understanding and benchmarking framework-specific exceptions of android apps
title_sort why my app crashes understanding and benchmarking framework specific exceptions of android apps
topic Engineering::Computer science and engineering
Mobile Applications
Android Applications
url https://hdl.handle.net/10356/161835
work_keys_str_mv AT suting whymyappcrashesunderstandingandbenchmarkingframeworkspecificexceptionsofandroidapps
AT fanlingling whymyappcrashesunderstandingandbenchmarkingframeworkspecificexceptionsofandroidapps
AT chensen whymyappcrashesunderstandingandbenchmarkingframeworkspecificexceptionsofandroidapps
AT liuyang whymyappcrashesunderstandingandbenchmarkingframeworkspecificexceptionsofandroidapps
AT xulihua whymyappcrashesunderstandingandbenchmarkingframeworkspecificexceptionsofandroidapps
AT pugeguang whymyappcrashesunderstandingandbenchmarkingframeworkspecificexceptionsofandroidapps
AT suzhendong whymyappcrashesunderstandingandbenchmarkingframeworkspecificexceptionsofandroidapps