Wednesday 8 October 2014

Mobile Application Testing and Automation - Overview



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.



By
AutomationMentor
www.automationmentor.in

We provide hands-on training on automation tools and frameworks