Dynodroid: An Input Generation System for Android Apps

Slides:



Advertisements
Similar presentations
UBIQUITY V3 An extensible platform for creating dynamic, customized, and geocentric native mobile applications.
Advertisements

Android Application Development A Tutorial Driven Course.
Cross Platform UI testing using Sikuli
Test Automation on Mobile environnents Eder Figueroa 4/29/203.
Automated Evaluation of Runtime Object States Against Model-Level States for State-Based Test Execution Frank(Weifeng) Xu, Gannon University Dianxiang.
Dynodroid: Dynamic Analysis of Smartphone Apps
Mini Project Seminar on Pizza Ordering Application for Android
Dynodroid: An Input Generation System for Android Apps
Automatic and Scalable Fault Detection for Mobile Applications MobiSys’ 14 Presented by Haocheng Huang
VanarSena: Automated App Testing. App Testing Test the app for – performance problems – crashes Testing app in the cloud – Upload app to a service – App.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
PROJECT IN DISTRIBUTED SYSTEMS IPERF FOR ANDROID Developers: Shir Degani, Yuval Degani Supervisors: Prof. Roy Friedman, Alex Kogan.
DEPARTMENT OF COMPUTER ENGINEERING
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Location Aware Social Network Group 2 CS Team Introduction Prasun Johari M.S. ECE Ankur Aggarwal M.S. CS Gurlal Kahlon M.S. CS Shobith Alva M.S.
1 Presenter: Chien-Chih Chen Proceedings of the 2002 workshop on Memory system performance.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
By Ms.A.C.Sumathi AP(SG)/ Dept of CSE SNS College of Engineering, CBE.
INTERNATIONAL SUMMER ACADEMIC COURSE UNIVESITY OF NIS ISAC – Android programming.
Efficient Privilege De-Escalation for Ad Libraries in Mobile Apps Bin Liu (SRA), Bin Liu (CMU), Hongxia Jin (SRA), Ramesh Govindan (USC)
Android Introduction Platform Overview.
Mobile Application Development with ANDROID Tejas Lagvankar UMBC 29 April 2009.
About me Yichuan Wang Android Basics Credit goes to Google and UMBC.
Introduction to HP LoadRunner Getting Familiar with LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Three-tier Mobile Application Testing Framework:
Google Maps Android API v2 吳俊興 國立高雄大學 資訊工程學系 CSF645 – Mobile Computing 行動計算
Presented by: Kushal Mehta University of Central Florida Michael Spreitzenbarth, Felix Freiling Friedrich-Alexander- University Erlangen, Germany michael.spreitzenbart,
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Introduction to Android. Android as a system, is a java based operating system that runs on the Linux kernel. The system is very lightweight and full.
Integrating Fine-Grained Application Adaptation with Global Adaptation for Saving Energy Vibhore Vardhan, Daniel G. Sachs, Wanghong Yuan, Albert F. Harris,
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Presented By: Muhammad Tariq Software Engineer Android Training course.

Bharathi.S. Intel® Pentium® 4, 3.6 GHz or equivalent AMD processor 500 MB free hard disk space 2 GB RAM 1 available USB 2.0 port and USB cable Microsoft®
PUMA: Programmable UI- Automation for Large Scale Dynamic Analysis of Mobile Apps MobiSys’ 14 Presented by Haocheng Huang
© by Pearson Education, Inc. All Rights Reserved. 1 Introduction to Android From “Android: How to Program” By Paul Deitel and Harvey Deitel.
Computer Organization and Architecture Tutorial 1 Kenneth Lee.
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
Compiler and Runtime Support for Enabling Generalized Reduction Computations on Heterogeneous Parallel Configurations Vignesh Ravi, Wenjing Ma, David Chiu.
Introduction to Android
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
A Memory-hierarchy Conscious and Self-tunable Sorting Library To appear in 2004 International Symposium on Code Generation and Optimization (CGO ’ 04)
Page 1 A Platform for Scalable One-pass Analytics using MapReduce Boduo Li, E. Mazur, Y. Diao, A. McGregor, P. Shenoy SIGMOD 2011 IDS Fall Seminar 2011.
CHAPTER 1 Introduction. Chapter objectives: Understand what Android is Learn the differences between Java and Android Java Examine the Android project.
By, Rutika R. Channawar. Content Introduction Open Handset Alliance Minimum Hardware Requirements Versions Feature Architecture Advantages Disadvantages.
AppAudit Effective Real-time Android Application Auditing Andrew Jeong
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
CSE 340 Computer Architecture Summer 2016 Understanding Performance.
Guide To Develop Mobile Apps With Titanium. Agenda Overview Installation of Platform SDKs Pros of Appcelerator Titanium Cons of Appcelerator Titanium.
Introduction to Android Chapter 1 1. Objectives Understand what Android is Learn the differences between Java and Android Java Examine the Android project.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
TIZEN STUDIO INSTALLATION & ENVIRONMENT SETUP FOR DEVLAB
Android Mobile Application Development
Android.
Roadmap C: Java: Assembly language: OS: Machine code: Computer system:
Development-Introduction
Beihang University, China
CMPE419 Mobile Application Development
Improving java performance using Dynamic Method Migration on FPGAs
Programming Languages
Network Profiler: Towards Automatic Fingerprinting of Android Apps
Adaptive Code Unloading for Resource-Constrained JVMs
Android Platform, Android App Basic Components
CMPE419 Mobile Application Development
Presentation transcript:

Dynodroid: An Input Generation System for Android Apps FSE’13 Presented by Haocheng Huang huanghc@emnets.org

Introduction Static analyses are hindered by features commonly used by mobile apps such as code obfuscation, native libraries, and a complex SDK framework Key challenge of dynamic analyses is obtaining program inputs that adequately exercise the program's functionality

Contribution Propose an effective system for generating inputs to mobile apps Show how to observe, select, and execute system events for Android in a mobile device emulator without modifying the app Present extensive empirical evaluation of the system

System Architecture observe-select-execute cycle

Executor Combine the benefits of automated and manual input generation

Observer The goal of the observer is to efficiently compute as small a set of relevant events as possible without missing any Observer computes relevant UI events and relevant system events

Observer UI Events Supports two input mechanisms: touchscreen and navigation buttons First, it deems clicking each navigation button as a relevant UI event Second, it inspects the view hierarchy

Observer UI Events

Observer System Events Broadcast Receiver Events Choose 25 intents to be considered The executor serializes the appropriate intent along with a Bundle object that has a key named “pdus” mapped to a byte array denoting an array of SmsMessage objects

Observer System Events System Service Events Can be divided into internally and externally We considered externally If the selector selects this event, then the executor triggers it by sending telnet command

Selector The selector selects an event for the executor to execute from the set of relevant events E computed by the observer Implemented three different selection strategies in the selector Frequency, UniformRandom, and BiasedRandom The Frequency strategy selects an event from E that has been selected least frequently by it so far The UniformRandom strategy selects an event from E uniformly at random(like monkey)

Selector The final and default selection strategy BiasedRandom

Evaluation Experiment environment Emulator configuration 64-bit Linux machines with 128GB memory and dual-socket 16-core AMD Opteron 3.0GHz processors Emulator configuration

Evaluation App Source Code Coverage Evaluate 5 approaches on 50 apps

Evaluation App Source Code Coverage Dynodroid & Human 4-91%(51%) Dynodroid can be used to automate to a significant degree the tedious testing done by humans Dynodroid & Monkey 4-81%(47%) Dynodroid and Monkey get comparable coverage

Evaluation App Source Code Coverage Monkey requires 20X more events than BiasedRandom on average Of the three selection strategies in Dynodroid, BiasedRandom performs the best, with each of the other two strategies requiring 2X more events than it on average

Evaluation Bugs Found in Apps Bugs found by Dynodroid in the 50 open-source apps from F-Droid and the 1,000 top free apps from Google Play

Limitation 5X slower than Monkey due to heavy use of reflection Use DUMPQ can make ViewServer run 20X-40X faster Dynodroid currently supports only the Gingerbread version of Android

Conclusion Presented a practical system Dynodroid for generating relevant inputs to mobile apps on the dominant Android platform Dynodroid can generate both UI inputs and system inputs, and it allows combining inputs from human and machine