Mobile application testing is a process of testing
applications for the functionality, usability and consistency. Mobile
application can be pre-installed or provided by the mobile software
distribution platform itself.
In simple language, application functionality
tested that works on mobile platform is nothing but “Mobile Application
Testing”.
There are different types of mobile applications:
Native apps – Client side applications
- Created to work on mobiles and tablets
- Developed using SDKs
- Installation is required
- Mostly no need of internet
Mobile web apps
- Server side application
- Websites accessed on mobile using browsers like chrome, safari, firefox etc
- Developed using the web technologies like html, php, css, asp.net etc
- Need mobile internet / Wi-Fi to access the applications
Hybrid apps
- It’s the combination of native and web applications
- Majorly developed using HTML5 and CSS
- Can run on mobile and be used offline as well
Testing the applications on mobile devices are more
challenging than testing on desktop due to variety & range of devices and
different & versions of operating systems like iOS 5,6 etc / Android
2.3,3.1, 4.2, 4.3(jelly bean), 4.4(Kit Kat) etc.
Different types of tests performed on mobile
applications:
- Usability: To make sure user experience of mobile app is easy, simple and satisfactory
- Functionality: Testing the intended functionality of the application, just like any other application
- Interface testing: Testing every menu options, buttons, setting and importantly the Navigational & functional flow of the app
- Compatibility: testing on different devices , browsers and versions of OS etc
Apart from the above, we do have various other
testing types like Installation testing, Performance, API, Security which can
be performed with some manual intervention.
When it comes to automation for the mobile
application, there are few tools which can interact directly with the objects on
mobile interface. Also, there are few commercial tools that work on image based
object recognition like EggPlant, Renorex, SeeTest etc.
We have few open source libraries & tools like Robotium,
Sikuli and Selendroid which can also provide faster and reliable automation results
for mobile testing.
When it comes to automation of mobile app testing
on android platform, we have Selendroid which has great support to interact
with the emulators and various devices with different android versions.
Selendroid is based on Android instrumentation
framework which helps automation on the android platform for both mobile
webview and native apps.
Features of Selendroid:
- Mobile WebDriver supports native and hybrid apps
- AUT need not be modified to automate it
- All the browser automation atoms are supported
- Advanced user interaction and gestures like tap, doubletab, flick etc are supported.
- Multiple simulators and devices can be interacted
- Emulator can be started automatically before execution of the test
- Built in inspector for object identification
- Full Support to JSON wire protocol
Coming to iOS platform, there are open source and
commercial tools but Appium has extensive and increasing support of automation on
iOS.
Appium is a cross-platform test automation tool for
native, hybrid and mobile web apps, tested on simulators (iOS, FirefoxOS),
emulators (Android), and real devices (iOS, Android, FirefoxOS). There are few
challenges in mobile test automation with respect to platform technology and
the execution of the scripts once automation is done.
Mobile automation success depends on the tool’s
ability to work across various platforms and technology. The following
challenges influence mobile automation success:
- Multiple platforms and browsers
- Differences in rendering
- Mobile devices with varied application run times
- Some network related to issues when using different types of networks (GSM/GPRS/Wi-Fi/Wi-Max).
- When using the physical devices some of the hardware challenges like processing speed and memory limitations.
When it comes to Test execution across different
devices and browsers there will be huge effort to deploy and run automation
tests. For example we have a test case that needs to be executed on three
different platforms, such as Android, iOS and Blackberry. The test case is
expected to be executed on 10 different devices and in 10 different
combinations, which leads to 100 iterations of execution which is challenging
and time-consuming to design such a test execution on mobile. Collaborating
with cloud mobile environment providers like BrowserStack, SauseLabs &
DeviceAnywhere is a good idea to quickly test compatibility on multiple environments.
We provide hands-on training on automation tools and frameworks
By
AutomationMentor
www.automationmentor.in
AutomationMentor
www.automationmentor.in
We provide hands-on training on automation tools and frameworks