Ed Keyes, one of Google’s test engineers, once said that “production monitoring, sufficiently advanced, is indistinguishable from testing.” Prose aside, he is saying that if one were able to find, fix and deploy a fix to an issue before a customer noticed anything happened, there would be no way to tell whether the customer was experiencing a test environment or a live one. Such is the sheer power of what software testing tools can do with cloud computing to power them.
However, before we can reach that proverbial brass ring, we must wrestle with several real-world dilemmas that challenge and stump us. Cloud testing is a fairly new concept, but it’s becoming increasingly important to large-scale operations. It’s making business more efficient, customers happier, and products perform in ways never before possible.
Cloud Testing Defined
Cloud testing is testing that takes place in the cloud. It’s an overly simplified way of saying that it’s mass testing of a series of interconnected devices. There is no “cloud.” The cloud is actually a network of servers that store and transfer information. It’s no different than offsite backup, but it does have a trendy name. The reason we refer to it as “cloud” is because it encompasses many applications. Cloud storage, for example, is very different from the cloud applications that Adobe is beginning to provide monthly access to.
Cloud testing, then, is a means to an end. It allows engineers to review what’s happening in real-time, and ideally to deploy changes that alter the environment. This could be something like adding a new feature, which would impact the rest of a website or application through integration.
Basic Problems Explained
Cloud testing solves the very complicated problem of networking groups of people together. In video games, the cloud is used to monitor server uptime and make sure players can log in. In enterprise networking, cloud applications can manage anything from multiple access points, security systems, personnel records, customer service information, sales data and more. All of this information has to transfer seamlessly from one point to another, or else it disrupts the user’s experience.
Working with the cloud also requires a host of changes to network policy, and often personnel training. Users would need to be trained on application-specific protocol, and receive additional or new security measures. Each of these issues is common, and easy to solve on a one-to-one basis. Cloud testing is necessary when you’re dealing with hundreds or thousands of users all clamoring to use these features at once.
Cloud testing would be able to virtualize massive amounts of traffic coming into a server, or attempt to replicate a particular crash. It would automate low level maintenance tasks, creating easy-to-understand test cases that measure performance. It can also use that test data to optimize the performance of the application as a whole, something that would take engineers untold amounts of time to do themselves.
Advantages to Cloud Testing
One day, we will be able to test while in production. In some ways, websites already do this. If you’ve ever heard of an A/B test done on Web pages, you’re familiar with this practice at work. Cloud testing can take that A/B testing approach, apply it to large data sets and make changes based on those findings. It can completely operate the duties of data collection and processing. It also allows engineers and IT professionals greater freedom in configurations. Automated tests of hardware and software can uncover a better approach to managing a company network, or even a user’s terminal, automatically personalizing the experience according to the user’s needs.
IT professionals need not be worried about cloud testing. It is a useful application of computational power that will free desktop support up to do more important work to help the business scale. Cloud computing, and cloud testing, will bolster the strength of the IT department without the need for complicated infrastructure on-site.