Using GUI Run-Time State as Feedback to Generate Test Cases
ICSE '07 Proceedings of the 29th international conference on Software Engineering
An event-flow model of GUI-based applications for testing: Research Articles
Software Testing, Verification & Reliability
A Systematic Survey of Program Comprehension through Dynamic Analysis
IEEE Transactions on Software Engineering
Generating Event Sequence-Based Test Cases Using GUI Runtime State Feedback
IEEE Transactions on Software Engineering
TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
Automating GUI testing for Android applications
Proceedings of the 6th International Workshop on Automation of Software Test
Experiences of System-Level Model-Based GUI Testing of an Android Application
ICST '11 Proceedings of the 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation
Self-constructive high-rate system energy modeling for battery-powered mobile systems
MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications, and services
Proceedings of the 13th International Conference on Human Computer Interaction with Mobile Devices and Services
ProfileDroid: multi-layer profiling of android applications
Proceedings of the 18th annual international conference on Mobile computing and networking
Using GUI ripping for automated testing of Android applications
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Automated concolic testing of smartphone apps
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
AppsPlayground: automatic security analysis of smartphone applications
Proceedings of the third ACM conference on Data and application security and privacy
A grey-box approach for automated GUI-model generation of mobile applications
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Automated testing with targeted event sequence generation
Proceedings of the 2013 International Symposium on Software Testing and Analysis
RERAN: timing- and touch-sensitive record and replay for Android
Proceedings of the 2013 International Conference on Software Engineering
Static Reference Analysis for GUI Objects in Android Software
Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization
Hi-index | 0.00 |
Systematic exploration of Android apps is an enabler for a variety of app analysis and testing tasks. Performing the exploration while apps run on actual phones is essential for exploring the full range of app capabilities. However, exploring real-world apps on real phones is challenging due to non-determinism, non-standard control flow, scalability and overhead constraints. Relying on end-users to conduct the exploration might not be very effective: we performed a 7-use study on popular Android apps, and found that the combined 7-use coverage was 30.08% of the app screens and 6.46% of the app methods. Prior approaches for automated exploration of Android apps have run apps in an emulator or focused on small apps whose source code was available. To address these problems, we present A3E, an approach and tool that allows substantial Android apps to be explored systematically while running on actual phones, yet without requiring access to the app's source code. The key insight of our 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). We then use this graph to develop an exploration strategy named Targeted Exploration that permits fast, direct exploration of activities, including activities that would be difficult to reach during normal use. We also developed a strategy named Depth-first Exploration that mimics user actions for exploring activities and their constituents in a slower, but more systematic way. To measure the effectiveness of our techniques, we use two metrics: activity coverage (number of screens explored) and method coverage. Experiments with using our approach on 25 popular Android apps including BBC News, Gas Buddy, Amazon Mobile, YouTube, Shazam Encore, and CNN, show that our exploration techniques achieve 59.39--64.11% activity coverage and 29.53--36.46% method coverage.