With a growing number of applications being developed using cloud environments, coming up with a good Cloud testing strategy is becoming more and more important.
Cloud testing refers to testing resources and services that are available ‘on-demand’ in a Cloud environment. This includes the possibility of running the whole testing process within the Cloud. A Cloud environment offers different services and tools to create the necessary infrastructure at a lower cost since you pay only for the resources you use.
When it comes to the Cloud, just like local or ‘on-premise’ environments, it is essential to make sure the service or product complies with all requirements, functional as well as non-functional.
Even if, at a functional level, an application is subjected to the same tests that are both ‘on-premise’ and ‘Cloud-based’, functional testing must consider all the factors in which a local environment differs from a cloud environment.
The following are aspects that must be considered when testing ‘Cloud-based’ applications:
Security: due to the fact that on the Cloud data is available at any time, it’s crucial to make sure sensitive information cannot be accessed by users without permission, and that the privacy of all users remains intact. For this reason, we recommend the following basic tests:
- Cloud-Based System Configuration Tests to validate secure access
- Quick Attacks with Penetration Testing
- SQL Injection, URL Guessing, Cross-Site Scripting
Scalability and Elasticity: tests are performed to make sure the service has the capacity to expand or decrease physical characteristics. Load testing is a basic test that can be executed to validate if resources can be increased or decreased depending on the load.
Recovery in case of disaster: one of the advantages the Cloud offers is round-the-clock service. It’s important to perform tests that provide metrics in relation to how fast an error is detected, how fast services can recover, and how the system behaves during and after any kind of crisis situation, such as lack of connectivity, breakdowns due to extreme loads, system failures, among others.
Performance: tests applied to ‘on-premises’ applications are the same for ‘Cloud-based’ applications. The only differing factor is the focus.
The following are some of the most important performance tests:
- Load testing - used to validate the number of instances required so that the app’s performance is not affected during times of high user influx.
- Tests that determine the user limit per instance, depending on its size.
- Monitor testing - used to monitor user experience during high load periods and to gather data such as response times, transaction time, and effective transfer rates.
Be it local or ‘Cloud-based’ environments, applications and services must count on a good testing strategy that adapts to different characteristics and situations that may come up in each environment.
The Cloud has revolutionized the software industry with the vast amount of services and business possibilities it offers. However, this also implies risks and situations that were not experienced previously with ‘on-premise’ environments, and which now must be considered as part of the quality assurance process.