This document discusses the emergence of cloud computing and its impact on software testing. It provides background on related topics like grid computing, virtualization, and cloud infrastructure testing. The document also notes that based on a survey, around 50% of organizations use cloud computing experimentally or for prototyping, while nearly 30% use it for non-critical applications and about 22% for business critical applications. In summary, it explores the history of cloud computing and how the rise of cloud has changed the traditional practices of software testing.
11. Virtualization enables the Pooling of various Server Resources to mask the physical nature and boundaries of those resources from resource users and administrators.
The term "cloud" is used as a metaphor for the Internet, based on the cloud drawing used in the past to represent the telephone network,[Cloud computing is location-independent computing, whereby shared servers provide resources, software, and data to computers and other devices on demand, as with the electricity gridWhen we talk about the term "Cloud Computing", it is very closely related to two terms- one isGrid computing and the second is Utility computing. While i will talk about Utility Computing little later, lets discuss briefly about Grid Computing.The term grid computing originated in the early 1990s as a metaphor for making computer power as easy to access as an electric power grid. Grid Computing hashuge parallels with the Edison's Electric plant. http://en.wikipedia.org/wiki/Cloud_computing
I would like to further leap back to History probably for the last time in this sessionImage Source: http://blog.digitalcontentproducer.com/briefingroom/wp-content/uploads/2008/04/history-id.jpg
Though I wont have time to delve into different Technological aspects of the Cloud, I would still spend a few seconds explaining a Technology that is helping create a great deal of difference to current and future of Cloud Computing.Image Source: http://farm1.static.flickr.com/200/503238148_90185d988f.jpg
Courtesy: The Topic- Cloud Based Testing for Real World Performance at a part of QAI STC Conference in 2010 byCharanjit Singh (Accenture Technology Solutions, Minneapolis, US)
Suppose you are a Vendor who has setup a Cloud and are offering your Services to Organizations for carrying out the Software Testing specific services. Testing a Cloud would mean that performing the different types of testing around the Infrastructure that would ensure that the Cloud is doing what it is supposed to do i.e. remain available on demand. Cloud Computing is a Paramount Business model for Software Testing, only after the usual concerns are dealt with by conducting the specific types of testing-First of which is Availability Testing. The Cloud Service by default is expected to be available all the time. If the customers signing up for Cloud Services aren't convinced about its Availability through thick and thin, they would obviously not be interested in the Services. Depending upon the Architecture, this testing would ensure that there are no Software or Hardware specific breakages that can happen during the varying usage by the Customer.Cloud offerings are meant to be Elastic, what it means is that the Customer using the Cloud for Software Testing should be able to increase or decrease the Usage of Cloud resources depending upon the need. Suppose for a 5 months test cycle, a Customer wants to do Load testing only for 2 months, he would thus need to be using the increased use of Infrastructure only during these 2 months and rest he should be able to reduce the work load. Customer should be able to provision or de-provision the capacity depending on the need and without impact on the Performance of existing Applications being run.There should be absolutely no Unauthorized access in the Cloud and the data Integrity should be maintained. I will discuss about this a little later in my presentation.Agreed that High Availability is one of the Requirements of the Cloud but there are practical constraints in it being 100% possible. So even when it breaks down, the disaster recovery should be quick. This form of Disaster recovery testing usually deals with replicating many Disaster specific scenarios and ensuring that recovery is quick without any data loss.As driven by its Business model A specific Cloud offering can be used at the same time by different customers, and this is usually referred to as Multi-Tenancy i.e. similar to one building having multiple tenants. Like in this example, different houses in the building are separated physically by walls and ceilings and each house receives its own supply of essentials, Multi-tenancy testing of Cloud offering ensures that different customers operates in their own dedicated spaces and they don not interfere with each other.
This provide one more view of how leveraging the Cloud Environment can assist Software Testing. Traditionally, the organizations tend to have a different setups and hardware for different phases of Software Development. Probably more than Hardware, the setups need to be updated with the growing needs. E.g. for an Application under test that supports heterogeneous platforms say different flavors of Windows and different flavors of Linux etc. the need would be to quickly have the test setup up and running. Again, Traditionally, each test engineer is supposed to own a machine in which he or she conducts the tests. If we consider the different phases of Development, the Traditional model has some disadvantages-There is usually significant cost associated with Setup time. E.g. if a Test Engineer has to setup different flavors of windows, Linux, the traditional way of setup takes time. Provisioning and De-Provisioning time. Testing is literally stalled for days or weeks even after the hardware becomes accessible waiting for servers to be physically shipped and to be configured.Tearing down the Test setup is also often time consuming.Total Cost of Hardware Ownership increases and it not only includes that cost of purchasing the hardware but also of maintaining it.Some forms of testing like Performance testing, Loading Testing takes exorbitantly large amount of hardware resources. There is always a great time lag in procuring the machines.Courtesy: The Topic- Cloud Based Testing for Real World Performance at a part of QAI STC Conference in 2010 byCharanjit Singh (Accenture Technology Solutions, Minneapolis, US)
Courtesy: The Topic- Optimize Your Testing with Virtual Test Lab Automation presented during Star East 2008 Conference by Brad Johnson (Borland Software)
Courtesy: The Topic- Optimize Your Testing with Virtual Test Lab Automation presented during Star East 2008 Conference by Brad Johnson (Borland Software)
Snapshot feature enabling Collaboration between Dev and TestImage Source: http://www.vladan.fr/wp-content/uploads/images/vmware-workstation-71.jpg