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...
Saved in:
Main Authors: | , , , , , , |
---|---|
Other Authors: | |
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 |