Those were the 1990s, the time of internet penetration when people were hesitant to give DOB and gender in their mail account profiles. We have come a long way. With social media in picture, a lot of private information is sensibly posted for public views by the millennials in the world of increasingly insecure technology. Software is getting into a similar transformation through cloud computing. Companies are no more looking into in house capabilities for running IT shop in a tighter security mindset. Serious thinking to leverage external computing power beyond their data centre walls is going on in every IT Strategy discussion. Cloud computing is evolving into a normal. Let us look at what it means to software testing world in brief.
Cloud testing is the broad word used across the testing community and the exact definition of what it is, is notably absent or least explained. While the definition of Cloud computing itself is of much debate and doesn't seem to add up, let us look at how a test manager need to adapt himself into the new realm. Utilising a public or private infrastructure in hosting a software, run a platform or the environment as an on demand / pay as you go basis is Cloud computing. When it comes to Cloud Testing, it would primarily mean any of the below and more.
Testing a product that is built as SaaS (Software as a Service)
Testing a product that is developed and released in a PaaS (Platform as a Service)
Testing a product to be hosted in IaaS (Infrastructure as a Service)
Testing an in house product in cloud hosted test environments (non production IaaS)
Migration of an in house product into XaaS (X implies a Software, Platform or Infrastructure)
Migration of software/platform/Infrastructure from one Cloud service provider to another
Integration of an in house software into cloud hosted business services
Testing Cloud Management products
Perhaps nothing much changes for the tester, as the requirements, design and environment usage will consider and factor in cloud specifics any ways. System testing could be a straightforward way to deal with, like how a functional tester does not bother if the code is in Java or .Net as long as the software speaks for the business requirements. That said, there are some additional dimensions the testing community has to think through.
Performance testing - while the infrastructure is scalable in Cloud, but note that it's only on demand or what has been subscribed for. The service provider may only allocate what is signed for. The real advantage could not necessarily the scalability but the ability to scale up in short time. As a testing team, challenging the NFRs and testing against the same to rightly size the capacity with Cloud service provider along with anticipated capacity to invoke on demand is required.
Security and compliance Testing - Testing team should have a good hold on the security related NFRs. With access to the Cloud service provider contract clauses, it is essential to inspect the same for NFRs. Can the production data reside in another country where the service provider data centre is? Who (from Cloud service provider) has access to the production sensitive data? Is it compliant by local law?
Operational Acceptance Testing - How the requirements are addressing the availability, business continuity and maintainability elements of the software in Cloud?
Regression testing - how the upgrade and other software maintenance is going to happen post live? How the Cloud service provider is going to maintain / upgrade their capacities?
Test Management - How the efficient deployment schedules and high reliability of test environments are going to positively impact the test execution? While the test environment and release management gets optimised by reducing capex, shortening time to market and brings flexibility it may not directly influence the testing and if so, senior management has to be rightly managed for expectations.
Good news is that cloud computing is not as disruptive to testing community as it is for Dev or Infrastructure teams. The test philosophy remains the same. While it's easy for new companies to directly jump into cloud solutions, it's bleak enough for existing companies to decide and migrate/integrate their legacy systems into cloud. However, they may be forced to do so with more and more enterprise software getting into IT strategy and the providers offer lucrative on demand cloud solutions, at least the IT industry ostensibly appears to point to this direction.