Take your testing to the Cloud

There are lots of reasons why companies choose to make the transition to the Cloud, but it’s safe to say that improving the speed and accuracy of your testing is rarely one of them. In fact, the benefits to your testing after moving to the Cloud often go unrealised. This is not because getting to those benefits is hard (it isn’t), or because there are clear reasons for keeping testing on-premise (we would argue that in most circumstances there really aren’t any), but simply because the focus tends to be elsewhere.

In this piece we are going to play out some of the key benefits and also address some of the misconceptions there are around potential barriers.

The benefits:

  1. It’s easy to set up and provision testing environments

Traditionally, getting an environment up and running is a process that takes days, potentially weeks. This means it’s intensive, both in terms of time and resource (which equals money). It also means that in some instances, test environments may not be set up because the cost is seen as too high. Take for example testing your code changes once you have raised a pull request. Creating a test environment for your pull request can have significant benefits when it comes to speeding up delivery and feedback. On-premise it would be highly unlikely to spend the time setting up test environments for pull requests. Testing would be done locally, with issues often missed creating further problems down the line.

In the Cloud, Infrastructure as Code tools like CloudFormation or Terraform can go up in a matter of minutes. You can create a new test environment as you need it and then simply take it down when you are done.

  1. Consistency

By using tools like Docker, you can get a far greater level of consistency between environments. This means you can be more confident you are testing like for like. On-premise there will almost always be small, but potentially important, discrepancies between environments.

  1. Data creation and manipulation

Poor quality data is always an issue when it comes to testing. The worse the data, the fewer issues you will be able to uncover. It is also hard to know whether the test data you have is any good until the testing is underway – and by then it’s too late. Tools like Docker can again be very useful, because the quality of data will be far more consistent.

  1. Scaling

In the on-premise environment, running tests in parallel rather than sequentially would be almost impossible. This is where Cloud comes in.

Because creating and provisioning environments is so much easier in the Cloud, parallel testing is much more doable. You can run the same test across multiple scenarios or run multiple test cases at the same time. Running tests in parallel not only saves a considerable amount of time, it is also far easier to validate different permutations such as browser types and versions.

  1. Faster time to market with reduced risk

Not only does the Cloud enable you to move through test cycles faster, it also enables you to do it with less risk. Tools like Docker and Heroku enable you to release in much smaller chunks which means it is far easier, and faster, to deal with points of failure and then move forward. The fully automated release process also means less manual interference, which in itself reduces risk further.

The barriers:

While the benefits of testing in the Cloud are clear, there are still some concerns / perceived barriers that might hold people back:

  1. Cost

The cost of Cloud is something that is at the top of a lot of people’s minds. Some of those that have already made the transition are finding the cost is substantially higher than they imagined. A lot of this is down to how it is managed, and the same applies to the testing piece. Because environments can be spun up so quickly, there is a danger that they will just proliferate, and numbers will get out of hand. It is important that there is clear governance and process in place to ensure environments are taken down when they are no longer needed.

  1. Security

A few years ago, security was considered the biggest barrier to moving to the Cloud full stop. These days, most will admit that security is often better in the Cloud then on-premise, but that is not to say that security problems don’t exist. In essence, the same rules apply in both environments. Do a good job and follow the right processes and security shouldn’t be an issue. One clear benefit, however, is that in the Cloud environment, it is much easier to test just how good the security is.

  1. Disaster recovery

There have been a number of high-profile instances of Google and Amazon outages affecting customers. The most high-profile causing data to be rerouted to China – which is tricky as Google doesn’t do business there!

The fact is, although these are high profile, they are usually pretty low impact and actually far less likely than on-premise. However, in the case of security, one major benefit of the Cloud testing environment is that it gives you the ability to test your disaster recovery far more effectively.

It is pretty clear that for almost everyone, moving their testing into the Cloud will deliver significant benefits. Although it might not be the thing that is driving Cloud adoption, it is certainly a substantial value add.

To find out about how you can successfully move your testing to the Cloud, talk a member of the ECS Digital teamto discuss how you can start reaping the benefits mentioned above.

_______________

Image credit

Kouros AliabadiTake your testing to the Cloud