Mobile Testing Quick Guide
Mobile Testing Quick Guide
I want to buy new clothes for my kid, but I don't have the time to go to a store.
I have been in this city for the first time; which hotel should I book?
Now answer yourself. What do you need to perform these activities in a fraction of second?
The answer would be −
A smartphone,
This makes us realize the importance of a mobile app in today’s era. Everything is being
done in a smart way through your smart phone. Each day, we get to know about a new
app or tool being launched to ease our life.
There is one well-known incidence about Gowalla. Millions of people enjoyed this location-
based social network that started in 2007 and shuttered down five years later. Multiple
problems blocked Gowalla from reaching mass appeal. One of the prime reasons that
surfaced was “Checking in was not that user friendly”.
To have a successful mobile app, we need to understand that developing a nice mobile app
is not the only requirement. A mobile app needs to be tested thoroughly in order to get
the likability of users. After all, it is the user experience makes any software successful.
type of the mobile app. Having sufficient knowledge about each of these will help us
conduct robust test planning in the long run.
Based on some generic survey, the usage of different operating systems in the market can
be depicted as shown below.
Take a look at the following table. It differentiates tablets, e-book readers, and
smartphones based on their characteristics.
Sony smartphones,
Amazon Kindle, Barnes &
Example Samsung Tablets Samsung smartphones,
Noble Nook.
Apple iPhone.
Mobile Web
Web apps are not real applications; they are actually websites that open in your
smartphone with the help of a web browser. Mobile websites have the broadest audience of
all the primary types of applications.
Benefits −
Easy access.
Easy update − Just update in one location and all the users automatically
have access to the latest version of the site.
No installation required, as compared to native or hybrid app.
Downside −
Mobile websites cannot use some of the features. For example, access to
the file system and local resources isn’t available in websites.
Users won’t have the app’s icon on their home screen as a constant
reminder. The website needs to be opened in a web browser only.
While native and hybrid apps appear on the App Store and Google Play, web
apps won’t. So redistribution is not that sensible.
Explore our latest online courses and learn new skills at your own pace. Enroll and
become a certified expert to boost your career.
Native App
A native app is developed specifically for one platform. It can be installed through an
application store (such as Google Play Store or Apple’s App Store).
Benefits −
Native Apps live on the device and are accessed through icons on the device
home screen.
They 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, and app-defined gestures).
Native apps can use the device’s notification system and can work offline.
Publishers can make use of push-notifications, alerting users every time a
new piece of content is published or when their attention is required.
Native Apps maintain UI design of each operating system, thus they offer
the best user experience. For example, a Native App can have a left-aligned
header in Android and a center-aligned header in iOS.
Downside −
High cost for building the app : Native apps developed for one platform will
not run on another platform. An App built for Android will not run on iOS.
We need to build a different App altogether for iOS. Because of this reason,
we need to maintain multiple versions of the App.
Even though you might publish native Apps, you’ll want to keep the mobile
website well maintained, as mobile brings more traffic. So maintenance is
higher.
Hybrid App
Hybrid Apps are a way to expose content from existing websites in App format. They can
be well described as a mixture of Web App and Native App.
Benefits −
It can be found in the App Store, which makes the distribution easy.
Downside −
different types of testing which are generally being carried out on a mobile devices.
Unit Testing
Unit testing is a test phase when portions of a mobile device development are tested,
usually by the developer. It may contain hardware testing, software testing, and
mechanical testing.
Factory Testing
Hardware testing
Signal receiving
Network testing
Protocol testing
Certification Testing
Certification testing is the check before a mobile device goes to the market.
Application Testing
Mobile application testing is a process by which application a software developed for
handheld mobile devices is tested for its functionality, usability, and consistency. There are
different types of testing which can be performed on a mobile device. For example,
Functional Testing
Laboratory Testing
Performance Testing
Memory Leakage Testing
Interrupt Testing
Usability testing
Page 7 of 60
Installation testing
Certification Testing
Security Testing
Key Points
Device testing is generally being carried out to check the mobile device itself,
whereas Mobile application testing involves testing of an application which will be
running on the chosen device.
When we call it device testing, hardware testing becomes a part of it. In case of
mobile application testing, it depends, i.e., if the application under test requires
hardware integration, then hardware testing will be involved.
Automation is possible for Mobile Device testing as well as for Mobile application
testing.
Suppose we are developing an application for flight ticket booking system. Once the
product is entirely developed, as a part of mobile testing, we need to check if the
application is working as expected with all the majorly used devices like Android phones,
iOS, Blackberry phones, and other different types of tablets and iPads.
To do this kind of check, we need to acquire each such device and then we can check if the
application behaves as per expectation. Yes you thought right, as a product owner one will
defiantly find this very expensive to procure such a large number of mobile devices and
carry out testing. So is there any smart alternate available?
The solution to this problem is to use Mobile Simulators and Mobile Emulators. These are
primarily software programs designed to provide simulation for important features of a
smartphone. They are very similar in nature, so sometimes, they are used
interchangeably.
It provides step-by-step
debugging of an application. Also,
Debugging Debugging is not that easy.
it provides an efficient way for
capturing screenshots.
Let us now understand more about mobile simulators and mobile emulators. There are
specific differences between the two. The following table lists the major difference between
a simulator and an emulator.
Emulator Simulator
It is generally provided by
It is generally provided by the
How to get it the device manufacturer or
device manufacturer.
some other company.
Page 9 of 60
So, what is the best choice for mobile testing? Best practice indicates that, while actual
development is in progress, we should use an emulator or a simulator. Before finalizing the
product, there should be a sanity check with chosen real devices. For example, there is a
huge number of Android smartphone users, so the smart choice is to have a sanity check
for the latest Android device and regression can be conducted over simulators.
Note − For better understanding, we shall assume that we are testing a mobile application
for online flight ticket booking system.
Functional Testing
Functional testing is the most basic test for any application to ensure that it is working as
per the defined requirements. Similar to other user-interface based applications, mobile
applications require a number of human interactions in user scenarios.
Verify that past dates are not included in the search results.
Compatibility Testing
Page 10 of 60
Compatibility testing has got the highest stack when it comes to mobile application testing.
The purpose of a mobile app compatibility test, in general, is to ensure an app’s key
functions behave as expected on a specific device. The compatibility itself should only take
a few minutes, and can be planned well in advance.
It is not going to be an easy task, deciding on which mobile devices compatibility tests
should be performed (as testing with all available devices is merely impossible). So
prepare a test matrix with every possible combination and get it prioritized by the client.
Localization Testing
Nowadays, most of the apps are designed for global use and it is very important to care
about regional trails like languages, time zones, etc. It’s important to validate the app’s
functionality when someone changes the time zone. It has to be taken into consideration
that sometimes western designs may not work with the audience from eastern countries or
vice-versa.
Verify that there is no UI or data truncation issue when we use the mobile app with
different languages (or say, non-English language).
Verify that time zone changes are handled gracefully for your mobile application.
Laboratory Testing
Laboratory testing, usually carried out by network carriers, is done by simulating the
complete wireless network. This test is performed to find out any glitches when a mobile
application uses voice and/or data connection to perform some functions.
Verify that there is no glitch while a customer is having voice chat with the support
staff.
Performance Testing
Page 11 of 60
Mobile performance test covers client application performance, server performance, and
network performance. It is important to make sure that the performance test scenarios
cover all those areas. With the help of performance testing tools, it is not difficult to
identify the existing networks, servers, and server-side application bottlenecks, given the
predefined loads and transaction mix.
Verify that flight available check takes only a reasonable amount of time.
Verify that while flight availability is being checked, the mobile operates normally
and does not hang.
Stress Testing
Stress testing is a must to find exceptions, hangs, and deadlocks that may go unnoticed
during functional and user interface testing. Here is a list of some of the criteria for stress
testing −
Load your application with as much data as possible to try to reach its breaking
point.
Perform the repeated operations at varying speeds – very quickly or very slowly.
Leave your application running for a long period of time, both interacting with the
device and just letting it sit idle, or performing some automatic task that takes a
long time, for example, a slideshow.
Have multiple applications running on your device so that you can switch between
your application and other device applications often.
Check 1000 users are accessing the mobile app to search for domestic flights.
Check 1000 users are accessing the mobile app to search for domestic flights.
Security Testing
Vulnerabilities to hacking, authentication, and authorization policies, data security, session
management and other security standards should be verified as a part of mobile app
security testing. Applications should encrypt user name and passwords when
authenticating the user over a network.
Page 12 of 60
One way to test security related scenarios is to route your mobile’s data through a proxy
server like OWASP Zed Attack Proxy and look for vulnerabilities.
Verify that the application does not get operated with same user credentials on two
different mobile devices.
Verify that a session automatically gets expired if it remains inactive for more than
15 minutes.
Memory testing is exceptionally important for mobile applications to ensure that each
application maintains optimized memory usage throughout the user journey. It is
recommended that we conduct memory testing on the actual target device, since the
system architecture is different from an emulator to an actual device.
Do flight availability checks ten times and note down increasing memory usage for
each check.
Keep the application running for ten minutes and observe if memory usage remains
stable.
Power Consumption test can be done manually; also there are some free tools available in
the market such as Trepn Profiler, Power Tutor, and Nokia Energy Profiler. These are
applications which can display the real-time power consumption on a smartphone or
tablet.
Use the mobile app to search for flight availability, and check the power
consumption remains minimal.
Keep the mobile app in ideal condition; verify that there is no power consumption
when there is no activity happening for the app.
Interrupt Testing
An application, while functioning, may face several interruptions like incoming calls or
network coverage outage and recovery. This can again be distinguished for −
Incoming Notifications
Battery Removal
Verify that flight availability check gets paused and resumed back after receiving an
incoming call.
Verify that the user can reject a call while using the App and again resume the
same App thereafter.
Usability Testing
Usability testing evaluates the application based on the following three criteria for the
target audience −
Efficiency − The accuracy and completeness with which specified users can
achieve specified goals in a particular environment.
Satisfaction − The comfort and acceptability of the work system to its users and
other people affected by its use.
It is very important to get usability testing in place from the early stage of the application
design, and it should not be done only when the application is completed. Usability testing
requires heavy involvement of users, and the output might affect the application design,
which is very difficult to change in the later stages of the project.
Page 14 of 60
Installation Testing
Installation testing verifies that the installation process goes smoothly without the user
having to face any difficulty.
Verify that the installation process is smooth and does not take long.
Uninstallation Testing
The basics of uninstallation testing can be summarized in one line as “Uninstallation should
sweep out data related to the App in just one go”.
Verify that all the application related files are removed successfully after
uninstallation.
If it is an App which stores media files (like Whatsapp or Facebook), retain the files
even after the uninstallation of the App.
Updates Testing
We need to be very much cautious about mobile app updates. People frequently complain
about applications not working satisfactorily after an update. So it is very important that
under the update testing, we qualify that the App will work as it was working previously. In
a nutshell, it should not break anything. Mobile application updates can take place in two
ways − Automatic update and Manual update.
Certification Testing
To get a certificate of compliance, each mobile device needs to be tested against the
guidelines set by different mobile platforms.
Verify that the application adheres to the policy of iOS phones when installed on
iPhone.
Verify that the application adheres to the policy of Android phones when installed
on Android.
Mobile Testing - UI
Suppose we are using a mobile application, and interestingly, you experience the following
situation −
Indeed this is an unpleasant experience for any of the users. To make sure that we provide
excellent experience to our users, Mobile UI Testing is highly recommended.
The first area to explore in your test plan is the user interface. It is your job as the tester
to confirm that your application meets certain expectations, such as −
Menus and how they are invoked and the typical items they contain
If you have a multi-column layout, you may also want to check that your columns align
correctly and are still viewable when your visitor has a lower resolution. It is also
important to know the standard screen resolutions −
640 × 480
800 × 600
1024 × 768
1280 × 800
1366 × 768
1400 × 900
1680 × 1050
Available Tools
There are quite a few tools available in the market to make mobile UI testing smoother
and simpler. For example −
Screenfly
Browser Stack
Let’s understand a little more about these tools and their usefulness.
Step 1 − Open the website under testing in “Google Chrome Web browser”.
Step 2 − Press F12. It will open the Developer tool window, as shown in the following
screenshot.
Page 17 of 60
Step 3 − Click the mobile device like icon. Refer the following screenshot.
Step 4 − Select the mobile device with which you want to test the website. You can
choose the different available devices in order to do the UI verification.
Page 18 of 60
Screenfly
Screenfly is a free and easy-to-use tool. To use this, you just need to type in Quirktools in
your web browser. You will see the following screen.
Page 19 of 60
Enter the website under test and click Go. Select the mobile device in which you want to
view the website.
BrowserStack
It’s another great tool for performing mobile UI testing. It provides wonderful results.
Although it is a paid tool, you can avail a free trail by registering on BrowserStack with a
valid email address.
Touch Screens
Ensure that buttons and icons are large enough and far enough from the edges of the
screen to be easily clicked by a large fingertip.
Soft Keyboards
Often, there are various special cases and corner cases that are important to the end-
users.
Does the soft keyboard automatically appear if the user's main action is to enter
some text?
Does the first layer of the soft keyboard include shortcut "@" and ".com" keys if the
highlighted field is for entering email addresses?
Can the soft and hard keyboards be used interchangeably (if the device has both)?
Hard Keys
Make sure to include a lot of testing around the use of the device's available hard keys
such as Start, Home, Menu, and Back. These should all interact with your application
similarly to how they interact with the device's native applications.
Your timeframe and budget. Having a good understanding of the timeframe and
the budget will help you determine which processes and equipment will work best
based your needs.
The physical setup of the space and how you will capture the test. This may
range from a lower-fidelity arrangement to using a specialized platform and camera
device and/or maybe using an eye-tracking software.
Your target audience and devices. Use web analytics to check how many mobile
users visit the site, which device they use, and their operating system.
Understanding this information will help you to know which devices to test.
Another important aspect to cover after test planning is test device management. In a
large organization, handling mobile device testing needs a smart way to secure
organization’s confidential data. To do this, you will need a security software. In the
following section, we will understand more on device management tools.
MDM is often combined with additional security services and tools such as Mobile
Application Management to create a complete mobile device and security Enterprise
Mobility Management solution.
There are many tools available in market to do this job. The following table provides an
overview of some of the popular tools and their features.
2.3 through
Android 2.3+ Yes Yes Yes Yes
current
4.0 through
iOS 5.0+ Yes Yes Yes Yes
current
No for BES10
7 through
Windows Phone (WP 8+ for Yes Yes Yes Yes
current
BES12)
Lion,
Coming
Mac OSX No Yes Yes Mountain Yes
soon
Lion
Office
Windows
Windows 365,
Other No None None Mobile, CE,
Mobile Gmail,
Embedded
Lotus
Configure/disable
Yes Yes Yes Yes Yes Yes
WiFi
Yes, device
Device Encryption Yes Yes type Yes Yes Yes
dependent
Yes, device
Email Encryption Yes Yes type Yes Yes Yes
dependent
Multifactor
Yes Yes No Yes Yes Yes
authentication
Yes with
Malware detection No No No Yes partner Yes
integration
Yes with
Firewall Yes No No Yes partner Yes
integration
Hardware Components
If you take any cellphone, mostly it will comprise of the following parts.
Circuit Board
It can be regarded as the brain of the phone that controls all its activities.
Page 23 of 60
Memory Card
Memory cards come in different sizes and capacities. They are used widely as a data
storage device to store digital information.
Page 24 of 60
SIM Card
A SIM card provides personal mobility so that the user can have access to all subscribed
services irrespective of both the location of the terminal and the use of a specific terminal.
You need to insert the SIM card into another GSM cellular phone to receive calls at that
phone, make calls from that phone, or receive other subscribed services.
Page 25 of 60
Battery
Smartphones run on a variety of different batteries depending on the phone’s
manufacturer, its dimensions and features. For those who depend heavily on their
smartphones, it is important that the batteries are as long lasting as possible. This
eliminates the need to recharge them frequently, and makes it less likely that they will run
out of charge when they are most needed.
Open iTunes.
In iTunes, click on the device’s name under “Devices” in the column on the left.
Click once on the serial number of the device in the window’s main section.
Click +.
Select an App ID to associate with the provisioning profile and click Continue.
To be able to use one development provisioning profile across multiple apps, select
a wildcard App ID, if available.
Select one or more devices to include in the provisioning profile and click Continue.
Browse to the location where the mobile provision file for your provisioning profile
is stored, select it and confirm the import.
You can specify a device preference (Mobile or All) for any text, dynamic search, image, or
display ad.
If an ad group has both mobile-preferred and regular ads, only mobile-preferred ads serve
on mobile devices, and only regular ads serve on computers and tablets.
In the type list, select Ads and Extensions and choose the type of ad you’d like to update.
Select one or more ads. Under "Device preference" on the edit panel, select Mobile or All.
Network Connections
The following table provides a checklist of network connection tests that can be performed
for a mobile device.
Sr.No. Description
Does the app behave according to specification of the app is out of network
4
reach?
Page 28 of 60
Does the app resume working when it gets back into the network reach from
5
outside reach of the network?
Does the app still work correctly when tethering or otherwise connected to
7
another device?
8 What happens if the app switches between networks (Wi-Fi, 3G, 2G)?
Does the app use standard network ports (Mail: 25, 143, 465, 993 or 995
9 HTTP: 80 or 443 SFTP: 22) to connect to remote services, as some providers
block certain ports.
SD Card Interactions
The following table provides a checklist of checking premiere functions of the SD card
interaction with a mobile phone.
Sr.No. Description
6 Does the app behave as designed/desired if the device goes to sleeping mode
Does the app behave as designed/desired if the device resumes from lock
8
screen?
invitation, etc.).
Does the app interact with the GPS sensor correctly (switch on/off, retrieve
13
GPS data)?
Is the functionality of all the buttons or keys on the device defined for this
14
app?
In case there’s a true “back” button available on the device does the “back”
16
button take the user to the previous screen?
In case there’s a true “menu” button available on the device, does the menu
17
button show the app’s menu?
In case there’s a true “home” button available on the device, does the home
18
button get the user back to the home screen of the device?
In case there’s a true “search” button available on the device, does this get
19
the user to some form of search within the app?
Does the app behave as designed/desired if the sound on the device is turned
21
off?
25 Can the app be found in the app store? (Check after go-live)
Can the app switch to different apps on the device through multitasking as
26
designed/desired?
Are all touch screen positions (buttons) working when a screen protector is
27
used.
Bluetooth Testing
Bluetooth devices can communicate only within the radius of the 10 meters. Such devices
can be keyboards, the mouse, wireless headphones, etc. The following table provides a
checklist of Bluetooth tests that can be performed −
Page 30 of 60
Sr.No. Description
Both data and voice transmissions can be sent through the use of short range
2
networks.
Both data and voice transmissions can be received through the use of short
3
range networks.
Through mobile phone, you can send pictures, videos, exchange business
7
cards and also transfer files to your PC.
(Device paired) this is a message used to confirm that a user has successfully
8
paired two Bluetooth devices.
Non-pairable mode, a device that will not accept pairing is said to be in non-
11
pairable mode.
Devices not found, this is an error message which may appear if a search for
14
other devices in range does not find anything.
Idle Mode, a device is in idle mode when it has no established links with
15
other devices. In this mode a device may discover other devices.
Wi-Fi Testing
Page 31 of 60
Testing your mobile phone WiFi connection is a great way to make sure your Internet is
operating at the speed promised by your service provider, but you aren’t limited to running
those tests on your desktop computer. Mobile phone WiFi testing is a perfect way to test
the power of your WiFi signal at various places in your home or office. Given below is the
Wifi testing checklist for a mobile device.
Sr.No. Description
Does the app behave according to specification of the app is out of network
2
reach?
Does the app resume working when it gets back into network reach from
3
outside reach of the network?
4 What happens if the app switches between networks (Wi-Fi, 3G, 2G)
Does the app use standard network ports (Mail: 25, 143, 465, 993 or 995
5 HTTP: 80 or 443 SFTP: 22) to connect to remote services, as some providers
block certain ports.
Running a WiFi speed test on your smartphone is a simple task. Most convenient are the
speed tests that run in your smartphone’s mobile web browser. Just follow the simple on-
screen prompts to begin the test. If the online test doesn’t save your results, take a
screenshot after the finished test to provide a history.
Some tests are available as apps for both the iOS and Android platforms. To use these,
download the app you want. Then follow the instructions to run the test and save your
result.
Speed Test SpeedSmart WiFi & Mobile Network Speedtest − It is compatible with
Apple iPhone and iPad. It is a paid application. SpeedSmart is the ultimate iOS speed test
utility for evaluating your cellular (3G, 4G, and LTE) and Wi-Fi connection on all your iOS
devices. A global server network and a smart speed test method ensure accurate results.
Page 32 of 60
WiFi Speed Test − It is compatible with Android phones. It is a paid tool. With this tool,
you can test the speed of your local (LAN) network. Testing can be done on wireless (WiFi)
or wired network.
Sr.No. Description
1 Text is translated.
Dialog boxes are properly resized and dialog text is hyphenated according to
3
the rules of the user interface language.
Translated dialog boxes, status bars, toolbars, and menus fit on the screen at
4
different resolutions. They do not wrap and are not cut off.
Page 33 of 60
Visual layout is consistent with the native edition's layout. For example,
6
dialog elements are in the proper tab order.
Database Testing
There are different ways you can store data in Mobile Apps. In case of Android, you may
choose to store your data over server, shared Preferences or SQLite.
SQLite is a lightweight database which is commonly used in Android and other operating
systems as well. In order to view data in SQLite, you may need to root the device or you
can use emulators for testing. There are some tools in Android Playstore which would help
you extract data from this database.
The following types of tests should form a part of your mobile database testing −
Trigger testing.
Testing that the database changes are shown correctly on the UI of the app.
Recovery Testing
Recovery testing is used to ensure that operations can be continued after a disaster.
Recovery testing not only verifies the recovery process, but also the effectiveness of the
component parts of that process.
Recovery testing is the activity of testing how well an application is able to recover from
crashes, hardware failures, and other similar problems. Given below is the checklist for
Recoverability testing.
Sr.No Description
4 All media file has been recovered from the restore point
Concurrency Testing
We generally take the help of concurrent testing to make sure that multiple users can
concurrently access a program at the same time. While applying concurrency testing for a
mobile device, as such there will be only single user. So it eliminates the need of
concurrency testing for a mobile device.
Usability Testing
Generally you get a rig where mobile phone and a web cam can be adjusted to record the
usability assessment session.
There are tools available like Applause. They provide a targeted group of survey
participants who are handpicked to test your app. What separates Applause from other
such services is that you can have a consultation with an expert at Applause, who then
chooses the ideal participants based on the consultation.
Sr.No. Description
Page 35 of 60
Does the app behave as designed/desired if the device resumes from lock
8
screen?
Does the app interact with the GPS sensor correctly (switch on/off, retrieve
13
GPS data)?
Is the functionality of all the buttons or keys on the device defined for this
14
app?
In case there’s a true “back” button available on the device does the “back”
16
button take the user to the previous screen?
In case there’s a true “menu” button available on the device, does the menu
17
button show the app’s menu?
In case there’s a true “home” button available on the device, does the home
18
button get the user back to the home screen of the device?
In case there’s a true “search” button available on the device, does this get
19
the user to some form of search within the app?
Page 36 of 60
Does the app behave as designed/desired if the sound on the device is turned
21
off?
25 Can the app be found in the app store? (Check after go-live)
Can the app switch to different apps on the device through multitasking as
26
designed/desired?
Are all touch screen positions (buttons) working when a screen protector is
27
used.
Framework Architecture
For mobile testing automation, we need a good mobile automation testing framework. On
the top of that framework, we can build our test cases. Mobile automation testing
frameworks can be segregated by the operating system of the mobile device. In the
following chapters, we will discuss two types of mobile testing frameworks: Android testing
frameworks and iOS testing frameworks.
Calabash − Calabash is a functional testing framework that can be used for both
iOS and Android functional testing. On paper, it must be one of the easiest
frameworks to use and even non-developers should be able to create functional
tests using it.
Selendroid − Selendroid is a relatively new kid on the block and can be used to
functionally test your Android applications. Apparently, if you are used to Selenium,
Selendroid should be an easy way to use your knowledge to create your functional
tests for Android.
Calabash − Calabash is a functional testing framework that can be used for both
iOS and Android functional testing. On paper, it must be one of the easiest
frameworks to use and even non-developers should be able to create functional
tests using it.
UI Automation − For your more typical functional tests (or black-box tests), in
which you’re going to write code that simulates an end-user navigating your app,
there is UI Automation. UI Automation is provided by Apple and is the Apple-
sanctioned way of performing iOS functional testing.
FRANK – BDD for iOS − If you want to do end-to-end testing in iOS and wish you
could use BDD and Cucumber, no worries — there’s a tool called Frank that will
allow you to create acceptance tests and requirements using Cucumber.
Robotium can be used both for testing applications where the source code is available and
applications where only the APK file is available.
Benefits of Robotium
Easy to write, shorter code. Minimal time needed to write solid test cases.
You can develop powerful test cases, with minimal knowledge of the application
under test.
Test cases are more robust due to the run-time binding to GUI components.
Drawbacks of Robotium
Robotium cannot interact with Status Bar Notifications − that is, pull down the
Notification area and click on a specified Notification.
Select the necessary package. For example, if we are building an App for Android
4.4.2, then make sure the following packages are checked under the Tools section
−
Open Android Studio and click AVD Manager in the toolbar. AVDs allow us to test
and run our Android apps.
(Make sure you select the target with Google APIs in the name.)
Click OK
You should now see the AVD you created in the AVD Manager, where you can start
it, delete it, or create another one!
Step 5 − Robotium Jar file Download Robotium Jar file from RobotiumTech
Choose all the default options until you reach to the main page.
Step 2 − Copy the Robotium jar file into the Lib folder of the project.
Page 44 of 60
androidTestCompile 'com.jayway.android.robotium:robotium-solo-5.5.3'
package com.example;
import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import android.widget.TextView;
public MyTestClass() {
super(TestActivity.class);
}
Page 45 of 60
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
}
Step 7 − Now, run the test case. If the test case is successful, you should see the
following output!
Page 46 of 60
Benefits of Selendroid
Testing the mobile web using built in Android driver webview app.
Full integration as a node into Selenium Grid for scaling and parallel testing.
Drawbacks of Selendroid
The drawback of this tool is that it is quite slow and on some machines with less than 4GB
RAM, it is unusable.
Step 2 − Download Android Studio from SDK Android (It will take time because of the size
of the file).
Step 3 − Download Selenium jar files and test application from Selendroid
Make sure that the device is attached to the workstation with USB cable.
Make sure the USB debugging mode (under setttings → Developer options) is
enabled.
Step 3 − Add the downloaded Selendroid jar file to the newly created project.
Step 4 − Add the downloaded Selenium jar files to the newly created project.
Step 6 − Connect the mobile devices with the system using USB cable. Set the USB
debugging mode from the developer’s options under settings.
Step 7 − Run the Selendroid server. Open command prompt and write the following code
and hit Enter −
Selendroid-standalone will start an http server on port 4444 and will scan all Android
virtual devices (avd) that the user has created (~/.android/avd/).
Page 49 of 60
Step 8 − Create a Java Project; add Selendroid Standalone libraries, Selenium jars, and
JUnit libraries in the build path.
Step 10 − Create a class under the package and write the following code.
package selTest;
import io.selendroid.SelendroidDriver;
import io.selendroid.common.SelendroidCapabilities;
import io.selendroid.standalone.SelendroidConfiguration;
import io.selendroid.standalone.SelendroidLauncher;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
@BeforeSuite
Page 50 of 60
@Test
public void selendroidTest() throws Exception {
WebElement inputField = driver.findElement(By.id("my_text_field"));
Assert.assertEquals("true", inputField.getAttribute("enabled"));
inputField.sendKeys("Selendroid");
Assert.assertEquals("Selendroid", inputField.getText());
button = driver.findElement(By.id("button2"));
button.click();
Thread.sleep(5000);
button = driver.findElement(By.id("startUserRegistration"));
button.click();
Thread.sleep(10000);
element = driver.findElement(By.id("inputEmail"));
element.sendKeys("test@gmail.com");
element = driver.findElement(By.id("inputPassword"));
element.clear();
element.sendKeys("test1233");
Page 51 of 60
element = driver.findElement(By.id("inputName"));
element.clear();
element.sendKeys("My Name ");
element = driver.findElement(By.id("input_preferedProgrammingLanguage
element.click();
element = driver.findElement(By.id("text1"));
element.click();
element = driver.findElement(By.id("input_adds"));
element.click();
element = driver.findElement(By.id("btnRegisterUser"));
element.click();
element = driver.findElement(By.id("buttonRegisterUser"));
element.click();
}
@AfterSuite
public void tearDown(){
driver.quit();
}
}
Advantages of Appium
Page 52 of 60
Drawbacks of Appium
On iOS, you can only execute one test at a time per Mac.
Step 2 − Download Android Studio from SDK (It will take time because of the size of the
file).
Select the necessary package. For example, if we are building an App for Android
4.4.2, then make sure the following packages are checked under the Tools section
−
Open Android Studio and click AVD Manager in the toolbar. AVDs allow us to test
and run our Android apps.
Make sure you select the target with Google APIs in the name.
Click OK.
You should now see the AVD you created in the AVD Manager, where you can start
it, delete it, or create another one!
Page 56 of 60
Choose all the default options until you reach to the main page.
Step 2 − Add the Appium jars into your project. Click Project → App → copy all the jars in
lib. Select the copied jars except Selenium, Java client and Junit Jar, then right-click on it
and click on "Add as Library".
Step 3 − Click on build.gradle in the App. You will see all the libraries added, as shown in
the following screenshot.
AppiumDriver driver;
@Before
public void testCaseSetup()throws Exception {
Page 57 of 60
//service.start();
//reader.readFile();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device");
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "4000");
cap.setCapability(MobileCapabilityType.APP, "c://apk//sample.apk");
@Test
public void testcase1()throws Exception {
driver.findElementByID("Example").click();
Asser.assertTrue(driver.findElementByID("Example").isDisplayed));
}
@After
public void testCaseTearDown() {
driver.quit();
}
It is not a replacement for JBehave or the Robot Framework, as you will see later on. Here,
we will give you a glimpse of Zucchini’s concepts by describing an example step by step.
Zucchini doesn't involve making any modifications to your application code. You might
as well keep your Zucchini tests in a separate project.
The udidetect utility comes in handy if you plan to add devices from time to time −
udidetect -z.
Running on the iOS Simulator. We strongly encourage you to run your Zucchini
features on real hardware. However, you can run them on the iOS Simulator, if you
must.
Secondly, add an 'iOS Simulator' entry to the devices section (no UDID
needed) and make sure you provide the actual value for 'screen' based on
your iOS Simulator settings −
Run it like −
ZUCCHINI_DEVICE="iOS Simulator" zucchini run /path/to/my_feature
Result Display
Page 60 of 60