Testers, who are normally derided as the poor cousins in IT, have an opportunity in cloud computing to assert their value to the development and operation of solutions. Any cloud computing project that implements the standard non-cloud test strategy (that may be working well for traditional systems) is in for a big surprise as they approach the go live date and thing are falling to pieces.
Drastic Changes to Testing Process
Some traditional steps in the QA process need serious rethinking or throwing away altogether. A well architected cloud computing solution should have no need for load testing as we know it. If unlimited computing power is available on demand, there is no hardware configuration to do tests against. But the assumptions about how the solution handles load need to be tested and the accurate testing of how much load can be handled per compute instance. This changes testing to a role away from failure testing and more towards the establishment of metrics for non functional requirements and finding ways to test against those.
Back to Basics
Because cloud computing encourages developers to architect systems differently, many of the things that we took for granted no longer work the same way and testers need to be more rigorous in some areas than normal. For example, testing the result of a multi-node query across an eventually consistent data store needs to be done, whereas the equivalent query on an enterprise RDBMS probably wouldn’t be tested at all. It sounds scary, but developers jumping into cloud computing may make mistakes with simple things such as generating sequential and unique invoice numbers – when did you last test that properly?
Testers normally get their hands on servers as configured for production very late in the project, if at all. Because cloud computing has minimal procurement issues and uses pre-packaged commodity servers, testing on a ‘production’ platform can be done very early on in the projects – from the first day if there is something useful to test. This turns testing upside down, where non functional tests, such as load tests, security, latency and availability can be tested before the solution can be considered functionally mature. Smart project managers and QA specialists will use this to their advantage in an attempt to de-risk the project early in the development lifecycle.
Testers also need to think about new quality criteria that may be added by cloud computing, many of which are not considered by developers. Aspects such as the impact of latency, geographic distribution, synchronisation of data and intentional service degradation are aspects that we tend to gloss over when testing traditional systems.
The role of testing and QA in cloud computing cannot be underemphasised. With so much risk and exposure to new technology, business processes and service provider models, the need to have someone on the team who knows what to look for and can give their stamp of approval is imperative to the success of a cloud computing project.
Disclaimer: This is not a complete list and after all, it may only work on my machine
The ‘Who Should Know About Cloud Computing’ Series
This post is part of a series of posts for non technical roles, which you can follow from the links below