Cloud testing: the right way to do it | David Tzemach
Updated: Jan 25, 2022
In this article, I will review some essential insights on cloud computing. To achieve the most from this article, we need to understand the cloud-computing concept and how the cloud is different from any other infrastructure.
THE BASICS OF CLOUD COMPUTING
Cloud computing results from one of the most significant and essential revolutions we've witnessed in the software industry, the technology known as virtualization that has changed how organizations worldwide manage their computing resources.
This advanced technology creates an entirely new methodology of sharing computer resources across multiple systems to reduce costs and deployment time, increase scalability, and facilitate the IT department in managing its infrastructure.
Virtualization technology became even more critical once it evolved in the new form of cloud computing. Cloud computing is an internet-based platform that uses virtualization technology and various computing services like hardware, software, and other computer-related services that provide a total solution of resources based on demand across the internet.
To summarize it, let us review the main points that you should keep in mind what is cloud computing:
Cloud computing is a general term for the delivery of software/services over the internet
Enables companies/people to consume on-demand resources, such as a virtual machine, storage, and applications.
Cloud allows access to services without the user's technical knowledge or control of supporting infrastructure.
The cloud structure is based on three types of delivery models (aka components) that provide the "heir tests cover both aspects of functional and non-functional testing. Let us review some of the more common test types that are part of a cloud testing project:
Disaster recovery (DR) testing – The cloud as a service must be available to customers at all times; therefore, a replicated site must be available in case of critical failure. While executing DR tests, the team must ensure that the app can recover in case of a massive failure (restore to the last available point, no loss of data, minimum downtime, etc.).
Availability testing – This type of test is usually owned by the cloud vendor that ensures that the cloud is available to customers at all times without any downtime.
Capacity testing – This verifies that current and future hardware supports expected usage as determined by the specification of the product (such as adding or removing resources to or from a customer).
Multi-tenancy testing – This type of testing is essential in any cloud-testing strategy. During these tests, the cloud services are tested by multiple users from different tenants (each service can serve numerous customers). Testing must be performed to guarantee no security incidents such as access (control or data leaks) and no performance degradation once multiple customers access the same service.
Functional testing - This tests the app delivers the required functionality.
Reliability testing – To ensure that the app can perform failure-free for a specific period in a particular environment.
Security testing – As discussed earlier, the cloud environment allows multiple customers to use the same services. As a result, we must ensure that there is no unauthorized access to the data within the SSP application no privacy leaks. That customer data integrity is kept under strict security gates.
Common test Guidelines:
Validate that data integrity is not compromised by unauthorized access
Validate that only the authorized customer can access the data
Validate that data migration is made through secured (encrypted) channels
Validate that all user data is removed in case of dropping the service
Validate that only the relevant ports are opened
Validate that there is a clear separation between tenants
Scalability testing – Cloud services are relevant to both small and large organizations; as a result, there must be tests to ensure that the business can scale up or down its resources based on the customer's need.
Load and stress testing – To identify the system's stability beyond its operational capacity to see how it reacts to different loads.
Live upgrade testing – To ensure that we can deploy new versions on the cloud without affecting customers' user experience.
Performance testing – To ensure that the SaaS application can manage different traffic loads that depend on the number of customer requests. The main factors that we want to validate in this type of tests are network latency, the application's response time, and workload balancing (NLB) in case of massive use.
Common test guidelines:
Response times should not be affected due to the actions of other tenants
Failures in one tenant should not affect another tenant performance
The scaling process should not cause any degradation in performance factors