Wednesday, November 12, 2014

Interrupt Testing Automation of Mobile Apps

Interrupt testing of mobile application is defined as a process of replicating the random interrupts while the application is executing its normal flows and assessing their impact on it. The expected behavior of the application is handling of these interrupts gracefully without blocking them or hiding the notifications automatically and resuming the normal flow of the application once the interruption is over.
Some of the important interruptions that need testing in any mobile applications are:
·         Incoming SMS
·         Incoming calls
·         Incoming Push Notifications
·         Device Power cycle
·         Data cable Insertion and Removal while data transfer
·         Network connectivity on/off
An application should be able to handle these interruptions by going into a suspended state and resuming afterwards, as these are possible to happen while the app is running on the end-user device any time randomly and unexpected.
Interrupt testing of mobile application poses various challenges related to the replication above-mentioned interruptions while the app is running on the test device for both manual and automation testing.
Some of these challenges and their workarounds in manual testing are -
·         Generation of incoming SMS - by using a web based SMS service.
·         Generation of incoming calls - by calling the test device from another phone
·         Incoming Push Notifications - by using OEM Push Notification Gateway control panel
·         Device Power cycle – by pushing off/on the power switch
·         Data cable Insertion and Removal while data transfer – by physically Insertion/removal of cable
·         Network connectivity off/on – by moving in/out of the lift with the test device or placing the Mobile phone in/out of a microwave oven
Interrupt testing of mobile application is a very important but still only very few automation tools and frameworks are able to support these. As it is very difficult to replication/simulation of above interrupts on the test device in the lab or over the unattended remote device in the cloud without any physical interaction with it. 
Some tools/frameworks available out in the market provide the capabilities of simulation for required interrupts with help of keyword based scripting. The QA engineer is required to add the interrupt on various screens/activities of the test cases and has to write manually the events for expected user action on it and assertion for the expected app behavior for every added interrupt in the test script. QA engineer has the responsibility to verify these interruptions for every scenarios/screens and coding it manually becomes very time-consuming and complex job.

Exploring various available mobile test automation solutions & Tools, I found mAutomate, which is one of the first few mobile automation tools, that has simplified this process of Interrupt testing automation of mobile application making it achieve able just in few clicks. You can get the access to its free version from its website (mAutomate.com). Once you have the set of functional test cases ready (recorded) in the system for execution on target devices – you can simply insert the required Interrupts at any stage of the test script just by clicking on the web based test script-editing wizard without writing a single line of code. It is able to simulate all required interrupts on the target devices while the test script is executing on the remote device and get the results with screenshots back to us on the web interface.

Monday, June 23, 2014

Future Trends in Mobile Test Automation Tools


In Mobile test Automation tools now we see a trend of these test automation tools moving towards a combination of Object & Image comparison based approach and calling it hybrid approach of mobile test automations. Pre-dominantly Image comparison based tools have started offering Object comparison based testing as well and Tools like mAutomate are moving towards image comparison, by virtue of which mAutomate is now able to provide UI verification along with functional test execution.

Looking at this current trend, I can predict that trend of mobile test automation tools moving towards advance hybrid approach of test automation enabling automatic system/UI object mapping, automatic transversal of apps, Seamless UI verifications, automatic Security, random interrupt and app store compliance certification in near future.

Thursday, June 5, 2014

Evolution of Mobile Test Automation Tools

With the evolution of mobile phones platforms from basic feature phones based on J2me/BREW to current date smartphones powered by Android, iOS and WP8, the mobile applications have evolved along with from simple few screen interactions to complex integrated business solutions.

In the feature phone day’s as the app’s were smaller in size and were built as few screen interactions to solve a particular business problem all the functional testing was done manually. As the underlining business logic started becoming complex, some of the developers started writing unit test scripts for the mobile app business logic classes & methods using the frameworks derived from JUnit such as JM Unit, B Unit and OC Unit. These unit test scripts were checked-in into the source control with the source code and integrated with continuous integration (CI) systems, to execute automatically on every built.
As the complexity and size of the mobile applications increased with device capabilities and processing power, the apps require testing of large number of test cases that cannot be tested manually in every release cycle and this created a need of a UI test automation for mobile applications. This need gave birth to Image comparison (OCR based tools) powered by VnC based tools and hardwired mobile phone dock’s with camera’s mounted over the device screens. These tools provided basic record and playback capabilities, with initial scripting support based on manually created on-screen Image Object mapping repo’s. As these tools had the capabilities of pushing key events and relaying the mobile screen content on a connected computer for execution of automation scripts, they are also used for testing automation of mobile application on remotely available device connected over internet i.e. the services like device-anywhere.

With the increase in popularity of iOS & Android platforms, people started using Instruments support provided by the iOS platform SDK xcode and Robotium for Android. Testing with Instruments required developing unit test type ‘scripts’ and executing then on emulators or usb/wifi connected devices. QA engineers have to often revert to development team for modification of these scripts to represent the modified or required new test scenarios as none of these frameworks provided the capabilities of recording the test scripts. These frameworks were able to fulfill the need of functional test automation for the mobile apps, but were not able to support with the need of UI test automation or execution of test scripts on remote devices in different geographies and operator networks.

Next came in the wave of Object comparison based test automation tool for mobile application; these tools require instrumentation of the application source code with their automation library. This library captures all the application objects, their properties and user actions at the time of recording and replays user actions at the time of execution to assert the object properties and give results. Some of this of tools allow to execute test scripts only on USB/wifi connected devices, while some others provides the capabilities execute test scripts on remote devices connected over internet and hosted anywhere across the globe. Few of them allow simulating desired environmental conditions at the time of recording and execution along with senor data simulation. They also provide features like adding assertions and regressions and editing of recorded test scripts for advance users.

Friday, March 7, 2014

Tune in to my Webinar on - Maturity of Mobile Test Automation: Approaches and Future Trends on 12th March 2014 http://www.impetus.com/webinar?eventid=76

Saturday, February 15, 2014

Nokia - Your Wish Is My App - Season 2


India’s only app reality show, Nokia - Your Wish Is My App is back. And Season 2 is going to be bigger and better. So, go ahead: think of a great app idea, share it with us and we'll make it for you. And the best part is, you don’t just get a chance to be featured on our NDTV show, you also get to be a millionaire!


Winners from Nokia - YWMA - Season 1 with Priyanka Chopra.
My snap - captured Live from NDTV YWMA telecast.
For more details visit:  http://www.nokia.com/in-en/yourwishismyapp/


 

Wednesday, November 20, 2013

Enterprise Mobility Trends – Mobile First Strategy

Enterprises have now started moving forward with Mobile first strategy, adopting Mobility as their primary IT platform to transform their business processes. They are migrating to the latest generation of smartphone and tablets using BYOD without compromising on enterprise data security or overlooking employee privacy. Graduating from email on mobile to business critical apps that can increase their competitiveness in the market and looking forward to identify new business models & user interactions that are possible only through mobile to provide exponential ROI.


What they do need the most – MDM, MEAP, MAM, MDP or other Enterprise Mobility enablers or a combination of all of them ?  

Stay tuned for more on this topic... 

Saturday, January 12, 2013

Test Automation focus on Mobile application testing


         Test Automation focus on Mobile application testing – Looking at the challenges of this space created due to network, platform & device diversities and in increasing complexity of mobile apps all traditional test automation tool are extending their capabilities in mobile space  On the mobile side till now, screen/image comparison tools were used for functional automation with platform like device anywhere and now a new type of mobile testing automation tool which work on object comparisons like mAutomate are getting lot of traction due to their capabilities of asynchronous remote testing of mobile application over-the-air and reporting of performance numbers along with test results.