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

Saved in:
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: Article
Language:English
Published: 2022
Subjects:
Online Access:https://hdl.handle.net/10356/161835
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-161835
record_format dspace
spelling sg-ntu-dr.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.
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic Engineering::Computer science and engineering
Mobile Applications
Android Applications
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
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.
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
format Article
author Su, Ting
Fan, Lingling
Chen, Sen
Liu, Yang
Xu, Lihua
Pu, Geguang
Su, Zhendong
author_sort Su, Ting
title 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_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_sort why my app crashes? understanding and benchmarking framework-specific exceptions of android apps
publishDate 2022
url https://hdl.handle.net/10356/161835
_version_ 1745574635648319488