Mobile Apps Testing in Cloud Environment
- September 16, 2014
What is Cloud Environment Testing?
Cloud computing offers a web based mobile environment on real devices, where testers can deploy, automate and test the mobile application. This approach helps reduce the cost of project under development.
The mobile devices can be accessed through web interface i-e browser.
GENERAL CLOUD BASED TYPES
Shared/public clouds can be shared publicly. In public/shared clouds customer don’t know where the infrastructure is placed, and they have no control on them.
e.g. if customer testing a mobile application on the public cloud environment then set of devices are shared remotely between multiple customers (with limited availability and security protection). Users can start using the device remotely when a session slot gets free.
The problem with shared/Public Cloud testing is that since they are set up for mass usage, user has to wait for their turn, which could take a while if there are limited devices available. Irrespective of this disadvantage, users can access a wide range of devices at low cost, which can reduce testing cost greatly.
Private cloud infrastructure is dedicated to a particular organization; the private cloud owner doesn’t share resources with any other organization. Private clouds are more expensive and secure then the public clouds. It’s managed and controlled by the organization itself.
Hybrid cloud is the combination of both private and public cloud.
For example if a user wants to use SaaS Application but he is also concerned about security risks then Hybrid cloud computing is better.
Drawback with Hybrid cloud is that user himself has to keep track of multiple cloud security platforms and ensure that all aspects of your business can communicate with each other.
GENERAL CLOUD BASED SERVICES
Cloud based services are the services which are provided at user’s demand via the internet from a ‘Cloud’ server. Different types of cloud based services are mentioned below.
SaaS (Software As a Service)
In SaaS, users allow running their program in a cloud and all things are managed by cloud vendors. This infrastructure lies in at top layer of cloud computing stack. SaaS is helpful when a large number of users want to access your software and make an account on it. With SaaS you can usually add new users easily without paying extra fees. Examples of SaaS services are Gmail, Hotmail, online banking etc
SaaS is also helpful when your team needs a collaborative work environment and they want to access the software from a variety of devices and from multiple locations.
PaaS (Platform As a Service)
In PaaS, Cloud owner manages data and application and everything else is managed by cloud vendor. This infrastructure lies in the middle layer of cloud computing stack.
PaaS is useful if you want to test your application and you have limited resources such as devices and platforms. In PaaS, a scalable processing center is provided at your end and you have to use it as you need. (You only pay for what you use).
IaaS (Infrastructure As a Service)
In IaaS cloud owner manages his applications, data, and operating system. As the service providers manage your virtualization, servers, networking and storage. This infrastructure resides at the bottom of the cloud computing stack, so cloud owner can also manage the middle layer of the services which is PaaS.IaaS is used when your application needs extra space for processing. IaaS can be delivered via Public cloud, Private cloud or Hybrid cloud.
Examples of Cloud based Testing
Device Anywhere and Xamarin Test Cloud are examples of cloud based testing. I had an opportunity of using Device Anywhere which allows you to access popular mobile handsets over the internet for testing native or web-based mobile app that means that you don’t require any physical device for testing mobile applications.
Irrespective of these advantages I also faced some issues regarding ‘Device Anywhere’ tool that you do not have as much control on these devices. When you install app on Device Anywhere, the response time is too slow. Also the screens don’t zoom in according to testing needs.
Common problems are:
- Lock in (Another user using the same resources which you want and you have to wait for it)
- Internet connectivity issues.
So we have different types of cloud based computing services, and all these have their own drawbacks and advantages. It is up to the discretion of the testing team or organization to make a decision for using cloud based testing environment based on project characteristics and requirements.