Cloud Mobile App Testing Services:
Should I start this article by explaining what a ‘Mobile App’ is? I assume that the reply from almost all the readers here would be a big ‘NO’.
A mobile app is an emerging technology and it is the most convenient and demanding one that brought in huge changes in the current market situation.
I wish to share a live instance related to this. A school teacher did ask the students of class 2 to spell the word ‘APPEAR’ and most of them were not aware of the exact spelling, but when the teacher asked to spell the word ‘APP’, the entire class responded with a loud response correctly.
Hence it is very obvious that even the upcoming generation is so smart enough to understand what an APP is.
This tutorial will give you an in-depth knowledge of the need, merits, and demerits of Cloud Mobile Application Testing along with the various tools available in the market for cloud in simple terms for your easy understanding.
With a tremendous increase in the demand for mobile application industry, the speed of application deployments also has increased considerably.
The teams working on mobile apps are under a constant pressure to launch new apps and provide the updates at a faster pace. This automatically puts the QA team in the tightest spot as the app or feature is developed and kept ready but the verification stays pending.
Testing a mobile app is definitely a challenging task as it involves testing on numerous devices, OS platforms and several versions available in the market including the latest ones. Until it is completely tested, we cannot assume that as the app worked fine on Android, it will work best on iOS too. In order to minimize the cost involved in setting up test labs, cloud-based mobile app testing is preferred over mobile app testing.
In this article, I have explained what Cloud-based Mobile app testing is and the reasons for which we prefer it. I have also listed some of the best Cloud-based service providers for Mobile App testing.
What You Will Learn:
- What Actually is Mobile App Testing?
- What is Cloud-Based Mobile App Testing?
- Benefits of Cloud Mobile Testing
- Best Cloud Mobile App Testing Service Providers
- Does my App Really Need a Cloud Testing?
- Types of Testing that can be done using the Cloud
- Benefits of Cloud Testing for Mobile Applications
- Liabilities of Cloud-Based Mobile Application Testing
- Best Tools for Cloud-Based Testing
What Actually is Mobile App Testing?
Apps are software or utilities which run on smartphones or tablets. These are a set of codes written by the developers mainly to ease our needs. Apps are very convenient to use and they make things doable with a click. Mobile App testing is required to ensure if the app is supported to run on multiple platforms and OS. Another important factor that matters is the performance of the app.
Hence the testers need to ensure not only if the app loads fine but also to check if the response times are within the acceptable limits. Apps are created by the developers and installed on a different set of devices and the QA’s then test these on different devices.
Apps are sometimes pre-loaded in the device and sometimes, they are required to be downloaded from the stores.
Apart from the commonly used Functional, Usability & Security Testing technique, given below are some other mobile-specific testing which should be done to ensure if Mobile apps are working as expected.
- Performance Testing – Under Performance testing technique, it is better to check how the app works under different conditions like battery full, low battery, low memory and different network conditions like wi-fi or wired network.
- OS Version Testing – Apps should be tested to work on multiple versions of the OS because many a time’s users don’t upgrade the OS to the latest version. If an app is version dependent, same should be mentioned as a pre-requisite during installation, so that an end user would be aware before downloading.
- Geographical Condition Testing – Many apps behave differently as per the network and location, so testing should consider this factor as well. App developers sometimes choose freelancers sitting in different countries to perform such types of testing. While using a cloud, it is easy to test.
- Testing Installation process – Users need to install the apps for it to run on their devices. As part of testing, the installation process should be fully tested. Several checks can be done by installing if the system requirements are met and also if they are not met steps should be taken on what can be done to resolve it.
- Interrupt Testing – When an app is being run, several interruptions can occur. App response and behavior should be tested well against all the types of interruptions like network outage if an app runs on a network, incoming calls, incoming SMS, and battery issues etc.
What is Cloud-Based Mobile App Testing?
Cloud-Based Mobile App Solution allows the developers and testers around the world to communicate and connect to mobile devices via the internet. In cloud technology, testers get access to almost all the range of devices with different OS platforms, versions, network carriers etc. Apps can be uploaded via API or web clients.
Testing which is done by using real devices become expensive, hence cloud-based testing is preferred. Simulators and Emulators available in the cloud, allows testers to perform everything that a real user could do like swiping, double tapping, zoom, scrolling, rotate etc. Performance issues can also be detected by cloud-based testing.
Benefits of Cloud Mobile Testing
Given below are some of the benefits that are derived out of Cloud-Based Mobile Application Testing.
- End User gets a choice of devices, OS platforms, display densities etc thereby reducing the overall infrastructure and maintenance cost.
- Supports parallel testing, hence saves a lot of time.
- Apps can be tested in a secure environment.
- Tools can be accessed from anywhere by both the Developer and the QA.
- Supports recording test results.
- Easy access and is available always.
- Supports testing in a real-time environment with real network carriers.
- Pay per user basis.
Best Cloud Mobile App Testing Service Providers
1) Experitest – Click here for official website.
2) SOASTA – Click here for official website.
3) Manymo – Click here for official website.
4) Saucelabs – Click here for official website.
5) Xamarin – Click here for official website.
6) Keynote – Click here for official website.
7) Blazemeter – Click here for official website.
8) Perfecto – Click here for official website.
9) Appthwack – Click here for official website.
10) pcloudy – Click here for official website.
11) Device connect – Click here for official website.
The expectations of the product owners and customers are high as they wish to launch their apps (and upgrades) quickly without any bugs. Compared to the closed and handful combinations of the OS and phone models of iOS, Android is a big challenge.
The open system has a glut of phone models and OS, hence it is the biggest challenge for testing.
And this is where cloud testing comes into the picture. It enables the testers to test their applications on a cloud quickly and that too without jeopardizing the quality of the app. Cloud testing puddles all devices in a centralized location from where all the testers are connected to the cloud and can access these devices.
Cloud-based mobile application testing is used to simulate real-world scenarios with real-world traffic. And this is done using shared resources allocated dynamically in a flexible environment.
Does my App Really Need a Cloud Testing?
Cloud testing has a lot of benefits but on the contrary, the tools available for this testing are not open source or free.
And if you are not aware of how cloud testing is done, then you need to learn it before using it for your app. This needs an investment of time, efforts, and money, hence there is a need for an approval from the product owner or the manager.
However, before you take this to the PO or manager, as a QA you have to decide whether your app really needs a cloud testing? On what criteria will you conclude if your app needs a cloud testing or not? The crystal clear answer to these questions is nothing but just the requirement of the app.
Based on the following (example) set of requirements you can take your decision:
|Criteria||Cloud testing needed?||Cloud testing not needed?|
|Target audience||These are the apps which are used globally by all people and are not limited to some specific audience. These apps can be gaming apps, shopping apps, travel apps etc. Hence chances of millions of users hitting the app on the day. Such apps need to be tested and regressed for a typical real-world scenario.|
Such apps definitely need stress, penetration, load tests since they are commonly available to everyone for download. Testing every aspect of such apps manually would be very hectic and hence cloud testing can ease the day for the QAs.
|These are the apps which are designed and created for some specific users and not the global audience. These are available in play stores but are installed by specific people. The users of such apps on a given day may or may not go beyond thousand. These can be some CRM app designed for company users, tracking app for a logistics company, company’s intranet app etc.|
Such apps need stress testing but not to the extent where the company will have to invest in buying separate tools. In such cases, testing can be done manually and even at times, the product owners (of such apps) do not approve of investing in the cloud.
|Operating System version testing||Apps which are Native by nature and are developed completely based on the specific features of a given operating system and/or its versions need to be regressed across different versions.|
Such apps need a test bed comprising of different versions. Hence cloud testing is advisable in such cases.
|Apps which are web app by nature will behave same across different versions of an operating system. Hence they don’t need to be regressed for different OS.|
While hybrid apps need an OS version testing to an extent but definitely not a regression against every version.
|Phone model screen size testing||Apps which have flashy UI or imaging feature like gaming apps, travel apps, etc need to be tested on all screen sizes or features of phone models.|
Creating such test beds would be very expensive and hence cloud testing will save your day.
|Apps which do not have fancy UI or any such feature that will vary with phone models, do not need to be tested for all screen sizes or phone features.|
Hence it may not be a good idea to test on a cloud.
Hence gather information on all such parameters for your app. Based on this, prepare your case for cloud testing to know if it is really required or not, discuss with the development team about their views and take their inputs as well, before approaching your manager or product owner.
Types of Testing that can be done using the Cloud
Almost all types of testing can be done on the cloud, from functionality verification till load and performance testing.
And there are some specific tests that can be carried out in almost all cloud-based automation tools. Once you pick a cloud-based tool for testing, your efforts are reduced to half as all the major and important tests get done on the tool with very interactive and informative test reports.
The following diagram lists the common tests that can be carried out under cloud testing (although there are tests that are specific to tools):
Benefits of Cloud Testing for Mobile Applications
Given below are the various benefits that are derived out of Cloud Testing for Mobile Applications:
#1) 24-hour Availability:
The cloud mobile is the one where a central server is connected to a series of machines located anywhere and hence as a user you can connect to the cloud and choose any device that you want to test your app on.
You can even run your automated test scripts on geo-located machines with different time zones. Thus it has 24-hour availability for running the tests.
#2) Saves more Time:
You can run 1000s of scenarios against 20 OS versions, 100 device models at the same time thus it saves much time and covers approximately 20,00,000 scenarios at the same time.
#3) Perfect for Agile Methodology:
Agile works on cross-functional teams which work in parallel, unlike the traditional Waterfall teams which work on a step by step basis.
With the help of cloud testing, each tester is empowered with the same resources regardless of his/her location at the same time. Hence resources are allocated in parallel and not in a step by step basis.
#4) Less Expensive:
Imagine how much it will cost for a company if testing requires 10 OS version Vs 50 phone model test bed.
When compared to this, using an open source or paid cloud-based tool is very less expensive. Hence it is less expensive when compared to mobile test bed.
#5) Continuous Integration:
My app involved continuous integration and it was becoming very difficult for us to verify the whole app against each and every change made.
With cloud testing, verifying the application’s stability and functionality became very easy and time-saving. Just by looking at the results, you can make out if the verification is passed or failed. Hence cloud testing is the best solution for Continuous Integration.
#6) Increased Efficiency:
In case of urgent releases, you can easily prioritize the test bed and run the scripts accordingly. The results can be achieved in a much less time when compared to manual testing. This helps in increasing the efficiency thereby delivering a smoothly functioning app.
Liabilities of Cloud-Based Mobile Application Testing
Though there are several benefits of Cloud-based mobile app testing, there are certain disadvantages or liabilities too:
#1) Large Bandwidth:
As cloud testing resources are shared and made available to everyone having access to that cloud, in order to increase the effectiveness of your tool, you need to have a jumbo (large) bandwidth.
#2) No Backup, Redundant Tests:
Mostly all the cloud-based tools do not have the facility to backup and store your test plans, hence a re-execution may cost you a lot.
#3) Lack of Security:
When you submit your app to any cloud-based testing tool, you are giving away your data, information, your app and sometimes the code as well. Although these tools are safe and secure still there’s no 100% guarantee that it won’t get hacked.
#4) Frequent Feature Changes:
If your app is not stable and if the customer is changing the functionality very often, then it’s not advisable to invest in cloud testing.
#5) Separation of Testers or Lack of Communication:
As per the cloud testing concept, you have to submit your app to the cloud and whoever has access to that cloud can test your app. But at times it is very important that the testers are physically present at the same location as a team.
So that they can pair up and fix-verify the major failures. It is difficult for developers to get more information on major failures if any anonymous person has tested and a major failure gets reported in the cloud test report accordingly.
Best Tools for Cloud-Based Testing
Before selecting a tool, (as per my experience) document the basic tests that you will execute almost every week for evaluating the tool(s). If your QA team comprises of more than 1 QA, then distribute the selected tools among yourself and evaluate the trial versions for your requirement.
Before finalizing the tool compare your findings with each other. A wrong choice of tool can land you in a big trouble.
Nowadays, there are several tools that are available for cloud-based mobile application testing. Although emulators and simulators are available, they don’t provide the benefit of automation testing on a variety of devices in parallel.
With cloud testing tools it is very easy (and time-saving) to test the matrices for your test bed.
Following is a list of some of the most popular and widely used cloud-based mobile application tools:
#1) AWS Device Farm:
This is a leading cloud-based testing tool made by Amazon and can be used for both Android and iOS.
This can be used for testing web, native and hybrid type of apps. It is a paid tool. The reports are generated in the form of video, logs, screenshots etc and can be run on real and non-rooted phones.
#2) Firebase Test Lab for Android:
As the name itself suggest,s it is specific to Android and can be used for any device – OS combination of Android.
It comes in both free and paid versions. The test results can be in the form of logs, video, and screenshots. It is a suitable tool for Continuous Integration (CI).
It is a paid tool and provides manual, automation and performance testing on real devices.
It doesn’t support emulators. It is a good choice for both Android and iOS and it can support more than thousand real devices. It provides a plug-in for Jenkins, Eclipse, and Appium.
#4) Sauce Labs:
It supports both Android & iOS devices and emulators & simulators. It supports Android 2.2.2 till 7.1.1 and iOS 7.1.2 till 10.0.
It is also a paid tool and automation testing can be done for both Native and Hybrid apps.
It is paid tool and can be used for Android, iOS, Blackberry phones, and tablets too.
It has a plug-in available for Python, Selenium Web driver, Perl, and RFT frameworks. Supported OS includes Android 2.1 – Android 7 (including), iOS 7 – iOS 10.2 (Including), and Windows Phone 8.
I’m sure that by now you would have gained immense knowledge about what Cloud mobile application testing is and the top Mobile Cloud Testing Service Providers.
Selecting a testing tool for your mobile app depends on the budget and the objective of the app. It depends on the user segmentation and the market to which the application will cater to.
Hence if there’s no requirement specified by your product owner, you as a QA should be very clear about how your app will benefit from cloud testing.
The cloud testing tools are not cheaper, hence you need to prepare a strong case if you want to opt for the same. Cloud testing has its own pros and cons and most importantly the cost is evident. It shouldn’t seem that not even 60% of your goals were achieved using cloud testing.
In our next article, we will discuss more on Responsive Test.