Mobile is booming, and that's a good thing! But with multiple operating systems and tens of thousands of devices on the market, how can you ensure your app delights your users everywhere, every time, at every turn?
2. Agenda
What’s In Your Mind?
Mobile Platform
What is Mobile App?
Type Of Mobile Application, Which Should You Choose?
Mobile Application Testing
Why Mobile Apps Testing is Different from Desktop and Web?
Types of Mobile Testing?
What are the challenges in mobile app testing ?
Testing Objective
General Techniques
Mobile Testing - Types
Components Of Mobile Testing
Mobile Testing Tools
Workshop
3. Gone are the days when the telephone used to be an appliance that sat in a corner and had to
ring to get our attention or a computer was a machine only few people used – they are now an
extension of our being- a window to the world and virtual servants that do as they are told.
Computers were a rage and changed how we humans thought, behaved, learnt and existed.
Mobile technology and smart devices are the trend now and will change the future of the world
as we know it. We all can vouch for it, can’t we? Now, it will be amateurish if I list what we use
these mobile devices for. You all know it – May be better than we do.do
5. Current version 6.0
Closed Source
Apple
Safari web browser
Sync Patch updates
Current version 6.0
Closed Source
Apple
Safari web browser
Sync Patch updates
iOS Windows Phone Symbian Blackberry OSAndroid
Closed Source
Current version 6.0
Closed Source
Apple
Multi-tasking
Safari web browser
Sync Patch updates
Current Version 4.1
Open Source
Open Handset Alliance
Multi-tasking
Chrome/ Webkit
Browser
Sync Patch / OTA
Current Version 7.5
Closed Source
Microsoft
Multi-tasking
Internet Explorer
Synch Patch updates
Symbian^4
Closed Source
Nokia
Multi-tasking
Webkit Browser
Sync Patch / OTA
Current version 7.0
Closed Source
RIM
Multi-tasking
Webkit Browser
Sync Patch / OTA
Mobile Platforms
6. What is Mobile App ?
Mobile applications are a rapidly developing segment of the global mobile market. They consists of
software that runs on a mobile device and performs certain tasks before the user of the Mobile
Phone. They can be downloaded physically through USB / WIFI from a desktop or can be
downloaded by a web server over internet.
IQ Video Players
Audio Player
Streaming Players
Graphical Viewers
Presentation Viewers
City Guide
Currency Converter
Translators
Weather
Itinerary
TravelMultimedia
MOBILE
Application
Email Clients
IM Clients
Browser apps
Social Network Apps
Calendars
Calculators
Diary
Banking / Finance
Directory Services
CommunicationProductivity
Utilities
Address Book manager File Manager
Call Manager
7. Native Applications
Nativeapplications aredeveloped
fora specific platform and installed
on the device
Hybrid Applications
Hybrid application (hybrid app) is
are combinations of native app and web
app. They run on devices or offline and are
written using web technologies like HTML5
and CSS.
Web Based Applications
Web based applications are
accessible through device browser
or third party browsers installed on
thedevice, like chrome, Firefox by
connecting to a mobile network or
wireless network like WIFI.
Depending on the requirements. Some apps are a better fit with web technologies than others. Knowing the pros and cons of
each approach will help you make the right decision about which path is appropriate for your situation.
Types Of Mobile Application
8. live on the device and are accessed through icons on the device home screen.
installed through an application store (such as Google Play or Apple’s App Store).
IPhone: Objective C
Symbian: C/C++
Windows Mobile: .NET CF
Android : Java for Application and C/C++ for Low Level
They are developed specifically for one platform, and can take full advantage of all the device
features — they can use the camera, the GPS, the accelerometer, the compass, the list of contacts,
and so on.
They can also incorporate gestures (either standard operating-system gestures or new, app-
defined gestures).
Native apps can use the device’s notification system and can work offline.
Native App:
9. Mobile Web Apps:
Web apps are not real applications; they are really websites that, in many ways, look
and feel like native applications, but are not implemented as such.
They are run by a browser and typically written in HTML5.
Users first access them as they would access any web page: they navigate to a special
URL and then have the option of “installing” them on their home screen by creating a
bookmark to that page.
Web apps became really popular when HTML5 came around and people realized that
they can obtain native-like functionality in the browser.
Today, as more and more sites use HTML5, the distinction between web apps and
regular web pages has become blurry.
10. Mobile web cons
In 2011 Financial Times withdrew its native app from Apple’s App Store to circumvent
subscription fees and maintain closer connection with their subscribers. Instead, it came
out with an iPhone web app (app.ft.com):
Horizontal swiping on Financial Times' web app Its web app is, in many ways, hard to
distinguish from a native app.
For instance, there are no visible browser buttons or bars, although it runs in Safari
(when accessed from an iPhone). Users can swipe horizontally to move on to new
sections of the app. And, due to browser caching, it’s even possible to read the
newspaper offline.
These are all features that are available in HTML5. Also available are the GPS, the tap-to-
call feature, and, there is talk about a camera API, although I haven’t seen any web app
(or web page) that takes advantage of it so far.
There are, however, native features that remain inaccessible (at least from now) in the
browser: the notifications, running in the background, accelerometer information (other
than detecting landscape or portrait orientations), complex gestures.
Of course, one can argue that many apps (native or otherwise) do not take advantage of
those extra features anyhow. But if you really need those native features, you’ll have to
create a native app or, at least, a hybrid app.
11. Hybrid apps:
Hybrid apps are part native apps, part web apps. (Because of that, many people
incorrectly call them “web apps”).
Like native apps, they live in an app store and can take advantage of the many device
features available.
Like web apps, they rely on HTML being rendered in a browser, with the caveat that
the browser is embedded within the app.
Often, companies build hybrid apps as wrappers for an existing web page; in that way,
they hope to get a presence in the app store, without spending significant effort for
developing a different app.
Hybrid apps are also popular because they allow cross-platform development and
thus significantly reduce development costs: that is, the same HTML code
components can be reused on different mobile operating systems.
12. Tools such as PhoneGap and Sencha Touch allow people to design and code across platforms,
using the power of HTML.
Walgreens provides two very similar hybrid apps– one for Android and the other for iPhone.
Both apps have multiple sections and many native features such as access to notifications
and a Refill by scan feature that uses the phone camera to refill prescriptions:
However, the Shop section in both the Android and iPhone apps uses a browser view that
renders the corresponding page of the Walgreens mobile website. Here are three pages
displaying the same content in the Android app, iPhone app, and mobile website
Let’s See Example:
14. As you can see, all these pages are the same, except for the top header, which is
platform specific. The Back button on iOS is translated into a caret on Android; the
logo is present on the web page, but not in the app. (The designers have correctly
assumed that on the web people need the logo to orient themselves, since they are
likely to land on a deep page without navigating through the homepage. In contrast,
in their apps all navigation has to go through the homepage).
However, the Back button in the Android app ignores the fact that, unlike iPhones,
Android devices come with a physical or virtual Back button. The tab bar at the
bottom of the page works well in the iOS design, but is clunky and clearly non-native
on Android.
15. Each of these types of apps has their advantages and disadvantages, as I’ve tried to point out. Let’s
summarize them here.
Device features:
Although web apps can take advantage of some features, native apps (and the native components of the
hybrid apps) have access to the full paraphernalia of device-specific features, including GPS, camera,
gestures, and notifications.
Offline functioning:
A native app is best if your app must work when there is no connectivity. In-browser caching is available
in HTML5, but it’s still more limited than what you can get when you go native.
Discoverability:
Web apps win the prize on discoverability. Content is a lot more discoverable on the web than in an app:
When people have a question or an information need, they go to a search engine, type in their query,
and choose a page from the search results. They do not go to the app store, search for an app, download
it, and then try to find their answer within the app. most users don’t like installing and maintaining apps
(and also wasting space on their device), and will install an app only if they expect to use it often.
Native, Web App, or Hybrid: Which Should You Choose?
16. Platform independence. While different browsers may support different versions of
HTML5, if platform independence is important, you definitely have a better chance of
achieving it with web apps and hybrid apps than with native apps. As discussed before, at
least parts of the code can be reused when creating hybrid or web apps
Content restrictions, approval process, and fees. Dealing with a third party that
imposes rules on your content and design can be taxing both in terms of time and
money. Native and hybrid apps must pass approval processes and content restrictions
imposed by app stores, whereas the web is free for all. Not surprisingly, the first web
apps came from publications such as Playboy, who wanted to escape Apple’s prudish
content censure. And buying a subscription within an iOS app means that 30% of that
subscription cost goes to Apple, a big dent in the publishers’ budget.
17. Development cost.
It’s arguably cheaper to develop hybrid and web apps, as these require skills that build
up on previous experience with the web.. But, on the other hand, HTML5 is fairly new,
and good knowledge of it, as well as a good understanding of developing for the mobile
web and hybrid apps are also fairly advanced skills.
User Interface.
Last but not least, if one of your priorities is providing a user experience that is
consistent with the operating system and with the majority of the other apps available
on that platform, then native apps are the way to go. That doesn’t mean that you cannot
provide a good user experience with a web app or a hybrid app–it just means that the
graphics and the visuals will not be exactly the same as those with which users may be
already accustomed.
(To summarize, native apps, hybrid apps, or web apps are all ways to cater to the needs
of the mobile user. There is no unique best solution: each of these has their strengths
and weaknesses. The choice of one versus the other depends on each company’s unique
needs.
18. Speed:
Native apps win the speed competition. In 2012 Mark Zuckerberg declared that Facebook’s biggest
mistake had been betting on the mobile web and not going native. Up to that point, the Facebook
app had been a hybrid app with an HTML core; in 2012 it was replaced with a truly native app.
Installation.
Installing a native or hybrid app is a hassle for users: They need to be really motivated to justify the
effort. “Installing” a web app involves creating a bookmark on the home screen; this process, while
arguably simpler than downloading a new app from an app store, is less familiar to users, as people
don’t use bookmarks that much on mobile.
Maintenance:
Maintaining a native app can be complicated not only for users, but also for developers (especially if
they have to deal with multiple versions of the same information on different platforms): Changes
have to be packaged in a new version and placed in the app store. On the other hand, maintaining a
web app or a hybrid app is as simple as maintaining a web page, and it can be done as often or as
frequently as needed.
22. Comparison between different App
•CSS
(GPS, gyroscope, accelerometer,
maintenance, and full application
works on any platform.
•Business-focused apps
full device access.
Native Hybrid Mobile Web
Skills/tools needed for cross-
platform apps
•Objective-C
•Java
•C
•C++
•C#
•VB.net
•HTML 5
•CSS3
•Javascript
•Mobiledevelopmentframework
(like PhoneGap)
•HTML
•Javascript
Distribution App Store/Market App Store/Market Internet
Development Speed Slow Moderate Fast
Ongoing application maintenance Difficult Moderate Low
Device access
Full access: (Camera,
microphone, GPS, gyroscope,
accelerometer,file upload,
etc..................…)
Mostly:
(Camera, microphone, GPS,
gyroscope, accelerometer, file
upload,
etc..................
…)
Partial access:
file upload.)
Offline access Yes Yes To an extent
Advantages
Lets you create apps with rich
user interfaces and/or heavy
graphics.
Combines the development speed
of mobile web apps with the
device access and app store
distribution of native apps.
Offers fast development, simple
portability. One mobile web app
Disadvantages
•Development Time
•Development Cost
•Ongoing Maintenance
•No portability (apps cannot be
used on other platforms)
•Can’t handle heavy graphics.
•Requires familiarity with a
mobile framework
•Can’t handle heavy graphics.
•Can’t access camera or
microphone.
Best used for
•Games
•Consumer-focused apps that
require a highly graphic interface
•Consumer-focused apps with a
moderately graphical interface.
•Business-focused apps that need
•General non-game apps.
23. Mobile Application Testing
Mobile application testing is a process by which application software developed for
hand held mobile devices is tested for its functionality, usability and consistency
Factory Testing
Hardware or
Device Testing
Certificate Testing
Mobile Testing
Application Testing
Software Testing
Content Testing
19
24. Why Mobile Apps Testing is Different from Desktop and Web?
1. Supported platforms and devices mean you have more combinations to test.
Desktop apps were usually targeted for specific platforms and it was relatively easy to access
those platforms. Web based applications made it a bit more challenging by adding another
dimension: browsers.
Mobile applications take complexity of supported platforms to the next level by adding devices.
Ensuring that mobile apps are working on all type of devices (smartphone, tablets, and phablets)
supplied by major brands (various models from Samsung, Sony, Nokia, HTC, Apple,
etc...................) and on all the platforms (iOS, Android, Windows, BlackBerry, etc...................) is
challenging. On top of that, new devices are hitting market so often that it becomes impossible to
cover all the major devices.
In the mobile world, it is important to create something on the lines of graded browser support
used by Yahoo to ensure that major platforms are covered.
2. Adaptability and limited space mean screen size is changing constantly.
Pretty much all the major players are changing screen sizes of their phones, tablets, and phablets
to figure out what works or in response to the competition. How applications adapts themselves
for various screen sizes, layout, and configuration is a challenging task.
Apart from adaptability to different screen sizes, mobile applications have to deal with the limited
screen size. Limited screen size means that user can not be given 30 different options on a single
screen – usability, similar experience, on-screen help, inability to use search or other applications
easily, etc................... – poses different challenges and as a tester we need to think beyond what
is developed and always think of who will use it and in what circumstances.
25. 3. Complex user interaction means more than one way to do everything.
User interaction in desktop and browser based applications was pretty much limited to mouse
and keyboard. Mobile applications on the other hand are trying to make user interaction as fluid
as possible. We had touch screen and with new phones from Samsung, you can just wave your
hand to give commands. Siri is becoming more and more advanced and gives us a glimpse of
future that voice commands may become part of every application in future. Devices are smart
enough to understand complex gestures, eye movement, direction, tilt, movement, acceleration,
GPS coordinates, surroundings, sound, and so on.
As a tester, we need to ensure that application works as expected when user interacts with the
app in different ways.
4. Application type – HTML5, Native or Hybrid – means applications are merging.
In the desktop and browser world, applications were straightforward. They were either desktop
or web applications. However, with the adoption and support of HTML5, the applications are
merging. On all the mobile devices, it is not difficult to find HTML5 applications, native
applications and hybrid applications. Testing for hybrid applications would be different from
testing native applications and it is important to understand that difference.
26. 5. Dependency on emulators and simulators means true representation is lacking.
For the desktop and browsers, developers always had access to the platform or browsers they
were targeting with their applications. Also, virtualization has become more or less commonplace
and can be trusted for desktop and browsers.
Mobile devices on the other hand relies on emulator and simulators. However, they are still not
true representation of the devices. It is also not possible to replicate advanced user interaction
on these simulators. As a tester, we have to be aware of the capabilities and limitations of these
emulators and simulators and figure out what can be tested (reliability) on them and what
cannot.
6. Security and privacy concerns mean a greater emphasis on misuse of data.
Though most mobile applications live in their own sandbox but many platform features are
accessible to them. For example, applications such as phone book, pictures, and videos are
accessible to many other applications. These are all personal user data, and any defect around
the (unintentional) misuse of this data can jeopardize trust of the application.
In mobile world, it is important to ensure that applications are secure from the intruders, and it is
equally important to ensure that applications are not intruding or accessing data unintentionally.
27. 7. Dependency on networks and carriers means more variations in testing.
In desktop and web world, most users were either on LAN or Wireless. These network were not
predictable, but compared to mobile networks, they were very predictable. Many connected
mobile applications rely on the network – how application responds to 3G, 4G, weak signals, no
signals, powerful signals, switching from cellular to wireless and vice-versa or when user is
moving at different speeds, etc................... – can affect how the application will behave. It is often
not possible to come up with or simulate real life situations for mobile applications.
Apart from the variation in signal strength and type, mobile apps can respond differently to
different carriers. As a tester, it is important to understand if there are any difference or not and
whether application works for all the major carriers or not.
8. Rapid installations, removals, and updates mean staying on top of the latest apps.
Mobile apps are installed, removed, or updated more frequently than desktop applications. Also,
underlying OS and platform is updated more frequently as well. As an app developer and tester in
the mobile world, you have to be on top of what changes are coming in the next revision of OS /
Platform and how it might affect the application.
Usually for most of the applications, user data is stored on the servers and not on the devices. It
makes installation a bit tricky. What if the user has multiple devices? What if multiple devices
have different version of applications?
Things like backward compatibility, simultaneous support for multiple versions, data preservation,
restoring state and data, the ability to install / upgrade multiple times are all part of important
checks for mobile application testing.
28. 9. Session management and interruptions mean ensuring that the app behaves properly.
Handling interruptions are the way of life for mobile applications. Apps and users are constantly
interrupted by calls, SMS, push notifications, and so on. How applications handle these
interruptions and how they maintain their state are important, but it is also important to see how
many interruptions the application is generating and what triggers those interruptions.
As a tester, it is important to ensure that application behaves properly when it is interrupted and
it is also important to ensure that the application does not interrupt unnecessarily and works
according to the boundary defined by the platform or the users.
10. Mobile-specific non-functional testing means there are many more dimensions to testing.
Mobile applications add many more dimensions to the non-functional testing. Old school
performance of the application is the obvious one, but there are many other factors as well which
should be considered.
How much data your application is consuming? How much it would cost the user (data usage) to
use this application? How much battery is consumed by applications? Does it behave differently
in high battery and low battery conditions? How much space is it occupying? How much trail is it
leaving? How is it clearing the trails / logs, etc................... are important non-functional factors
which should be considered as part of mobile testing strategy.
29. Types of Mobile Testing
1-Hardware testing (Mobile testing) :
mostly is related to testing the mobile hardware
i.e. The device including the internal processors, internal hardware, screen sizes, resolution, space
or memory, camera, radio, Bluetooth, WIFI etc...................
2-Mobile application testing :
related to testing the software (applications in mobile) part of the mobile and their functionality
Is tested.
i.e. Mobile applications include call handling, messaging..etc......................
30. Mobile Testing-How It Is different?
DEVICE DIVERSITY HARDWARECHALLENGES
•
•
•
•
Multiple Platforms
Multiple Browsers
Rendering differences
Mobile devices have different
application runtimes.
• Limitations in processing
speed
Limitations of Memory size
of mobile
Differences in
Communication Protocols
of devices WAP/ HTTP.
•
•
NETWORK CHALLENGES
•
•
•
•
Multiple type of Networks(GSM / GPRS / Wi-Fi / Wi-Max
etc.................. )
Unpredictable time taken for data transfer
Different speed of connectivity across geographies
Multiple Network Operators with customized Network features
31. What are the challenges in mobile app testing ?
Wide varieties of mobile devices (Devices Vary in
Screen Size, Memory, Processing Power, Hardware
Features etc...................)
Different mobile operating system
Different mobile network operators
Input method (QWERTY, touch, normal)
Hardware compatibility……. And so on.
Device Fragmentation is a Big Challenge
Apple iPhone is Least Fragmented among All Mobile Platforms
Testing on All Target Handset/Devices Almost Handsets is Large
Testing on All Target Operator Networks Almost Impractical if Number of Target Operators is Large
Network Operator may Impose Certain Constraints
32. Device Vendor (Not Necessarily Manufacturer) may Customize a Device
• Changes may be Done in Both User Interface and Functionality
• Many a Times Changes are Not Well-Documented
• Device is Not the Same as Released by Manufacturer
Testing on All Versions of Operating System
• In Many Situations, it May Not be Possible to Upgrade the Device to New OS Version
Same Device Models may have Multiple OS Configurations based on Target Market Requirements
• Localization(translation, Avoid abbreviation)
An example is that your mobile app could require double-byte characters (for East Asian
languages) or have to support bi-directional display (for Middle Eastern languages).
• Hundreds of Devices with Many Variants of Each Device
Testing in All Web Browsers
• Browsers Significantly Vary Across Devices
• May Support HTML, xHTML, WML, AJAX
33. Web Content Transcoders
• Web Content may be Transformed to Meet User-Agent Constraints
• Transcoder may Not Respect User Experience Factors in some Situations
Inconsistencies in Specification Implementations
• Each Vendor is Responsible for Java ME Specifications Implementations
• Implementations may Not be Consistent across Devices and Vendors
Performance Measurement
• Extremely Difficult to Benchmark Performance due to Highly Fragmented
Market
Detection of Display Issues
• Human Involvement is Must
Generally it is Not Possible to Purchase All Target Handsets due to Financial
Constraints
34. Mobile Application Testing Complexities
• The world of mobile applications has evolved to the point where it is now one of the basic
levels of communication services, becoming essential to the everyday needs of the common
mobile user. As the number of users grows exponentially, it is of utmost importance to
ensure that mobile application requirements are met and that systems meet their purpose.
• What makes mobile applications unique? Why is it not possible for standard test cases and
running procedures to be employed to meet requirements?
• Complexity is the key to understanding the challenges we face when we want to develop, or
in my case to test, mobile applications. We have so many operational systems, and different
manufacturers and models, so what should we test? How many devices should we cover?
Twenty or one hundred? What are the trends and tools available in the market to solve these
questions?
“ COMPLEXITY IS THE KEY TO UNDERSTANDING THE CHALLENGES WE FACE WHEN WE WANT TO
DEVELOP, OR ITEST, MOBILE APPLICATIONS”
35. Testing objectives
• What are we testing –
mobile website or mobile application
• For whom –
user profile (geography, technical skills, expectations etc...................)
• Devices –
which models and/or emulators will be used for testing
• How –
defining approaches (Friends & Family testing, scenario-based etc...................)
36. General Techniques
Decide Target Handsets as Early as Possible in Development Lifecycle (Better in Requirements
Analysis Phase)
Document Incompatibilities in Devices e.g. Differences in
• Installation Processes
• Audio/Video Capabilities
• Memory, Processing Power, Screen Size etc...................
Document Device Software (Firmware) Limitations
• ‘Bugs in Firmware’ are Not Unusual
Document Device Web Browser Constraints
• Supported Version of HTML
• AJAX Supported or Not
37. Classify Devices
Classify Devices
• Category—1: All Devices that Support XHTML
• Category—2: All Devices that Support AJAX
• Category—3: All Devices that Support Java ME
Pick Representative Device(s) from each Category for Testing Purposes
Prepare Test Cases based on Data Gathered about Target Handsets
Start Testing on Real Devices as Early as Possible
There is No Good Alternative to a Real Device for Testing (Why?)
38. Mobile Testing - Types
Test to ensure the stability of the
applicationso that it can be taken for
further levels of testing.
Analyzing the logs and measure/monitor
the performance of mobile devices in a
real world environment across different
network infrastructures.
Testing of a product in the actual context
in which it will be used.
Field tests performed validate handset
network success in a real world live
network environment
Documented features are
implemented in the application and
work as expected.
Test the text, logos and all UI level
validation
Validate Usability aspects such as
Trackball, Touch etc..................
Sanity Testing
Mobile
Testing Validate Application behaves as
expected and stable during the
course of Interruptions
Incoming Calls, SMS Notifications,
Low Battery, Network related
testing such as Low network, Zero
Network etc..................
22
§ Tailor devices to the unique Language
§ Translate user interfaces and
provide documentation and support in local
language,
§ Perform all types of testing in the respective
39. Components of Mobile Testing
Emulators /
Simulators
Mobile
Devices
Mobile Application
Testing
Network
connectivity
Testing tools
and
Accelerators
40. Mobile Testing – Emulator/Simulator
• Device emulator / Simulator is a desktop application that
emulates
• mobile device hardware and operating systems, allowing us to
test and debug our applications and see how they are working.
• No cost involved – Various OS versions, screen sizes, Device
models are available for free download
• Provided by the OEM, Simulators represents 90% of real life
however, certain types of testing are not possible (like
interruption, network connectivity
• Easily installable on a normal system – Android, Black Berry,
Symbian, Windows
• Mobile require Windows desktop while, iOS require MAC
• Ideal for functional testing needs
• Some level of development knowledge required to benefit on
the features Provided
Emulator / Simulator – The Difference
Emulators mimic the software and hardware environments
found on actual devices
Simulators, on the other hand, only mimic the software
environment
)
Android Emulator
iOS Simulator
41. iOS Simulators
Introduction:
• iPhone and iPad are popular devices from Apple. Its has its own proprietary operating system,
iOS. Its well known for its design and performance.
• Many applications of native, web and hybrid type are available which can be download from
Apple iStore
• Applications for iPhone can be installed both over air and using iTunes application
Prerequisites:
MAC Environment
Getting Started:
• Deploy Native app into iPhone Simulator using Code.
• Code - an integrated development environmentthat manages your application projects and
lets to edit, compile, run, and debug code
• Once the native app is deployed, the app icon appears on simulator, thus aids to access the app
directly from simulator
• Testing in UIAutomation can be done by both developer and tester, it requires knowledge of
iPhone development.
• UIAutomation is the automation technique for iPhone. It uses JavaScript as test script to
perform automation. This can be done both in device and simulator
• iPhone Simulator does not emulate an iPhone processor, disk drive, memory constraints
42. Android Emulators
OVERVIEW
• Android emulator comes as part of the android SDK commonly known as AVD
– Android Virtual
Device.
• It lets the user to prototype, develop, and test Android applications without using a physical device.
Android Emulators
• The AVD’s are OS version specific and provides the user the flexibility to
customize OS version,
resolution, skin, sd card size and various other hardware properties to be emulated.
• There are many command line utilities and tools which comes as part of the sdk which makes it easy to
debug and interact with emulator
Prerequisites for Android Emulator
• JRE – Java Runtime Environment
• Android SDK
Installing an application
• If the application is available in Google Playstore it can be directly
downloaded and installed on to the device.
• If the application is available in ‘.apk’ format ,it can be installed
43. Blackberry Emulators
OVERVIEW
• BlackBerry Simulators is different from the other emulators as this is
Device model specific (rather than OS version)
• Easy to use interface for installing and testing apps
Blackberry Emulators
• Model specific blackberry emulators are available from RIM as
standalone window applications and also along with BB JDK.
• The BlackBerry MDS Simulator and the BlackBerry Email Simulator
simulates internet and email services respectively.
Prerequisites for Blackberry Simulator
• JRE – Java Runtime Environment
• Blackberry simulator package
• Blackberry email and MDS Simulator
Installing an application on Blackberry emulator
• If the application is in .cod format, it can be directly loaded in to the
emulator from the menu options in emulator.
• If the simulator is being used with an IDE or Blackberry JDE it directly
loads the application into the simulator and runs it.
• The blackberry device manager can also be used to for installing the
applications on emulator and device
44. Windows Phone - Emulators
Description
Windows Phone 7 is a mobile operating system developed by Microsoft,
and is the successor to its Windows Mobile platform. The windows phone
7 emulator comes with SDK and Windows Developer Tool Kit.
Pre-requisites for the emulator
• Windows Vista and higher Desktop OS
• Microsoft Silverlight along with silver light toolkit for windows phone
• Visual Studio 2010
• Windows mobile 7 sdk
Installing applications in emulator
• Open the “Application Deployment” tool which is the part of “Windows
Phone
Developers Tool”
• Provide the path to the .xap file of the application in the tool
• The emulator opens showing the application that has been installed
45. Emulators / Simulators – Limitations
Limitations
• No support for placing or receiving actual phone calls. You can simulate phone calls (placed
and received) through the emulator console, however.
• No support for USB connections
• No support for camera/video capture (input).
• No support for determining connected state
• No support for Bluetooth
• No support for actual GPS
• No support for Accelerometer feature used in Gaming applications
46. Mobile Testing Tools
Mobile Testing Tools
Remote Based Desktop Based
Industry Based Open Source
•
•
•
•
•
Squish
FoneMonkey
JamoSolutions
Eggplant
SeeTest
Device Anywhere
•
•
Robotium
SeleniumPerfecto Mobile
Cognizant Mobility Lab
47. Tool Selection Criteria
• Platforms support
•Supported Versions of platforms
•Types of automation supported.
•Device variants within a platforms (
form factors)
Scope based
decisions
Cost Benefit Analysis
•Working on both simulator /device
•Integration to test management
•Ease of use and scripting support
Feature based
decisionsTimelines for the
project
• Stability
•Dependency on Mac/desktops
•Cloud based/stand alone
Infrastructure
decisions
Regression Test
Count & Complexity
32
49. Mobile Test Tools in Market -Comparison
& Blackberry
'Sensetalk'
complex
any other test
supported by QTP
breaking
Tools/ Parameters
Test Quest
Countdown
Device Anywhere
Pro
Jamo Solutions Perfecto Mobile Robotium Eggplant
Support of
devices/platform
s
Android,
Blackberry,
Symbian &
Windows mobile
All major mobile
Platforms
Android, Windows
Mobile, Blackberry &
IOS
All major mobile
Platforms
Android
Android, IOS
Licensing Cost Cost Cost Cost OpenSource cost
Ease Of Usage Easy to use Easy to use Easy to use Easy to use Needs
programming
Easy to use
Scripting No Scripting Scripting Possible Uses VB script
No programming
language for scripts,.
Script is simple and can
be easily understood
Uses java
Uses
Test Data
Parameterization
Possible Possible but
complex
Possible Possible Possible but
complex
Possible but
Remote
Connectivity
Possible Possible Possible Not Possible Not Possible Possible
Integration with
test management
In-built test
management tool
test manager
Quality Center
Quality Center and
management tool Possible Not Possible Not Possible
Jail Breaking /
Routing
Needs Jail
breaking
DA hosts Jail broken
devices
No Jail breaking
Perfecto Mobile hosts
Jail broken devices
Needs Jail
breaking
Needs Jail