Computing in the Clouds
Software Testing and Cloud Computing Without a doubt, cloud computing is on the rise, with many claiming it’s the future of the IT industry.
Software Testing and Cloud Computing
Without a doubt, cloud computing is on the rise, with many claiming it’s the future of the IT industry. As the most recent in a long line of tech revolutions, it has the potential to completely change the tech industry forever. Giants like Amazon and Google have already adopted the cloud and are paving the way for such industries as telecommunication, security, and gaming, which have also begun dabbling in this new technology. The testing industry is not far behind; not only does cloud testing offer new opportunities for load and compatibility testing, but there are also many challenges which are being faced by the teams involved with testing the hardware and software of cloud computing systems.
As said, testers are not the first ones to take advantage of this new technology. Amazon’s Elastic Compute Cloud (EC2) is “designed to make web-scale computing easier for developers” and boasts clientele like Instagram, Lionsgate, and NASDAQ. Rackspace partnered with NASA to develop their open-source cloud platform and is currently in use by over 200,000 companies. The App Engine by Google uses familiar technologies to allow developers to build and host their own applications on Google’s infrastructure, with testimonials from companies like Khan Academy and Pulse. Big names in cloud computing also include others, such as (of course) Microsoft, Apple, and Verizon.
The testing industry, as stated above, has not been far behind the tech powerhouses in developing usable applications for cloud computing. Cloud testing services provide an answer to concerns like high costs per test, large number of test cases, and little to no reuse value for completed tests by developing methods which lead to cost-effective solutions. This is achieved through effective storage solutions, infrastructure with scalability, and availability and flexibility of distributed testing environments. Depending on the enterprise, cloud testing can often prove more efficient than traditional testing due to lower costs and potential for less expenditure on hardware, software, and maintenance. Performance, load, and stress testing are areas in which cloud technology has proven particularly effective, though it is also used for compatibility and functionality testing, among other areas.
Depending on the enterprise, cloud testing can often prove more efficient than traditional testing due to lower costs and potential for less expenditure on hardware, software, and maintenance.
One of the main reasons that cloud testing is often more cost-efficient is because of the difference between the pay structure it adopts and that of traditional testing. In a traditional scenario, the client pays by the user and by how many days they want the tests to run, which can end up getting expensive. On the flip side, in cloud testing, the number of users doesn’t matter and the pricing runs by hours instead of days. It’s easier for the client to control exactly how much they’re spending, and it also costs the same for, say, six users to test for ten minutes as sixty users who test for one minute each; either way, the client is only paying for an hour. This is probably one of the reasons cloud testing has been adopted by many smaller companies. Barring this, another aspect of the cost is that cloud testing requires less time to set up, and everyone knows that time is money.
Though companies like SOASTA have been able to provide lucrative, high-quality cloud testing services, particularly for load testing, there is some contention as to whether or not it is actually a better option than traditional load testing methods. For example, almost all cloud platforms (besides perhaps private clouds) are accessed through the Internet, which means that in order to access their information, testers must go through the same security layers that regular Internet users do, which can increase lag time. Some companies find this valuable, because their own users would be going through the same process; therefore, this ensures that the testers are having the same experience as customers of the app, etc. With that said, it can sometimes be incredibly detrimental to those applications which operate with other computers or devices within the same network, such as medical devices in use by many hospitals. For smaller companies, another concern can be testing a future version of a website or app while there is still a live version up and running; while the testers are simulating realistic amounts of traffic to the servers, the live website is tracking the same amount of traffic in the real world. The drag that this creates in the infrastructure between the intranet and internet can lead to multiple problems, starting with high latency and going as far as a denial-of-service.
The services which cloud computing offers the tech world in general and testing specifically are certainly important; however, it also provides great challenges for those whose job it is to test it. The most profound of these is service availability. When an organization adopts cloud services rather than local installations, it is paramount that these services and the data they need can be accessed whenever they need them without delay. Secondary to that is service assurance, knowing that your provider has the infrastructure in place to provide all of the services needed at the highest quality possible. Finally, as Microsoft’s TechNet blog states, your cloud provider will need to address the following layers from a testing perspective:
- “The Wide Area Network (WAN) providing data communication services between your company and the cloud services provider, which is fundamental to service assurance and testing end-to-end service availability.
- The datacenter infrastructure—the servers and the network connecting those servers—service availability and uptime, as well as efficient use of resources to ensure service efficiency.
- The monitoring infrastructure in the datacenter—the basis for service assurance, which also needs to operate efficiently.
- The individual servers and monitoring appliances based on servers that must also follow efficiency and availability principles to assure overall service efficiency and service availability.” 
It is undeniable that cloud computing is the one of the newest trends in technology, and certainly seems to be the biggest and brightest star on the horizon as far as growth potential goes. With such a wealth of platforms available and so many different avenues to pursue within it, the cloud could easily become the future of the IT industry and certainly promises to be huge in the world of software testing, both from the challenges it presents and the opportunities it provides.