As a tester, the word “cloud” used to scare me. It meant that I had to step into a completely new world, one that I was not accustomed to. But I have realised that testing in the cloud is not as daunting as I once thought, and I know I am not alone. I have put together the ultimate guide to cloud testing to share my experience with you.
What is cloud testing?
Over the last year, I have found that an increasing number of organisations are looking to extend their application testing to the cloud. Cloud testing involves using cloud infrastructure to test the security, performance and quality of applications and software before they are released to the public. The testing focuses on the core components of cloud computing including:
- Application testing: The testing of functions, end-to-end business workflows, data security and browser compatibility.
- Network testing: The testing of various network bandwidths, protocols and the successful transfer of data through networks.
- Infrastructure testing: The testing of disaster recovery capabilities, backups, secure connection and storage policies. This must be validated for regulatory compliances.
Testing is important in cloud environments because problems with quality are difficult to fix once the cloud is fully integrated with the corporate system. Computers used in a cloud environment will never be 100 percent reliable until all the environments have been tested. Without proper testing, you are vulnerable to viruses and other glitches.
Cloud testing brings many benefits to enterprises through enabling cloud based resources to be tested by multiple teams around the clock. Organisations also get access to Quality Assurance teams in different time zones and geographic regions, allowing for on demand testing from anywhere, at any time. How awesome is that?
Here at Buttonwood, we have constructed a quality assurance “staging” area where all the testing, configurations and setups are finalized prior to going live. We test during this phase until we are satisfied that we have the best cloud solution to suit our customers.
In my experience, I have found that cloud testing can be segmented into four main categories. The first is testing the whole cloud and all its features. The second is testing individual features and applications internally within the cloud. The third is testing across different types of cloud including private, public and hybrid environments. And the fourth is functionality testing based on application requirements.
Migrating Application Testing to the Cloud
It is important to remember that cloud enables on demand provisioning of test infrastructures to maximise the utilisation of the asset. Feasibility studies are required to find the scenarios in which moving testing to the cloud can benefit the organisations to ensure a successful migration to application testing.
- Define your business goals: It is important to understand the reasons as to why you are testing in the cloud. To gain more from your cloud investment you must define business and technical objectives, and understand why you want to move testing projects to the cloud.
- Formulate your migration strategy: Your migration strategy should clearly answer what you want to achieve through application testing in the cloud. Some things you may want to consider include potential cost savings, ease of access to infrastructure, and shorter cycle times.
- Plan your infrastructure: The third step of the migration process involves defining the infrastructure requirements need to build a test environment and ensuring you have all the right tools for the trade. There are differences between testing in a public or private cloud, so make sure you take those into consideration as well.
- Execute your first test: This is my favourite part! All your applications should be tested according to the defined strategy. Your cost benefits will be achieved once the optimal utilisation of the test infrastructure has been defined.
- Monitor and analyse your test results: To understand and evaluate capacity and performance issues when application testing to the cloud, you must be able to monitor and analyse test results. With cloud testing you are given the opportunity to analyse your results using data science and big data technologies.
Why test in the cloud?
I know what you’re thinking. Why should you move all your application testing into the cloud if you don’t have to?
I see the advantage of being able to use a cloud environment for testing in my everyday activities. A concrete use case is that of sitting up back-end services running on a certain number of virtual machines can be easily created, recreated and destroyed in a very short time and without affecting other activity. This testing back-end represents a convenient and reliable point of presence for the applications that need them, while ensuring that the flexibility of the cloud reduces the efforts needed for re-organising or radically changing the testing environment.
The scalability of testing in the cloud also ensures that a service or the applications using it, can be easily moved from the testing to the pre-production phase.
The difference between “Testing a Cloud “and “Cloud Testing”
There is a very thin line between Testing a Cloud and Cloud Testing. This comparison has led to a lot of internal discussion among the Buttonwood Team. Frankly, I find this jargon tend to confuse people. It can be difficult to get a straight forward answer, but I would like to share my take on the difference between them.
When you refer to Testing a Cloud, you basically intend to test the infrastructure, components or applications that are residing within the cloud. This testing should be regularly performed for any application or infrastructure that is hosted in the cloud.
On the other hand, Cloud Testing can be viewed as a “Testing as a Service” model whereby the testing activities are generally done by external testing service providers. Some testing may also be done in-house by employees that have been trained by testing service providers.
I have been a software tester for many years now, but I still have so much to learn, especially in cloud testing. It is a constantly evolving industry, but I am always ready for a new challenge. I truly love testing in cloud environments, I get to learn something new every day. I hope that you have learned something from my experience in testing a cloud. I would love to hear about your experiences in the comment section.