© 2013 MobiGnosis
BEST PRACTICES
Mobile App Testingwww.mobignosis.com
Author: Kavitha, Test Training Head, MobiGnosis
© 2013 MobiGnosis
• Is a software application designed to run on smartphones, tablets and mobile devices.
• Application distribution platforms – appstore, googleplay
• Designed and tested on emulators before the field testing
• Ex. calender, contacts, email, weather, games, banking etc.
Mobile application or mobile app
© 2013 MobiGnosis
Mobile application or mobile app …
© 2013 MobiGnosis
• Short dev cycle, rapid changes, multiple form factors.
• Native, Web and Hybrid apps.
• Multiple devices and OS.
• Non functional – Security and performance.
• Backward compatibility.
• Popular mobile web browsers.
• Network.
• Graphics, Video, Audio.
• Memory usage.
• Usability .
• What is coming next ?.
Mobile App Challenges
© 2013 MobiGnosis
Mobile app dev cycle
© 2013 MobiGnosis
Mobile app dev process
© 2013 MobiGnosis
Types of mobile applications• Native app
• Runs on device OS and firmware
• Android, IOS
• Web app
• Browser app, web capable mobile devices
• HTML, javascript
• Hybrid app
• Combination of Native and Web apps
• Has cross platform compatibility
© 2013 MobiGnosis
Multiple devices and OS
Multiple Handsets - i Phone, Android Mobiles, Blackberry, Nokia, Windows Mobile
Multiple Platforms - Android, IOS, Brew, J2ME, Windows Mobile and Symbian.
© 2013 MobiGnosis
• Opera mini
• Google chrome
• Safari
• IE mobile browser
• Dolphin
• Skyfire
Popular mobile web browsers
© 2013 MobiGnosis
Mobile ecosystem
© 2013 MobiGnosis
• First impression
• Is anything confusing ?
• Does the app feel slow ?
• Where are you testing it ?
• Hardware device, network, OS version
• Does the app crash or freeze ?
• How’s the weather ?
Start testing….
© 2013 MobiGnosis
• Locate the icon on device home or app screen.
• Tap the icon to start the app.
• Examine the splash screen as the application loads.
• Once the app loads, stop and look at it carefully.• Cluttered ? Confusing ? Lost ? Quick and easy ? Location and Privacy
data ?
Mobile apps at a glance
© 2013 MobiGnosis
• Installation/uninstallation • download and delete
• Workflows and feature testing• Functional – specs and requirements
• Data – different types of data
• Regression
• Performance – quick and responsive
• Localization – handle different langugaes
• Scenarios• Credible usage stories and workflows
Mobile app testing approach
© 2013 MobiGnosis
• Device interactions (web, network, apps)• Wifi, Cellular Network, apps, accessories
• Documentation review• With in app
• Marketing material
Mobile app testing approach
© 2013 MobiGnosis
• Tap
• Double Tap
• Press
• Press and Drag
• Swipe
• Flick
• Shake
• Rotate
• Pinch
• Spread
Gesture Tour
© 2013 MobiGnosis
• Installation
• Application Start/Stop Behavior
• Application Credentials
• Interruptions – Voice calls
• Interruptions – SMS
• Autostart
• No disruption to key device applications (pre installed)
Testcase strategies
© 2013 MobiGnosis
Types of mobile app testing
• UI Testing – Color, menu, style
• Performance and stress – under low resources
• Usability testing
• Certification compliance testing
• Submission guidelines compliance testing
• Interruption testing – voice calls, sms, low memory notification
• Monkey testing
• Low network/no network
© 2013 MobiGnosis
• Singular Approach – one device, one language, one carrier
• Proportional Approach – narrow combination
• Shotgun Approach – multiple combination
• Outsourced strategy – remote device services, personal network
Platform test strategies
© 2013 MobiGnosis
Android app testing
© 2013 MobiGnosis
Android apps
• Managing the Activity lifecycle• Start activity
• Pause and resume activity
• Stopping and restarting
• Recreating
• Fragments• Nested activity
• Layouts
• Understand the android app – code walkthrough
© 2013 MobiGnosis
Android application life cycle
Activity
• In Android, each application is a process,called activity.
• Android (aka Dalvik VM) maintains an unique activity stack to observe the status of process, and manage the memory.
• Life cycle of an activity is managed by Android OS, not by application itself.
http://developer.android.com/training/basics/activity-lifecycle/index.html
© 2013 MobiGnosis
Status of an activity
• Active - "Active" is the status that an activity is running.
• Paused - "Paused" means an activity is in the background.
• Stopped - The activity has already exit the screen, no other action is running.
• Dead - The activity has been finished manually, or garbage collected by system.
© 2013 MobiGnosis
Activity API
• ● OnCreate()
• ● OnStart()
• ● OnResume()
• ● OnPause()
• ● OnStop()
• ● OnRestart()
• ● OnDestroy()
© 2013 MobiGnosis
Service• Four components in Android:
• Activity,
• Service,
• BroadcastReceiver,
• ContentProvider
• Except ContentProvider, the others main objects are running in the main thread.
• The life cycle of Service is most persistent (longest).
https://marakana.com/static/slides/AndroidMainBuildingBlocks.html#(1)
© 2013 MobiGnosis
Automation Automation is a process, which includes the development
of scripts to run the testcases automatically with out manual intervention and to log results.
• Rregression testing - automation.
• Repetitive testing and time consuming.
• Reduce time, cost. Increase productivity and test coverage
Why Automation ?
© 2013 MobiGnosis
Steps to automate
1. Understanding the application (Technology Used).
2. Choosing a suitable tool for the automation.
3. Identifying functions (like login, register new users).
4. Identification of the Scenarios (Test Cases) for automation.
5. Writing user defined functions for Unit functions and scenarios.
6. Adding verification fuctions (more the merrier).
7. Scenarios should be independent of eachother.
8. Combine all the scenarios and run end-end (test suites).
© 2013 MobiGnosis
Automation tools for Android based app
• Selenium - Android driver• Installing android emulator and configuring
• Configuring webdriver apk in emulator
• Identifying objects
• Parameterization
• Implicit and explicit wait
• Do’s and don’ts with android driver
• Andriod test framework
https://code.google.com/p/selenium/wiki/AndroidDriver
© 2013 MobiGnosis
Robotium• Is an open source test framework
• Robust automatic black-box test cases for Android applications.
• Functional , system and acceptance test scenarios can be automated.
• https://code.google.com/p/robotium/
© 2013 MobiGnosis
Thank You – Team MobiGnosis