Yongjian HuTanzirul Azim Iulian Neamtiu Improving the Android Development Lifecycle with the VALERA Record-and- replay Approach.

Slides:



Advertisements
Similar presentations
Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Advertisements

Touch-Screen Mobile- Device Data Collection for Biometrics Studies W. Ciaurro, B. Major, D. Martinez, D. Panchal, G. Perez, M. Rana, R. Rana, R. Reyes,
Dynamic Analysis of Windows Phone 7 apps Behrang Fouladi, SensePost.
Mobile Application Development Fall COP 4655 U1 T/R 5:00 - 6:15pm – ECS 135 Steve Luis lecture1.
Mobile Application Development Keshav Bahadoor. Part 1 Cross Platform Web Applications.
Software & Services Group PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs Harish Patil, Cristiano Pereira,
Android Platform Overview (1)
VanarSena: Automated App Testing. App Testing Test the app for – performance problems – crashes Testing app in the cloud – Upload app to a service – App.
ANDROID OPERATING SYSTEM Guided By,Presented By, Ajay B.N Somashekar B.T Asst Professor MTech 2 nd Sem (CE)Dept of CS & E.
Android Google. Android An Open Handset Alliance Project Write apps to run on mobile phones Will be released as open source.
Phones OFF Please Operating System Introduction Parminder Singh Kang Home:
Capriccio: Scalable Threads for Internet Services Rob von Behren, Jeremy Condit, Feng Zhou, Geroge Necula and Eric Brewer University of California at Berkeley.
Mobile Application Development
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
Session 1.1. Windows Phone Topics Session 1.1 Windows Phone The Windows Phone Device.
Case study 2 Android – Mobile OS.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
A METHODOLOGY FOR EMPIRICAL ANALYSIS OF PERMISSION-BASED SECURITY MODELS AND ITS APPLICATION TO ANDROID.
TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones Presented By: Steven Zittrower William Enck ( Penn St) (Duke)
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Smart Phone Laboratory ECEN 489 Srinivas Shakkottai.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Programming 1 1. Introduction to object oriented programming and problem-solving.
TouchLogger: Inferring Keystrokes on Touch Screen from Smartphone Motion Liang Cai and Hao Chen UC Davis.
Developing Cross-Platform Applications with Visual Studio 2015
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Android Husam Abdel Rahman. Introduction Android Operating system is most popular operating system these days with the advance in voice communications.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
© Paradigm Publishing Inc. 4-1 OPERATING SYSTEMS.
Measuring Interactive Performance with VNCplay Nickolai Zeldovich, Ramesh Chandra Stanford University.
1: What is an operating system? Last Modified: 11/21/2015 1:20 AM.
Seminar of “Virtual Machines” Course Mohammad Mahdizadeh SM. University of Science and Technology Mazandaran-Babol January 2010.
PPT 4: Reproducing the Problem CEN Software Testing.
PROTEUS: Network Performance Forecast for Real- Time, Interactive Mobile Applications Qiang Xu* Sanjeev Mehrotra# Z. Morley Mao* Jin Li# *University of.
Versatile yet Lightweight Record-and-Replay for Android Yongjian Hu Tanzirul Azim Iulian Neamtiu.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
VMM Based Rootkit Detection on Android
October 24, 2003 SEESCOASEESCOA STWW - Programma Debugging Components Koen De Bosschere RUG-ELIS.
THE WINDOWS OPERATING SYSTEM Computer Basics 1.2.
Flashback : A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging Sudarshan M. Srinivasan, Srikanth Kandula, Christopher.
Enhancing Mobile Apps to Use Sensor Hubs without Programmer Effort Haichen Shen, Aruna Balasubramanian, Anthony LaMarca, David Wetherall 1.
Android operating system N. Sravani M. Tech(CSE) (09251D5804)
Google Web Toolkit for Mobile Applications Development INGENUITY AT ITS BEST……………….
Nguyen Thi Thanh Nha HMCL by Ying Zhang, Gang Huang, Xuanzhe Liu, Wei Zhang, Hong Mei, and Shunxiang Yang Refactoring Android Java Code for On-Demand Computation.
Fuzzy and Cross-App Replay for Smartphone Apps Yongjian HuIulian Neamtiu.
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Emulating Volunteer Computing Scheduling Policies Dr. David P. Anderson University of California, Berkeley May 20, 2011.
Introduction to Android Chapter 1 1. Objectives Understand what Android is Learn the differences between Java and Android Java Examine the Android project.
Yongjian Hu Iulian Neamtiu Arash Alavi
Kernel Design & Implementation
Architecture of Android
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
Chapter 2: Operating-System Structures
ProfileDroid: Multi-layer Profiling of Android Applications
Tooling and Diagnostics
Tools.
Android Developer Fundamentals V2
Tools.
Why Threads Are A Bad Idea (for most purposes)
Android Platform, Android App Basic Components
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Introduction to Mobile Apps
Wrap Up CSE 5236: Mobile Application Development
Presentation transcript:

Yongjian HuTanzirul Azim Iulian Neamtiu Improving the Android Development Lifecycle with the VALERA Record-and- replay Approach

Characterizing mobile bugs Mobile bugs study – 38 Android, 16 iOS apps – Popular, large user base, long evolution history – Bugs reports (fixed and closed): 18,579 Android; 2,967 iOS Findings – Mobile bugs fixed faster than desktop bugs (26 days vs 99 days) – Mobile bugs have higher severity that desktop bugs – Bug causes "A Cross-platform Analysis of Bugs and Bug-fixing in Open Source Projects: Desktop vs. Android vs. iOS” B. Zhou, I. Neamtiu, R. Gupta; in EASE 2015 AndroidiOS Concurrency: 66%Crash: 52% Crash: 23%App. logic: 32% Security: 5%Build:12% How to reproduce these?

Goal: replay Android executions Where is replay useful? Debugging Profiling [Regression] Testing Repeatability Where is replay useful? Debugging Profiling [Regression] Testing Repeatability Challenges complex sensor input no source code run on real phones high-throughput concurrent events Challenges complex sensor input no source code run on real phones high-throughput concurrent events

Dalvik VM Linux kernel Instrumented App GPS Mic. Intents Camera Event schedule Touchscreen Accelerometer … … modified Network ScheduleReplayer Android Framework VALERA runtime VALERA (Versatile yet Lightweight Record-and-replay for Android) App VALERA binary rewriting "Versatile yet Lightweight Record-and-replay for Android" Y. Hu, T. Azim, I. Neamtiu; in OOPSLA 2015

VALERA results 50 popular apps, high-bandwidth streams Record and replay 70-second executions VALERA results 50 popular apps, high-bandwidth streams Record and replay 70-second executions AppStreams or Events ReplayedOverhead (%) Log rate (KB/sec) AmazonCamera (frame buffer), Network, Touchscreen Barcode ScannerCamera (frame buffer), Network, Touchscreen3.02,034 TripAdvisorGPS, Network, Touchscreen3.119 YelpGPS, Network, Touchscreen1.112 ShazamMicrophone, Network, Touchscreen1.266 All "Versatile yet Lightweight Record-and-replay for Android" Y. Hu, T. Azim, I. Neamtiu; in OOPSLA 2015

Reproducing bugs: Replay a trace that leads to a bug in an app Couple replay with debugger to examine crash state Experiment: Gathered bugs containing "steps to reproduce" from bug repositories Reproducing bugs: Replay a trace that leads to a bug in an app Couple replay with debugger to examine crash state Experiment: Gathered bugs containing "steps to reproduce" from bug repositories

Time warping: alter execution time without changing app behavior Fast forwarding: reduce time delays between input events and gestures during data entry (e.g., virtual and physical keyboard) or idle time (e.g., user reading the screen) Time warping: alter execution time without changing app behavior Fast forwarding: reduce time delays between input events and gestures during data entry (e.g., virtual and physical keyboard) or idle time (e.g., user reading the screen)

Semantic sensor data alteration: distort sensor readings by a factor q (where 0 ≤ q ≤ 1) in a semantically meaningful way GPS location: map shift, unknown location, change speed Camera: blur, darken, lighten, rotate Microphone: add noise, change sample rate Semantic sensor data alteration: distort sensor readings by a factor q (where 0 ≤ q ≤ 1) in a semantically meaningful way GPS location: map shift, unknown location, change speed Camera: blur, darken, lighten, rotate Microphone: add noise, change sample rate

AppHarmful Races AnyMemo 1 GhostCommander 1 NPR News 1 OI File Manager 1 OS Monitor 2 TextWarrior 1 Tomdroid 1 Event flipping: found, verified, reproduced 8 races in real-world apps

Conclusions Mobile bugs, bug-fixing processes differ from desktop bugs/processes – How to find, reproduce fix them? Record-and-replay – Challenging on Android – Applications Debugging, reproducing bugs Finding new bugs Profiling