In traditional on premises testing scenario’s, most of the small-medium business(SMB) or larger organization are much more focus on setting up infrastructure for testing followed by maintaining them for longer period It’s an overhead for them in putting lot of money on infrastructure. Cloud computing is the new age solution which helps organizations or Service Industries to focus on their core business rather than worrying about the setting up and maintenance of their IT infrastructure in advance which incur them a huge Capital Expenditure(Cap-Ex) . Resources or Services are available to be accessed from the cloud at any time, and from anywhere in the world via the internet. Cloud computing provide a hosting environment that is immediate scaling (in/Out), available on demand, flexible while helping Organization to plan, install, configure and validate complex test environments while improving the quality of testing in quick time. Cloud computing demands ubiquity, efficiency, security, and trustworthiness. Cloud computing is the trending topics in the IT industry as a model that provides computing resources on demand with reduced administration costs. There are still few challenges or concerns in the areas like security, privacy, availability, performance and integrity in the cloud. Its requires a dedicated planning and rigorous testing effort of any cloud offering to satisfy the business need of the end user up to great extent.
Benefits of cloud testing
Cloud testing helps business in like setting and maintains the environments, On-demand services, lower cost, elimination of capital expenditure in advance, resource pooling, and broader network access, rapid elasticity and most importantly reduction in cycle reduction time for different business offering in this dynamic and fast going services and IT industry.
Below are the some of the key benefits with regards to Testing in cloud
- Rapid provision of Test environment(s) - In case of traditional testing methodologies (on-premises/intranet), companies used to spend huge amount of money on setting up the dedicated infrastructure in advance. Due to the dynamic nature of the real world application in terms of Requirements and user in short period of time, it’s very difficult for companies to set up the infrastructure for testing use which mirrors the production environments. With the Help of Cloud, it’s Just a matter of seconds for the organization to turn up the testing environments/servers to fulfill project time lines. Business/users can simulate the test replica of production environment which helps testing team to validate the business scenarios and finding bugs at earliest.
- Reduced capital expense or Cheaper Cost in setting infrastructure –On average there are 30 to 50% of servers are dedicated to testing purpose in IT world. Most of them are underutilized as testing is a periodically activities and once the phase is over they remain idle for rest of the time. Because of the huge Investment up front on dedicated servers companies used to get very less Return on investment(ROI) Cloud will take care for setting up for the testing infrastructure as when needed by the organization and decommission all the set up /servers once the testing is done which helps companies to save their money. This helps companies to get the work done in a lower price as compared to earlier as there is no cost associated with them in setting up that entire infrastructure in advance.
- Rapid customization of hardware resources -As Companies are allowing cloud environment for their testing use due to the dynamic nature applications which are complex and distributed in the industry ,It’s easy for organization to simulate the production scenarios(which was a challenge in earlier Models as it requires huge amount of cost and resource’s associated ) to verify the Load , performance testing ,verifying the scenarios in different environment with multiple browser in different operating system (different combination of memory, CPU and hard disk capacity)and latest versions available in market.
- Support Green computing and Reducing Carbon foot Print-Green Computing is the study and practice of using computing resources efficiently. The global use of computing resources, both servers and desktops, continues to grow dramatically due to huge IT market and different industries. As most of the companies are adopting cloud strategy which provides infrastructure on demand basis, cloud solution enables companies to become more environmentally friendly.
- Effective use of Resources-As Companies are moving most of the frequently used services, Tools, applications, infrastructure, Testing, Development and support into the cloud, it will allow companies to use the resources (people, money, time) on the core competencies which helps them growing faster in terms of their Goal and enables them to earn more money. There is no need of setting environment in advance or keep maintaining it till next cycle. Cloud will take care of all business need as and when required .By using cloud server efficiency and utilization has been drastically improved through the even distribution of workload. Testing in the cloud leverages the existing cloud computing infrastructure provided by the vendor which helps in reducing the cost of computing to a great extent with increasing testing effectiveness in the process
Type of testing to be performed in cloud
Testing in cloud is different than out traditional on premise testing where enterprise has to set up, maintain and verify the scenarios from end to end prospective in all aspects. Below is some of the testing required to perform once application is moved to cloud premises.
- System integration testing (SIT) - Testing performed to verify that the cloud solution will work within the current infrastructure and environments, proving that the implementation of a cloud solution does not impact any existing systems.
- User acceptance Testing (UAT) -Testing is done to verify the current provided cloud solution from the vendor meets the business needs of the organization.
- Security Testing-Ensure that all sensitive and important information which are going to be stored in the cloud will be highly secure in nature. As privacy also a key area in cloud from the user point of view, it’s important to verify the privacy of the application users and associated information when maintained in cloud.
- Performance testing-Testing technique that measures the system performances in cloud. Verify the network latency and response time, Load balancing, peak request count by hosting subscription in different data center across the globe. Adding to these, traditional load and stress testing are required to validate business scenarios in the cloud model in terms of varying dynamic load and stress on the application.
- Disaster recovery testing-Verify the time it’s takes to recover from disaster in different scenario (system crashes under high load/volume of data, hardware failures, system failures, Network outrage, insufficient bandwidth) as per SLA. Also verify is there any data loss in this process and time takes to report failure.
- Availability testing-Cloud offering should be available 24*7 for the enterprise or end user. It’s the key responsibilities of the provider to maintain as per the SLA.
- Scalability testing-Ensure cloud provider is offering scale in/out functionality as per the demand from the user/organization.
- Multi tenancy Testing-The concept of multi tenancy is to provide solution/offering from a single instance to multiple tenants(user/clients) .Cloud offering should be validated when more than one client is using the same instance in terms of security and Data
- Interoperability Testing-verify moving application from one cloud to alternate cloud provider should have the flexibility to run successfully. Basically there should not be any issue if business/user is migrating from one infrastructure to another one
- Accessibility Testing -Verify user groups across different geographic location are accessible to the cloud at any point of time without any delay.
- Automation testing- Ensure that the automation suite can be created and executed with minimal changes in the cloud.
There are three different service/delivery models (Saas,PaaS,IaaS)which help organization in adopting the right one as per their business/testing requirement. There are three deployment model available i.e. public cloud, private cloud, and hybrid cloud.
Organization will choose the right set of delivery and deployment model as per their business needs for testing.
Key considerations before moving to cloud testing
The important thing before moving the application into the cloud is to choose right vendor which provides a wide range of services and as per the business needs of the organization with right set of SLA (service level Agreement). First of all organizations must should evaluate the risk, conduct some POC to fully explore the benefits of moving their existing or new application for cloud testing. Also they need proper evaluation of testing tools, hardware, software, server, storage, bandwidth, time frame etc. before building test bed. As most of the legacy applications are tightly coupled and complexity is too high among the modules, there should be a thorough discussion among the team before taking a strategic move to cloud (What is the cost, time factor and resource usage involved applications are moved to cloud?) If the application is a HLB, mission critical Application it’s required to evaluate all the parameter starting from Vendor capability, internal IT/Industry regulation, compliance before migrating it. Skill sets of tester are much required before start testing on cloud. Learning and awareness of cloud for all the team members by attending seminars, some of the best precise in cloud testing, webinar, workshops are good source to get required knowledge. It’s also required to monitor the test results from time to time for performances and operational cost of application for the cloud usage.
Challenges in testing in cloud
Security in public cloud is the top most concern for the Business and end user and encryption techniques are still considered insufficient. There are no industry standard to integrate public cloud resources with the in premises data center resources. Public cloud vendor is having their own standard architecture, different pricing chart and not flexible operating model which results difficulties in interoperability. Complexity of the application makes difficult for the organization to evaluate the testing effort and strategies. Cloud vendor should provide transparent pricing model to the customers, enterprises for better cost estimation, capacity planning and strategic upfront. Performance is another area of concern in private cloud. As the application is in private cloud, it’s shared by many users simultaneously which results latency issue.
According to Leading Analyst such as Gartner, Most of the companies will adopt cloud solution in place for their application in the next 5 years. Moving testing in to cloud help organization to get the latest tools, much more security, on demand resources, not worrying about managing infrastructure, licensing at a very low cost. Pushing testing into cloud is a win-win situation and gain significant changes to organization in so many ways. So Organization should take steps in changing the testing strategies and procedures for the same. For a better cloud testing experience, test team should adopt a robust strategy which caters to their business needs. Cloud computing is growing at a rapid rate in the global industry because of its scalability, availability, robustness and the lower cost for service that attracts small medium business companies to a great extent. Hybrid cloud (mix of both public and private clouds) can be deployed together to leverage the best of both cloud computing which helps organization keep secured data in the private cloud and other data’s in public cloud. Third party monitoring services helps customer are getting the best service in the industry once they use cloud environment for their applications.