2. Agenda
Mobile Evolution
Introduction to Mobile World
What is Mobile App Testing?
Introduction to Mobile Testing OS & platforms
Overview of Mobile Devices & List
Types of Mobile Devices (Smartphones vs Phablets vs mini Tablets vs Tablets)
Business Models in Mobile Space
Mobile App Life Cycle
Different Types of Mobile Apps (Standalone, Consumer, Enterprise)
Insights into Mobile App architecture
o Native Apps
o Hybrid Apps
o Web Apps
Development Platform for Mobile Applications
Differences in Mobile & Conventional Application Testing
Insights into Mobile App Testing & Challenges
Scope of Mobile Application Testing (Testing Checklist)
Testing Techniques in the Mobile Space
Testing Methodologies in the Mobile Space
Workshop – Reusable Test Cases in the Mobile Space
Types of Logs – Console & Crash logs
What is UDID, Importance of Provisioning Profile, How to find UDID
Emulators & Simulators
3. Mobile Evolution
• An average consumer spends 127 minutes a day on the mobile phone
• There are 4.5 times as many mobile devices in use as there are PCs
• 49% of mobile users in the US now have smart phones and this number is going
up at a very rapid rate
4. What is Mobile App Testing?
Mobile application testing is a process by which app developed for hand held
mobile devices is tested for its functionality, usability and consistency and
compatibility across related devices.
5. Why is Mobile Testing Important?
• Mobile Technology is transforming the way
people use their cell phones. Although demand
is highest for consumer apps, enterprise
applications are evolving too, allowing
businesses to work more productively. Right
from Publishers, Retailers, Automobile Dealers,
Financial Service Providers, Pharmaceuticals &
Healthcare Providers, the mobile application
usage trend has now extended to schools and
Universities providing faster interaction
between staff and students.
Today, Mobile apps have become an integral
part of enterprises and businesses can no
longer afford to ignore them. Recent surveys
and studies all point to the same conclusion,
‘This is the year of the mobile business app’
and finally accept that mobile is not only here to
stay, but also offers compelling benefits i.e.,
they let you operate anytime and anywhere,
bringing productivity beyond the confines of the
office, salespeople have access to real-time
product data, customers have another way to
interact with your business, or even make
purchases.
6. Why is Mobile app testing different
• App Stores reduces the user
feedback loop thus continuous
improvements/bug fixes/patches
• User feedback is received early
and frequent
• Usability is quality and king,
depends on # of downloads/un-
installs
• User can get updates rapidly and
expect seamless updates &
integration
• Mobile devices are changing
quickly and constantly getting new
capabilities and features
10. Android Intro
Android 1.5 - Cupcake: April 27, 2009
• Improvement of the camera (start and acquisition)
• Increase in GPS position speed detection
• Virtual Keyboard
• Automatic loading of videos on YouTube, and Picasa
11. Android Intro
Android 1.6 - Donut: September 15, 2009
• The box for quick search and voice search
• Indicator for battery usage
• Grouping of the camera and gallery apps and shooting mode addition
• Text-to-speech languages
12. Android Intro
Android 2.0 - Eclair: October 26, 2009
• Multiple accounts for email and contact synchronization.
• Bluetooth 2.1 support
• New user interface for the browser and HTML5 support.
• New functions for the calendar app
13. Android Intro
Android 2.2 - Froyo: May 20, 2010
• Support for creating hotspots (sharing a connection via WIFI)
• Adobe Flash 10.1
• Multilingual Keyboard
• "Widget guide" addition that helps you learn the features Android
14. Android Intro
Android 2.3 - Gingerbread: December 6, 2010
• Interface revised for easier and faster user experience
• New keyboard for faster text input
• Selecting text features, copy/paste
• Integrated Internet calls
15. Android Intro
Android 3.0 - Honeycomb: February 22, 2011
• Tablet version, interface optimized for larger screens
• Improved multitasking, notification management, customization and
widgets on the home screen
• Added tethering via Bluetooth
• Built-in support for easy transfer of media files to your PC
16. Android Intro
Android 3.0 - Honeycomb: February 22, 2011
• Tablet UI/version, interface optimized for larger screens
• Improved multitasking
• Notification management, customization and widgets on the home
screen
• Redesigned keyboard
• Private browsing, Dual pane modes for address book
• Added tethering via Bluetooth
• Built-in support for easy transfer of media files to your PC
17. Android Intro
Android 4.0 - Ice Cream Sandwich: October 18, 2011
• New font (Roboto)
• Possibility of triggering a picture with a smile
• Adding functionality such as managing folders, bookmarks and capture
screenshots
• Swipe addition to hide notifications, close web pages and more
• Support for Wi-Fi Direct, Bluetooth HDP and Android Beam
• virtual buttons
• Face Unlock
• Widget management, improved voice integration and copy and paste
• New Calendar app with pinch-to-zoom option
• Revamped Gmail user interface
• New contacts and social networking features
• Saving web pages offline
• New camera capabilities, screenshot option
18. Android Intro
Android 4.1 - Jelly Bean: July 9, 2012
• Faster, smoother, more responsive to inputs
• Resizable widgets
• Google Now, voice dictation offline
• Improved Android Beam
• Updates to the app improved and faster
19. Android Intro
Android 4.4 - KitKat: October 31, 2013
• Support for Bluetooth MAP
• New framework for transitions in the user interface
• Support for wireless printing
• Optimization of memory and touch screen for faster multitasking
20. Android Intro
Android 5.0 Lollipop: November 12, 2014
• Device sharing: multiple users and profiles on smartphones
• Material Design
• Battery Saver
• Efficient OS & upgrades
• Android Smart Lock
• ART instead of Dalvik runtime
21. Android Intro
Android M: M&M's, Maltesers, Mentos, Mars Bar??
• Granular app permissions
• Google Now on Tap
• Fingerprint API
• Android Pay
• Doze and USB Type-C
• Dark theme
• RAM Manager
• Home screen rotation
28. Mobile Devices Market Share
In a “State of Mobile” study of 1,040 software developers, testers, and
consumers conducted by SmartBear and published in early 2015, we
discovered, among other things, that:
• Nearly 30% of those building any kind of apps were building mobile
apps
• 54% of respondents who were building mobile apps had entered the
space within the past two years
• 84% of those who were not currently building mobile apps planned to
enter the space in the near future
• 30% of companies were planning to develop 5-20+ new apps in 2014
• 40% of consumers download 5-20+ apps in a single month
33. Basic Difference Between Mobile & Desktop
Application Testing
Few obvious aspects that sets mobile app testing apart from the
desktop testing
• On desktop, the application is tested on a central processing unit
• On a mobile device, the application is tested on handsets like Samsung,
Nokia, Apple and HTC
• Mobile device screen size is smaller than desktop
• Mobile devices have less memory than desktop
• Mobiles use network connections like 2G, 3G, 4G or WIFI where
desktop use broadband or dial up connections
• The automation tool used for desktop application testing might not work
on mobile applications
38. Smartphones vs Phablets vs Tablets
Smartphone
A smartphone (or smart phone) is a mobile phone with an advanced mobile operating
system. They combine the features of a cell phone with those of other popular mobile
devices. Most smartphones have a touch screen user interface, can run third-party apps
and are camera phones.
Phablet
A smartphone having a screen which is intermediate in size between that of a typical
smartphone and a tablet computer.
Mini Tablet
Mini tablets are smaller and lighter than standard slates, with a typical screen size
between 7–8 inches (18–20 cm). The first successful ones were introduced by Samsung
(7-inch Galaxy Tab), Barnes & Noble (Nook Tablet), and Amazon.com (Kindle Fire) in
2011, and by Google (the Nexus 7) in 2012
Tablet
A tablet computer is a mobile computer with a touchscreen display, circuitry and
battery in a single device. Tablets come equipped with sensors, including cameras, a
microphone and an accelerometer, and the touchscreen display uses finger or stylus
gestures substituting for the use of computer mouse and keyboard.
39. Business Models in Mobile Space
1. Selling Your Application
This is the most obvious and the one that is most widely leveraged today: Build an app that
everyone will want and sell millions of licenses and reap the rewards.
2. Freemium
Freemium isn’t one single model for mobile, it really encompasses a number of opportunities to
generate revenue. The goal of freemium is to get your app in as many hands as possible and
once you do, try to generate revenue from one of the following ways:
i. Sell an enhanced version of your app
This is THE most widely used model. You are essentially giving away a limited version of the
product in hopes that you can attract enough people to download it and then convert a
percentage of those into paying customers.
ii. Sell in-app advertising
The second most popular approach to freemium is selling advertising in your app. Using
services like AddMob or Apple’s iAd is simple to implement but requires a successful product
with hundreds of thousands or millions of downloads to make a decent amount of revenue.
iii. Up-selling content packs
Once you’ve got your application installed on millions of devices you can now start offering
content packs (additional levels for example), additional functionality or even have people pay to
remove the in-app advertisements.
40. Business Models in Mobile Space
3. Build an application as a service
You could take this in many different directions but for a great example of how this model can
succeed, check out Ubercab. This iPhone/SMS service allows you to quickly book and pay for a
car service with one button. This is great example of the future of productive mobile business
models – filling a need that is best-suited for our mobile lives.
4. Build an App as a subscription
One word: Wired. When Wired launched their iPad app version of the magazine it surpassed
sales of its print version in the first month it went live – that’s disruptive. Other similar examples
would be Sirius/XM satellite radio for mobiles, the New York Times Crossword puzzle game and
PumpOne’s FitnessBuilder application.
5. Mobilize an existing technology
Most companies are looking for mobile versions of enterprise software they have already
implemented internally — things like CRM applications, HR application or business operations
applications. For some, mobile is the natural extension for these services and there is opportunity
to fill a very specific niche here. Take a look at Aeroprise, a company that built a business
mobilizing BMC software. Instant market if the demand is there
6. Build an app that extends a web business
The most amazing thing to emerge since the dot com bust has been the open API. Any company
currently offering a legitimate web service has adopted the open API in hopes that their service
will find developers who will create the next layer of service on top of theirs. Enter mobile. This is
area is ripe for entrepreneurs to bring a service (or a bunch of services) into the mobile world as
a new level of value.
41. Business Models in Mobile Space
7. Sell affiliate products through your app
This one requires a VERY popular application in order to generate substantial revenue from the
referral fees but it could compliment another stream from one of the other business models
mentioned here. Eg. Blancspot
8. If all else fails, build an app for someone else
The old service model is still alive and kicking and one of the fastest growth segments in the
mobile world is actually helping companies who don’t have the expertise to build mobile
applications for them. Service for hire. One caveat here is that the price and complexity of
building applications for a living is being impacted by the better development tools coming into
the market that are democratization or commoditizing this business.
There you go. Limiting your business model scope to just making money from selling your application
is quickly becoming an outdated approach. How are you building your business in mobile?
42. Different Types of Mobile Apps
Consumer Apps Enterprise Apps
The apps are built with an intention to be used by general
public
The apps are built with an intention to be used by
organizations/enterprises
The sales are self-service The sales are direct
You have many customers (general public) You have few customers (enterprise users)
Focus is on, scaling the number of user(s) base Focus is on, scaling the number of business application(s)
needs
The app is delivered via an app store The app is delivered as a packaged app, through enterprise
license
Recurring revenue (as the app is purchased by multiple
users)
1 time revenue (as the app is purchased once by the
Enterprise)
Built for personal, general, entertainment, informative,
gaming, educational etc., usage
Built for enterprise business & usage
The app(s) built are simple & engaging i.e., simplicity is
king in Consumer Apps
The app(s) built are complex i.e., functionality is king in
Enterprise Apps
Login & Logout process are optional Login & Logout process are mandatory
Security is relatively simpler (One to One interactions) Security is complex (One to Many interactions)
Database & Storage mechanism is simple and sometimes
optional
Database & Storage mechanism is complex, as the
enterprise data plays a crucial role
Search field is an optional requirement Search field is application/record centric, when implemented
44. Mobile Apps Type - Making the correct choice
Businesses trying to build mobile apps are running into the below mentioned strategic
confusion(s) which will influence the results of the mobility initiative taken. As the user base for
mobile app(s) is diverse, below are few questions which need to be considered and answered
before deciding on a Mobile app development strategy
1. Who are my targeted audience?
2. Should the app be targeted across all available Mobile OS
platforms?
3. Should I simply start with a mobile website?
4. Should we develop a native app (one for each, multiple mobile
OS platforms) or a Hybrid app or a Mobile Web app?
5. Should the app require access to device functionalities such as
GPS, Camera, Contacts, Calendar etc?
6. Should the app be UX/UI consistent across multiple mobile OS
platforms?
7. Should this app require regular updates, to retain the user base?
8. Should the app generate revenue?
9. Is it worth spending Time, Money and IT resources to make an
app with 4 different source codes for 4 different Mobile OS?
10. Will the decision taken make any impact on the Design,
Development, Distribution and future prospects of the app?
49. Challenges in Mobile App Testing
Device(s) Diversity
The major challenge is the multiplicity
of mobile devices with different
capabilities, features and restrictions.
Devices may have different technical
capabilities such as amount of
available memory, screen resolution,
screen orientation and size of the
display, network connectivity options,
and support for different standards and
interfaces. This cannot be ignored
because the fewer number of devices
we test and certify, we are taking a
chance of our mobile app locking out
on other potential devices/customers.
50. Challenges in Mobile App Testing
Network related Challenges
There are over 400 Mobile network
operators in the world. It’s not possible to
detail the Network challenges without
zeroing in on the location. It’s a simple
fact that we must be connected to the
target network, to test an app on a
particular telecom network. Of course,
travelling to every network operator as
required is not possible as it becomes
very expensive and obvious cost
tradeoffs needs to be considered as well.
51. Challenges in Mobile App Testing
Use of Emulators and Actual Devices
With the proliferation of smart phones and
multiple OEM’s/OS versions, usage of
emulators is ever increasing.
Emulators can be beneficial for testing
features of an app; however actual devices
should be used for validating the test
results because of the computing,
processor or memory factors.
65. Mobile App Logs
What is a Log File?
A log file is simply a file that records events that happen while the apps run on your
mobile device.
Types of Log Files
There are 2 main types of log files: crash logs and console logs.
Crash logs contain a record of what an app was doing just before it crashed.
The system console log contains information outputted by applications, error
messages, warnings, debug info, and other notices. In some cases you many
need to attach one or both of these log types to a bug report.
Both Console and Crash logs will require a desktop computer (PC or Mac) to
access.
66. Accessing iOS Crash Logs
OS Navigation Path
Mac OS X ~/Library/Logs/CrashReporter/Mobile Device/<DEVICE_NAME>
Windows
XP
C:DocumentsandSettings<USERNAME>ApplicationDataApple
computerLogsCrashReporter/<DEVICE_NAME>
Windows 7 C:UsersAppDataRoamingApple
computerLogsCrashReporterMobileDevice< DEVICE_NAME>
Windows
Vista
C:UsersAppDataRoamingApple
computerLogsCrashReporterMobileDevice< DEVICE_NAME>
• The log file name start with the application name and have the extension ‘crash’
• <USERNAME> is the user’s login name for the computer
• <DEVICE_NAME> is the name of the iOS device, for example, “John’s iPhone”
67. Accessing iOS Crash Logs
Crash Logs :
Purpose :- To capture only crash and major error logs on particular iDevice (iPhone/iPad)
1. Launch X-code on MAC system
68. Accessing iOS Crash Logs
1. Connect iDevice to the MAC system
2. Expand Window menu of xcode dialog
3. Click on ‘Devices’
69. Accessing iOS Crash Logs
1. Ensure the connected iDevice gets detected and be shown in X-code Window
2. Click on detected iDevice folder
3. Click on ‘View Device Logs’ button at right side of the xcode window
4. Perform any scenario which reproduces crash on the iDevice
5. Observe the crash logs captured in “All Logs” dialog with ‘Process’, ‘Type’, ‘Date &
Time’
6. When a crash type is selected, the concerned crash logs would be displayed on the
right side
70. Accessing iOS Crash Logs
1. Ensure the connected iDevice gets detected and be shown in X-code Window
2. Click on detected iDevice folder
71. Accessing iOS Crash Logs
1. Click on ‘View Device Logs’ button at right side of the xcode window
72. Accessing iOS Crash Logs
1. Perform any scenario which reproduces crash on the iDevice
2. Observe the crash logs captured in “All Logs” dialog with ‘Process’, ‘Type’, ‘Date &
Time’
73. Accessing iOS Crash Logs
1. When a crash type is selected, the concerned crash logs would be displayed on the
right side
75. Accessing iOS Console Logs
Console Logs :
Purpose :- To capture each & every event/action log on particular iDevice (iPhone/iPad)
1. Launch X-code on MAC system
76. Accessing iOS Console Logs
1. Connect iDevice to the MAC system
2. Expand Window menu of xcode dialog
3. Click on ‘Devices’
77. Accessing iOS Console Logs
1. Ensure the connected iDevice gets detected and be shown in X-code Window
2. Click on detected iDevice folder
78. Accessing iOS Console Logs
1. Spread the console logs area upwards which is located below ‘View Device Logs’
button section
83. Accessing Android Crash Logs
Few 3rd party apps are available on the Google Play Store, through which we
can locate and diagnose the app crashes and the related logs upon
download and installation.
A few of those apps are listed here:
i. Log Collector
i. Crash Log (LogCat)
i. Crash Log Pro (LogCat)
i. LogCat Recorder
i. Log Viewer
i. Get Log Data
84. Accessing Android Crash Logs
How to Collect Logs via Command Line (ADB) on Android Devices
1. Install the Android Debug Bridge (ADB) tool on your PC
2. Connect your android device to the PC
3. Navigate to the path where ADB is installed
4. Run the following commands:
“adb logcat -c" (This clears the logs.)
5. Reproduce the bug/crash
6. Then, run the following command to capture the logs in a new file (for ease
of capture):
“adb logcat -d > Name_of_Log_File.txt"
$ adb logcat will print all the logs on the PC console
85. Accessing Android Crash Logs
How to Collect Logs via Eclipse
1. Install the latest App in the device
2. Launch Eclipse in the PC/Laptop (Eclipse should contain Android SDK installed)
3. Now, connect the device to the PC/laptop using USB Cable
4. Go to Phone Settings More Tab Developer Options USB Debugging has to be
checked
5. As soon as user connects the device to PC/laptop “Allow USB debugging?” popup
would be displayed on the Android device connected
6. Tap on OK button on the Android device connected
7. Select Devices Tab in the Eclipse toolbar
8. Observe that the connected device is displayed in devices Tab
86. Accessing Android Crash Logs
9. Installed Apps will be displayed under the Connected Device
10. Copy or note down the application name
Ex: com.synchronoss.pcloud.android.syncdrive
11. Go to LogCat Tab
87. Accessing Android Crash Logs
12. Select “Add a new log cat filter ( + ) icon” from saved filters pane
13. Log cat Message Filter Settings popup is displayed
14. Add the app name (com.synchronoss.pcloud.android.syncdrive) under “by
Application Name” edit box and save it with valid name related to project
15. A new filter will be displayed with name saved by the user
16. Select the saved filter and launch the app in the connected Android Device
17. Perform the necessary actions on the app and observe the logs populated under
logcat
18. Now, select the logs displayed (CTRL + A) and save the logs
89. Android Memory Leaks Steps
1. Open the ddms
2. Select the required process name in the left panel
3. Click on Show heap Updates button
4. In the right panel select VM heap
5. Click on dump HPROF file
6. Save in desktop
7. Open the command prompt
6. Set the path to sdk tools folder
7. write the command
[Syntax - hprof-conv <infile> <outfile>]
hprof-conv.exe "saved file path" "C:file.hprof"
8. Download Eclipse MAT plugin
9. Open the saved HPROF file using MAT
10. There are various views available , using that you can detect the class which is
using more memory
91. Android DDMS - Viewing heap usage for a process
1. DDMS allows you to view how much heap memory a process is
using. This information is useful in tracking heap usage at a certain
point of time during the execution of your application.
2. To view heap usage for a process:
3. In the Devices tab, select the process that you want to see the heap
information for.
4. Click the Update Heap button to enable heap information for the
process.
5. In the Heap tab, click Cause GC to invoke garbage collection, which
enables the collection of heap data. When the operation completes,
you will see a group of object types and the memory that has been
allocated for each type. You can click Cause GC again to refresh the
data.
6. Click on an object type in the list to see a bar graph that shows the
number of objects allocated for a particular memory size in bytes.
95. Android DDMS - Tracking memory allocation of objects
DDMS provides a feature to track objects that are being allocated to memory and
to see which classes and threads are allocating the objects. This allows you to
track, in real time, where objects are being allocated when you perform certain
actions in your application. This information is valuable for assessing memory
usage that can affect application performance.
To track memory allocation of objects:
1. In the Devices tab, select the process that you want to enable allocation tracking for.
2. In the Allocation Tracker tab, click the Start Tracking button to begin allocation tracking.
At this point, anything you do in your application will be tracked.
3. Click Get Allocations to see a list of objects that have been allocated since you clicked
on the Start Tracking button. You can click on Get Allocations again to append to the
list new objects that have been allocated.
4. To stop tracking or to clear the data and start over, click the Stop Tracking button.
5. Click on a specific row in the list to see more detailed information such as the method
and line number of the code that allocated the object.
98. Android DDMS - Working with an emulator or device's file system
DDMS provides a File Explorer tab that allows you to view, copy, and delete files
on the device. This feature is useful in examining files that are created by your
application or if you want to transfer files to and from the device.
To work with an emulator or device's file system:
1. In the Devices tab, select the emulator that you want to view the file system
for.
2. To copy a file from the device, locate the file in the File Explorer and click the
Pull file button.
3. To copy a file to the device, click the Push file button on the File Explorer tab.
99. Android DDMS - Working with an emulator or device's file system
100. Android DDMS - Working with an emulator or device's file system
101. Android DDMS - Examining thread information
The Threads tab in DDMS shows you the currently running threads for a selected
process.
1. In the Devices tab, select the process that you want to examine the threads
for.
2. Click the Update Threads button.
3. In the Threads tab, you can view the thread information for the selected
process.
105. Android DDMS - Starting method profiling
Method profiling is a means to track certain metrics about a method, such as
number of calls, execution time, and time spent executing the method.
To start method profiling:
1. On the Devices tab, select the process that you want to enable method
profiling for.
2. Click the Start Method Profiling button.
3. In Android 4.4 and later, choose either trace-based profiling or sample-based
profiling with a specified sampling interval. For earlier versions of Android, only
trace-based profiling is available.
4. Interact with your application to start the methods that you want to profile.
5. Click the Stop Method Profiling button. DDMS stops profiling your
application and opens Traceview with the method profiling information that
was collected between the time you clicked on Start Method Profiling and
Stop Method Profiling.
108. Android DDMS - Using the Network Traffic tool
In Android 4.0, the DDMS (Dalvik Debug Monitor Server) includes a Detailed
Network Usage tab that makes it possible to track when your application is
making network requests. Using this tool, you can monitor how and when your
app transfers data and optimize the underlying code appropriately. You can also
distinguish between different traffic types by applying a “tag” to network sockets
before use.
These tags are shown in a stack area chart in DDMS, as shown in figure 2:
109. Android DDMS - Using the Network Traffic tool
By monitoring the frequency of your data transfers, and the amount of data
transferred during each connection, you can identify areas of your application that
can be made more battery-efficient. Generally, you should look for short spikes
that can be delayed, or that should cause a later transfer to be pre-empted.
110. Android DDMS - Using LogCat
LogCat is integrated into DDMS, and outputs the messages that you print out
using the Log class along with other system messages such as stack traces when
exceptions are thrown. View the Reading and Writing Log Messages. topic for
more information on how to log messages to the LogCat.
When you have set up your logging, you can use the LogCat feature of DDMS to
filter certain messages with the following buttons:
• Verbose
• Debug
• Info
• Warn
• Error
You can also setup your own custom filter to specify more details such as filtering
messages with the log tags or with the process id that generated the log
message. The add filter, edit filter, and delete filter buttons let you manage your
custom filters.
111. Android DDMS - Emulating phone operations and location
The Emulator control tab lets you simulate a phone's voice and data network
status. This is useful when you want to test your application's robustness in
differing network environments.
Changing network state, speed, and latency
The Telephony Status section of the Emulator controls tab lets you change
different aspects of the phone's networks status, speed and latency. The following
options are available to you and are effective immediately after you set them:
• Voice - unregistered, home, roaming, searching, denied
• Data - unregistered, home, roaming, searching, denied
• Speed - Full, GSM, HSCSD, GPRS, EDGE, UMTS, HSDPA
• Latency - GPRS, EDGE, UMTS
113. Android DDMS - Emulating phone operations and location
Spoofing calls or SMS text messages
The Telephony Actions section of the Emulator controls tab lets you spoof calls
and messages. This is useful when you want to to test your application's
robustness in responding to incoming calls and messages that are sent to the
phone. The following actions are available to you:
• Voice - Enter a number in the Incoming number field and click Call to send a
simulated call to the emulator or phone. Click the Hang up button to terminate
the call.
• SMS - Enter a number in the Incoming number field and a message in the
Message: field and click the Send button to send the message.
114. Android DDMS - Emulating phone operations and location
Setting the location of the phone
If your application depends on the location of the phone, you can have DDMS
send your device or AVD a mock location. This is useful if you want to test
different aspects of your application's location specific features without physically
moving. The following geolocation data types are available to you:
• Manual - set the location by manually specifying decimal or sexagesimal
longitude and latitude values.
• GPX - GPS eXchange file
• KML - Keyhole Markup Language file
Note: Sample GPX files can be found at http://www.openstreetmap.org/#map=5/51.500/-0.100
GPX = GPX (the GPS Exchange Format) is a light-weight XML data format for the interchange of GPS
data (waypoints, routes, and tracks) between applications and Web services on the Internet.
More Info: http://blogs.innovationm.com/location-testing-in-mobile-apps/
118. Android DDMS – KML File Format
KML is a file format used to display geographic data in an Earth browser such as Google
Earth, Google Maps, and Google Maps for mobile. KML uses a tag-based structure with
nested elements and attributes and is based on the XML standard
<?xml version="1.0" encoding="ASCII"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
<name>GE2ADT</name>
<Placemark><name>21</name><description>GE2ADT Route</description><Point><coordinates>-
74.61453,40.47307,0</coordinates></Point></Placemark>
<Placemark><name>22</name><description>GE2ADT Route</description><Point><coordinates>-
74.614564,40.472985,0</coordinates></Point></Placemark>
<Placemark><name>23</name><description>GE2ADT Route</description><Point><coordinates>-
74.614661,40.472743,0</coordinates></Point></Placemark>
<Placemark><name>24</name><description>GE2ADT Route</description><Point><coordinates>-
74.614784,40.472387,0</coordinates></Point></Placemark>
<Placemark><name>25</name><description>GE2ADT Route</description><Point><coordinates>-
74.615058,40.471677,0</coordinates></Point></Placemark>
<Placemark><name>26</name><description>GE2ADT Route</description><Point><coordinates>-
74.615168,40.471369,0</coordinates></Point></Placemark>
<Placemark><name>27</name><description>GE2ADT Route</description><Point><coordinates>-
74.615289,40.471028,0</coordinates></Point></Placemark>
</Document>
</kml>
More Info: http://blogs.innovationm.com/location-testing-in-mobile-apps/
119. Accessing BB & WM Mobile Crash
Logs
i. Press ‘Alt’ + ‘lglg’ key sequence
on device home screen to see
the event logs
i. ‘javaloader.exe’ can also be used
to view the event logs. This is a
command line tool available in
Eclipse plugins folder where the
Blackberry JDE is unpacked
i. In landscape mode, put on
number lock and press " / " / to
get to the event log
i. AppHub tool helps the WM
Developer to know the crashes
associated with an app in a graphical
representation
i. The crash logs can also be obtained
from Windows Market when an app
crash happens at the user end, if the
app is already in Market
120. Accessing Windows Mobile Crash Logs
1. To verify the crash log in Windows Phone application we have
“Windows Phone Power Tools”
2. Using the Power Tools, we can verify the crash logs and performance
of the application
3. This tool is available for Windows Phone 8.0 & 8.1
4. Download Power Tools from http://wptools.codeplex.com/
5. Once the tool is installed, connect device to the PC and select device
as Source and click on Connect
122. Accessing Windows Mobile Crash Logs
• Once the device is successfully connected then you can browse
total information of the device using above tool
• We can monitor application performance and crash logs etc…
123. Android Tools for Performance
1. System Panel - This is paid app, which be dowloded from Market. This tool helps
to find applications that are spacking out more CPU. It also warns against killing
tasks. This tool enable monitoring, and look at historical data. It hardly use any
battery.
2. DDMS - Android ships with a debugging tool called the Dalvik Debug Monitor
Server, which provides port-forwarding services, screen capture on the device, thread
and heap information on the device, logcat, process, and radio state information,
incoming call and SMS spoofing, location data spoofing, and more. DDMS is
integrated into Eclipse and is also shipped in the tools/ directory of the SDK. DDMS
works with both the emulator and a connected device. If both are connected and
running simultaneously, DDMS defaults to the emulator.
From Eclipse: Click Window > Open Perspective > Other... > DDMS.
From the command line: Type ddms (or ./ddms on Mac/Linux) from the tools/
directory.
3. TraceView Tool - TraceView Tool is used to test Performance of particular app. A
graphical viewer for execution logs saved by your application and helps to find out
how the device would communicate to the infrastructure when traffic is at its peak.
124. iOS Tools for Performance
atMonitor - atMonitor is monitoring tool for Mac OS X, ios and ipad that displays
system activity in real-time. In addition to the standard CPU, GPU, VRAM, FPS, Disk
and Network info, atMonitor allows interaction with processes, setting up triggers,
logging, purging RAM and much more.
125. UDID
Each iPhone or iPod Touch or iPad has a Unique Device Identifier (UDID), which is a
sequence of 40 letters and numbers that is specific to your device. It’s like a serial number
but much harder to guess. It will look something like this:
2b6f0cc904d137be2e1730235f5664094b831186.
126. UDID
Why do we need the UDID?
Your iPhone can only install programs that are approved by Apple. Applications in the
App Store have been approved by Apple for general distribution, but beta customers get
to try the app before it’s in the store. We register your UDID with Apple so they can
approve our application especially for your iPhone. The most likely situation you'll need
your iPhone's UDID for is if an app developer has offered to let you try out some
unreleased software.
127. UDID
is there any limit for # of UDID per apple developer registration?
YES
100 per developer account | 99$ —developer account | 1 year validity
max 500 for enterprise edition | $299 enterprise account | 1 year validity
128. UDID
How do I get my UDID?
To get your UDID, you have to plug your phone into a computer and copy it out of iTunes
OR
install UDID+ app
OR
UDID app on your iPhone/iPad
130. iOS - Provisioning File
• A provisioning profile is a collection of digital entities that uniquely ties developers
and devices to an authorized iPhone Development Team and enables a device to
be used for testing.
• A Development Provisioning Profile must be installed on each device on which you
wish to run your application code. Each Development Provisioning Profile will
contain a set of iPhone Development Certificates, Unique Device Identifiers and an
App ID.
• Devices specified within the provisioning profile can be used for testing only by
those individuals whose iPhone Development Certificates are included in the
profile.
• A single device can contain multiple provisioning profiles.
• Provisioning files are auto-added onto the app when installed through MAC PC or
Test Flight or Hockey App.
134. What is Emulator
In the mobile development world, a device
emulator 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.
The Android SDK includes a mobile device
emulator — a Lvirtual mobile device that runs
on your computer. The emulator lets you
develop and test Android applications without
using a physical device. The Android emulator
mimics all of the hardware and software features
of a typical mobile device, except that it cannot
place actual phone calls. It provides a variety of
navigation and control keys, which you can
"press" using your mouse or keyboard to
generate events for your application. It also
provides a screen in which your application is
displayed, together with any other active Android
applications.
135. What is Emulator/Simulator
A note about terminology:
• The terms ‘Emulator’ and ‘Simulator’ are sometimes used interchangeably.
• Apple considers its native emulator a ‘simulator’
• Android considers its tools as ‘emulator’
• In an ideal world, every mobile app developer would be able to build an
app and test its behavior on a simulator that would perfectly mimic the way
the software should behave on a mobile device.
• To a large extent, these emulators/simulators give the developer a
reasonable idea of how an app will behave on a variety of screen sizes,
orientations, and how it will look in terms of color and design.
136. Types of Emulator/Simulator
1. Device Emulator- provided by device manufacturers
2. Browser Emulator- simulates mobile browser environments.
3. Operating systems Emulator- Apple provides emulators for iPhones,
Microsoft for Windows phones and Google Android phones
140. Device Emulator
• Iphone - Xcode - Version of Apple’s powerful integrated development environment
for creating great apps for Mac
• Ipad - can be simulated using Xcode for all versions including iOS 5.0
• Blackberry - BlackBerry Smartphone Simulators
• Nokia - Nokia remote access , Nokia desktop emulators (S60,S40)
• Android OS based phones - Android SDK
• Windows Phone - Windows phone Developer tools
• All other devices - MITE ( Mobile Internet Testing Environment) - desktop tool that
lets you interactively test and verify mobile content by emulating 2,000 devices and
12,000 device profiles
141. Device Emulator
First, install and open Xcode. Then, in Xcode, right-click and select
“Show Package Contents.” Go to “Contents” → “Applications” →
“iPhone Simulator.”
143. Emulator Testing Cons
Situation Based Testing: You cannot emulate real life usage with software. How
does the app look when you are outside in the sun, or when it’s raining? Can you use
the app while walking? Does the interface translate well with swipes and finger
usage? All these situations are impossible to replicate with emulators.
Battery Testing: It is impossible to test the effects of your app on the battery life of a
device with an emulator.
Interrupts: Things like receiving a text message or phone call while using the app
cannot be tested while using an emulator.
Memory Related Issues: Emulators tend to have a great deal more memory
available than real devices. This is because they are not multitasking the way a real
device is. The performance of your app on an emulator may be much better than on
a real device. This could cause a misconception of how quick your app responds.
Display/Resolution Variance: The look and feel of the application may be different
on an emulator as opposed to a real device. How bright or dim the app appears, and
the changes in resolution across devices may differ with respect to the emulator. It’s
also very hard to simulate light and dark situations on an emulator.
144. Emulator Testing Cons
Features that you can’t test in the Windows Phone Emulator
The following list describes features of the Windows Phone 8 hardware and platform
that you cannot test in the emulator. You have to test these features on a physical
device.
• Compass
• Gyroscope
• Vibration controller
• Brightness. The brightness level of the emulator is always High.
145. How to launch Android Emulator
1. Install Android SDK tools + Eclipse IDE OR Install Android Studio
2. Launch Eclipse IDE
3. Install the necessary packages related to latest Android OS or the required
Android OS to be tested
4. Click on Window menu on the top
5. Click on Preferences option
6. Click on Android option at the left pane
7. Ensure the latest or the required Android OS is listed under Target Name
8. Click on Apply
9. Click on OK
10. Now, we are done with the setup of emulator for the required Android OS
153. Deploy/Install .apk in Android Emulator
1. Download the .apk and place it in the DOWNLOADS folder
2. Run the Android Emulator and launch the required device
3. Start Run CMD
4. Change the directory to the path where adb is installed
1. Run the below command to know the list of devices running on emulator:
adb devices
1. Run the below command to install the .apk in android emulator
adb install <path of .apk>
154. Windows Phone Emulator Testing Pros
Features that you can test in the Windows Phone Emulator
The following table describes features of the Windows Phone 8 hardware and
platform that you can test in the emulator. The Windows Phone 8 Emulator supports
some features that are not supported in the Windows Phone 7.1 Emulator.
Some of the listed features are only supported partially or only under certain
conditions, and some require an additional download.
155. Windows Phone Emulator Testing Pros
Supported feature Description
Multiple screen resolutions
You can use the Windows Phone 8 emulator to test
your app on the following screen resolutions:
•WVGA (800 × 480)
•WXGA (1280 × 768)
•720p (1280 × 720)
Screen configuration options
Windows Phone Emulator supports the following
screen configuration options:
• Changing from portrait to landscape mode
• Changing the zoom setting to fit the emulator to
your desktop screen
156. Windows Phone Emulator Testing Pros
Supported feature Description
Memory-constrained devices
You can use the emulator to test your app on
images that emulate the following memory-
constrained devices:
•Emulator WVGA 512MB, for apps that target
Windows Phone 8.
•Emulator WVGA 512MB, Emulator 7.8 256MB,
and Emulator 7.1 256MB, for apps that target
Windows Phone OS 7.1.
Networking
Networking support is integrated with
Windows Phone Emulator. Networking is
enabled by default. You do not have to install
network drivers for Windows Phone Emulator or
configure networking options manually in most
environments.
157. Windows Phone Emulator Testing Pros
Supported feature Description
Language and region settings
You can change the display
language and region settings in
Windows Phone Emulator for testing
purposes.
Application lifecycle and tombstoning
You can test the behavior or your
app when it is deactivated or
tombstoned. For more info, see
158. Windows Phone Emulator Testing Pros
Other supported features
• Notifications
• In-app purchase
• Hardware keyboard and hardware
buttons
• Lock screen
• Copy-and-paste
• Screenshot tool
160. Deploy a .xap file into Windows Phone Emulator
1. Launch Windows Phone emulator
2. Navigate to the path where .xap file resides
3. Navigate to the below path:
C:Program Files (x86)Microsoft SDKsWindows
Phonev7.1ToolsXAP Deployment
4. Click on the XAPDeploy tool to launch
5. Choose Target as ‘Windows Phone Emulator’
6. Browse to the path where XAP is present (step 2)
7. Click on Deploy button
8. The .XAP file is now installed on Windows Phone Emulator
You Tube Link:
https://www.youtube.com/watch?v=ZLCkjVjKOa4