AN OVERVIEW OF CLOUD TESTING AS A SERVICE

Testing is an important process for software quality assurance. A cloud infrastructure creates significant new opportunities for software quality assurance and testing. Making the test infrastructure that directly represents the production cloud infrastructure is too expensive – in terms of hardware, software licenses and testing professionals. To deal with this challenge the paper gives an overview of various cloud testing strategies and also introduces „Testing as a Service‟, using Cloud computing.


INTRODUCTION
Cloud Testing uses cloud infrastructure for software testing. Cloud computing [2] at it simplest is internet-based computing, with the use of shared resources and software provided on demand with reduced management effort. As a service it is still at an early stage, but the growth of cloud-based computing is outstripping even the most optimistic predictions.
That growth is based on a convincing value proposition: speed to market, agility to bring forward or retire service. Although cloud computing is still in its infancy, it is increasingly clear that the cloud model will supplement, if not entirely replace, mainframe and client/server installations in the years to come.

Four Deployment Models in the Cloud
Following are the four cloud infrastructure deployment types within the cloud model:


Private Cloudoperated solely for an organization. It may be managed by an organization or a third party, and may exist on or off premises;  Public Cloudmade available to the general public or a large industry group, and is owned by an organization selling cloud services;  Hybrid Cloudcomposed of two or more clouds (private, community or public), which remain discrete from another but, offers data and application portability between each cloud using standardized or proprietary technology (eg cloud bursting for loadbalancing between clouds);  Community Cloudcomposed of two or more public or hybrid clouds to form a community cloud for a group of organizations. This then runs the service for all the organizations within that community from an end-to-end perspective. It has the same deployment characteristics as a hybrid cloud

Cloud Services
The resources of the cloud, while owned and maintained by a cloud service provider, are often borrowed by the enterprise. There are three acknowledged types of service offerings ( Figure  1): • Software-as-a-Service examples include Salesforce.com, Google Apps, SAP, Taleo, WebEx, and Facebook. These are full-service applications accessed from anywhere on the Internet. These services are implemented through the use of distributed data centers.  Traditional approach to test these applications uses internal testing techniques that have the limitations. [4]:Testing at web scale, Testing firewalls and load balancers [5], Simulation of user activity from different geographic locations, Testing external components, High Cost of hardware, software and its maintenance.

Software Testing Vs Cloud Testing
Following is the list of the similarities and differences between conventional software [3] testing in cloud testing [7]. Table 2 shows the details in different aspects.

The Cloud Testing Approach
Companies try and simulate real world Web users by using cloud testing services [1] that are provided by cloud service vendors such as SOASTA, HP, Load Impact, Compuware and Keynote systems. Once user scenarios are developed and the test is designed, these service providers leverage cloud servers (provided by cloud platform vendors such as Amazon.com, Google, Rackspace, etc.) to generate Web traffic that originates from around the world. Once the test is complete, the cloud service providers deliver results and analytics back to corporate IT professionals through real-time dashboards for a complete analysis of how their applications and the internet will perform during peak volumes.

Figure2. Steps for Cloud Testing
The virtualized data center, [2] whether within the enterprise or located at a cloud service provider, must be properly provisioned in order to provide the necessary functions and performance of cloud-based applications. Testing of cloud services has some familiar aspects and some new challenges. Even though they will be used in a cloud environment, the basic components that populate the data center need to be tested for functionality, performance, and security. This is complemented with testing [8] of the data center and end-to-end services. 3. Potentially engaging the service provider as an ongoing operations partner if producing commercial offthe-shelf (COTS) software 4. Being willing to be used as a case study by the cloud service provider. The latter may lead to cost reductions.

Cloud Testing Methods
Cloud testing is a new approach which helps us to measure accurate performance by externally load testing these applications and overcome the limitations of traditional testing. Cloud architectures are tested using following strategies ( Figure  3)

Stress Test
Stress Test is used to determine ability of application to maintain a certain level of effectiveness beyond breaking point. It is essential for any application to work even under excessive stress and maintain stability [7]. Stress testing assures this by creating peak loads using simulators. But the cost of creating such scenarios is enormous. Instead of investing capital in building on-premise testing environments, cloud testing offers affordable and scalable alternative.

Load Test
Load testing [10] of an application involves creation of heavy user traffic, and measuring its response. There is also a need to tune the performance of any application to meet certain standards.

Performance Test
Finding out thresholds, bottlenecks & limitations is a part of performance testing [8]. For this, testing performance under a particular workload is necessary [9]. By using cloud testing, it is easy to create such environment and vary the nature of traffic on-demand. This effectively reduces cost and time by simulating thousands of geographically targeted users.

Functional Test
Functional Testing is a type of black box testing that bases its test cases on the specifications of the software component under test. Functions are tested by feeding them input and examining the output, and internal program structure is rarely considered Functional testing Latency testing, browser performance, compatibility testing are some other types of testing that can be performed in the cloud.

Key Benefits of Cloud Testing on the Cloud
All levels of testing can be carried out in cloud environments, and indeed, some types of testing benefit greatly from a test environment in the cloud. In an early pilot with a European Financial Services client, and in subsequent assignments with clients in the public and private sectors, we have identified a number of distinct differences and corresponding benefits to testing on the cloud.
The ability and cost to simulate web traffic for software testing purposes has been an inhibitor to overall web reliability. The low cost [13] and accessibility of the cloud's extremely large computing resources provides the ability to replicate real world usage of these systems by geographically distributed users, executing wide varieties of user scenarios, at scales previously unattainable in traditional testing environments. Minimal startup time along with quality assurance can be achieved by cloud testing.

Flexibility
 Different levels or grades of tests can be executed on separate environments at an organization"s convenience.
 Testers no longer need to wait until the end of the testing phase to move to a production-like environment for their performance, load and stress tests. Instead a production-like environment can be brought into action at will.

Simplicity
 End-to-end testing can be set-up in the cloud relatively simply, provided the necessary servers and images can be accessed to create an end-to-end environment.
 The cloud also offers a new level of simplicity in terms of training or bug-fixing environments, which can be launched as quickly as the images and configuration can be put in place.

Comprehensive and indicative testing
 Even end-to-end tests for more generic business processes [14] can be carried out in the cloud. All the necessary components can be published in the cloud to create the whole chain of systems. In this way, the whole business processes can also be tested.  In the cloud, a more realistic load can be generated than the virtual load generated by other tools. Cloudenabled performance test tools generate the needed load and stress to test an application more accurately.

Cost Reduction
 There is a reduced need for expensive environments, which need to be used only when tests have to be executed.
 Historically, internal testing and acceptance environments have been permanently available for testing projects within a company, creating a permanent pressure on development budgets and infrastructure resources. Cloud environments however can be enabled and disabled at will, reducing the cost of environment management.

Cleaner, Greener Testing
 It is intuitively true that the efficiencies cloud computing provides make it significantly greener than traditional, hosted models. That is true for testing, too. By sharing cloud resources for their test infrastructure, businesses will use IT resources on demand and eliminate waste. In addition, clients using cloud data centers can minimize energy use and deliver environmental savings in CO2 up to 55%4.

Geographic Transparency and Traceability
 Test data is frequently sensitive and its location is therefore important, since data entering or exiting national borders can contravene national and international regulations, such as the EU Data Protection Directive. To address this, the Test Cloud solution is transparent about the geographic location where data and services are stored, and allows clients to keep data on their own servers.  In one sense, creating test environments in the cloud is merely a temporary first step on a much longer journey. Cloud computing will give a huge impetus for the standardization of organizations infrastructure.
That key shift will inevitably catalyze IT modernization and improve internal IT services maturity, impact upon application consolidation and portfolio rationalization, and change the way enterprises look at resourcing IT services internally.

Cloud Testing as a Service(TaaS)
Testing Platform on Cloud [7] aims in providing the customer the on-demand, Cloud based and cost effective testing with reduced overheads especially targeting small and medium scale clients. Testing-as-a-Service (TaaS) delivers application testing services in a highly vailable, consumable, pay-as-you-go model that provides flexibility in service and pricing. It also lowers the cost of entry to full service testing options and helps you implement best practice quality management processes. And it helps leverage the existing investments by incorporating them into the center of excellence.
A brief architecture of TaaS [23] based was developed which provides the tenants with testing services like submitting the task, auto generation of test cases and execution. Various task scheduling and dispatching algorithms are analyzed to improve the utilization of computer resources and evaluated the scalability of the platform by increasing the test task load.


Reaching out to TaaS platform -Customers can connect to the TaaS delivery platform securely over internet  Access to Services -Customers will have the flexibility to choose required services from the service catalogue hosted through the platform.
 Option for Service consumption -Based on the need, the customers can either consume bundled services of testing and TEMS along with solution accelerators or choose just the componentized on demand testing services

Major TaaS Players
Following is the list of major software-testing-as-a-service providers SOASTA -As a precursor on cloud testing market, SOASTA [9] has its unique cloud testing product family (known as SOASTA CloudTest™) to support common web application tests in performance and load testing, function testing, and UI testing either inside a firewall or inside "The Cloud".
SauceLabs: This Silicon Valley startup lets developers test Web apps using the Selenium test suites, with an emphasis on speeding up the process. Selenium is a platform for testing Web apps written in a variety of programming languages. SauceLabs, which is hosted on Amazon Web Services, lets you record video of browser action to troubleshoot and document tests.

Skytap:
Promotes a hybrid cloud model where customers use its testing services in combination with their own on-premises tools and processes. Features include a library of operating systems, databases, and other software for creating drag-and-drop test environments. Skytap recently partnered with Hewlett-Packard to offer software testing through HP's Quality Center.
VMLogix: Specialist in virtual machine management announced, VMLogix LabManager, Cloud Edition, which runs on Amazon's EC2. Can be used to create virtual labs for testing software stacks in the form of Amazon Machine Images, with a central repository, team capabilities, and audit trails. Works with VMLogix's on-premises platform to create hybrid software lab environments. Service in beta now; GA in September.
Zephyr: Provides "testing lifecycle management." Zephyr 2.5 platform provides testing desktops and dashboards served from a hosted Zephyr Management Platform, which incorporates testing applications and APIs. Capabilities include test case creation, test automation, defect tracking, collaboration, and project management.

TaaS Key Features
TaaS provides a testing service catalogue to choose across services as per the client need Tenant Portal View. It allows Subscription based access and enables multi-tenant users administration. It allows integration to cloud infrastructure, work flow integration & script managementcreation modification and execution.

Access TaaS Services
On Demand Test Envir.

Service Options
Service Provisioning Service Execution www.ijctonline.com CONCLUSION Testing of cloud components and systems requires a range of techniquessome benchmark and some new. The factors that makes cloud computing so attractive: virtualization, poses an interesting challenge for network and application testing. Virtualization of the test tools themselves provides the key to testing the cloud. As the advent of cloud technology and testing as services, more research work must be done to address the open issues and challenges in cloud testing and TaaS.