Large-Scale Analysis of Framework-Specific Exceptions in Android Apps

@article{Fan2018LargeScaleAO,
  title={Large-Scale Analysis of Framework-Specific Exceptions in Android Apps},
  author={Lingling Fan and Ting Su and Sen Chen and Guozhu Meng and Yang Liu and Lihua Xu and Geguang Pu and Zhendong Su},
  journal={2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)},
  year={2018},
  pages={408-419}
}
  • Lingling Fan, Ting Su, Z. Su
  • Published 22 January 2018
  • Computer Science
  • 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)
Mobile apps have become ubiquitous. For app developers, it is a key priority to ensure their apps' correctness and reliability. 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 guide developers, or help improve testing and analysis tools. However, such studies do not exist — this paper fills this gap. Over a four-month long effort, we… 

Figures and Tables from this paper

Why My App Crashes? Understanding and Benchmarking Framework-Specific Exceptions of Android Apps
TLDR
It is observed that the exceptions thrown from Android framework (termed “framework-specific exceptions”) account for the majority, and DroidDefects, the first comprehensive and largest benchmark of Android app exception bugs, is constructed, which contains 33 reproducible exceptions.
Automated Functional Fuzzing of Android Apps
TLDR
Independent view fuzzing is introduced, the first automated approach for detecting functional bugs in Android apps, to leverage the commonly-held independent view property of Android apps to manufacture property-preserving mutant tests from a set of seed tests that validate certain app properties.
Mining Android crash fixes in the absence of issue- and change-tracking systems
TLDR
This work proposes a scalable approach, CraftDroid, to mine crash fixes by leveraging a set of 28 thousand carefully reconstructed app lineages from app markets, without the need for the app source code or issue reports, and developed a replicative testing approach that locates fixes among app versions which output different runtime logs with the exact same test inputs.
Characterizing Android-Specific Crash Bugs
  • Ajay Kumar Jha, Sunghee Lee, W. Lee
  • Computer Science, Biology
    2019 IEEE/ACM 6th International Conference on Mobile Software Engineering and Systems (MOBILESoft)
  • 2019
TLDR
This paper analyzes 1,862 confirmed crash reports of 418 open source Android apps to investigate and characterize various Android-specific crash bugs, their prevalence, root causes, and solutions, and the results can help app developers and researchers in designing effective bug detection tools for Android apps.
Improving Automated GUI Exploration of Android Apps via Static Dependency Analysis
TLDR
Gesda introduces dependency-informed exploration, an automated approach that leverages static dependency analysis to effectively improve GUI exploration performance and outperforms existing state-of-the-art GUI exploration techniques, i.e., Monkey and Stoat.
Fully automated functional fuzzing of Android apps for detecting non-crashing logic bugs
TLDR
Inspired by metamorphic testing, the key insight is to leverage the commonly-held independent view property of Android apps to manufacture property-preserving mutant tests from a set of seed tests that validate certain app properties.
Benchmarking automated GUI testing for Android against real-world bugs
TLDR
This paper offers the first ground-truth empirical evaluation of automated GUI testing for Android, and identifies five major common challenges that these tools face, and reveals additional findings such as factors affecting these tools in bug finding and opportunities for tool improvements.
Practical GUI Testing of Android Applications Via Model Abstraction and Refinement
TLDR
On 15 large, widely-used apps from the Google Play Store, APE outperforms the state-of-the-art Android GUI testing tools in terms of both testing coverage and the number of detected unique crashes.
Automated Third-Party Library Detection for Android Applications: Are We There Yet?
  • Xian Zhan, Lingling Fan, Yang Liu
  • Computer Science
    2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)
  • 2020
TLDR
A comprehensive empirical study evaluating and comparing all publicly available TPL detection tools based on four criteria: effectiveness, efficiency, code obfuscation-resilience capability, and ease of use, which shows that LibScout outperforms others regarding effectiveness, LibRadar takes less time than others and is also regarded as the most easy-to-use one, and LibPecker performs the best in defending against code obfuscations techniques.
Efficiently Manifesting Asynchronous Programming Errors in Android Apps
  • Lingling Fan, Ting Su, G. Pu
  • Computer Science
    2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)
  • 2018
TLDR
APEChecker, a technique to automatically and efficiently manifest APEs, is introduced, to characterize APEs as specific fault patterns, and synergistically combine static analysis and dynamic UI exploration to detect and verify such errors.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 73 REFERENCES
Debugging Energy-Efficiency Related Field Failures in Mobile Apps
TLDR
An open-source framework that helps to communicate, localize and patch energy consumption related field failures in Android apps and observes that it can localize defects in a short amount of time, even for apps with thousands of lines-of-code.
DroidLeaks: Benchmarking Resource Leak Bugs for Android Applications
TLDR
This paper conducted an empirical study, which revealed the root causes of frequent resource leaks in Android apps and common patterns of faults made by developers, and implemented a static checker to detect a common pattern of resource leaksIn Android apps.
Efficiently, effectively detecting mobile app bugs with AppDoctor
TLDR
AppDoctor is a system for efficiently and effectively testing apps against many system and user actions, and helping developers diagnose the resultant bug reports, and quickly screens for potential bugs using approximate execution, which runs much faster than real execution and exposes bugs but may cause false positives.
Characterizing and detecting performance bugs for smartphone applications
TLDR
A study of 70 real-world performance bugs collected from eight large-scale and popular Android applications, which identified their common patterns and can support follow-up research on performance bug avoidance, testing, debugging and analysis for smartphone applications.
Taming Android fragmentation: Characterizing and detecting compatibility issues for Android apps
  • Lili Wei, Yepang Liu, S. Cheung
  • Computer Science
    2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE)
  • 2016
TLDR
An empirical study on 191 real-world compatibility issues collected from popular open-source Android apps is conducted, characterized the symptoms and root causes of compatibility issues, and disclosed that the patches of these issues exhibit common patterns.
How developers detect and fix performance bottlenecks in Android apps
TLDR
The findings indicate that developers heavily rely on user reviews and manual execution of the apps for detecting performance bugs, and available tools are mostly for profiling and do not help in detecting and fixing performance issues automatically.
Scalable race detection for Android applications
TLDR
The capabilities of the system significantly exceed the state of the art: it can analyze real-world application interactions in minutes rather than hours, finds errors inherently beyond the reach of existing approaches, while still (critically) reporting very few false positives.
Systematic execution of Android test suites in adverse conditions
TLDR
This work proposes a new methodology for testing by leveraging existing test suites such that each test case is systematically exposed to adverse conditions where certain unexpected events may interfere with the execution.
Targeted and depth-first exploration for systematic testing of android apps
TLDR
The key insight of the approach is to use a static, taint-style, dataflow analysis on the app bytecode in a novel way, to construct a high-level control flow graph that captures legal transitions among activities (app screens).
Automating GUI testing for Android applications
TLDR
This paper conducts a bug mining study to understand the nature and frequency of bugs affecting Android applications, and presents techniques for detecting GUI bugs by automatic generation of test cases, feeding the application random events, instrumenting the VM, producing log/trace files and analyzing them post-run.
...
1
2
3
4
5
...