Volume 1, No. 9, November 2012 ISSN 2278-1080 The International Journal of Computer Science & Applications (TIJCSA) RESEARCH PAPER Available Online at http://www.journalofcomputerscience.com/ Cloud Based Software Testing Services Testing as a Service Charu Barara Research Scholar Student, Institute of Information Technology and Management New Delhi, India charubarara@gmail.com Sandhya Maitra Associate Professor, Dept of Computer Application Institute of Information Technology and Management New Delhi, India msan324@gmail.com Abstract In Contemporary times the rapid increase in complexity of business applications renders it difficult for organizations to build and maintain in-house testing facilities simulating real time environment, contemplating higher set-up costs, operational flexibility and scalability thus necessitating Cloud Computing which offers a potential solution. Traditionally, testing has always been considered a necessary evil owing to requirement of huge, dedicated infrastructure and resources that were used sporadically. Testing in the cloud leverages the cloud computing infrastructure, reducing the unit cost of computing, while increasing testing effectiveness. Cloud-based testing focuses on a unique combination of lower costs, pay-peruse and elimination of upfront capital expenditures. However, the benefits extend beyond cost. Cloud based testing offers many non-cost advantages like on-demand facility, freedom from holding assets, enhanced collaboration, greater efficiency and reduced time-to-market for key business applications. Cloud-based testing service providers offer a standardized infrastructure and pre-configured software images capable of reducing errors considerably. Layers of the Cloud such as Software-as-a-Service (SaaS), Platformas-a-Service (PaaS) and Infrastructure-as-a-Service (IaaS), can be used to support testing in a rapid, agile, automated and cost effective way than that of the traditional methods. Cloud Computing, is the single largest focal point of the computing infrastructure existing today. However, coupled with the unique solutions, Cloud 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 84
based testing offers a new set of operational challenges such as Data Security, Lack of Standards especially in the public cloud, Infrastructure, Improper usage & Rigorous Planning. To determining whether particular software is reliable or not, is a difficult task to perform since it involves checking the ability of the software to function under given environmental conditions for particular amount of time by taking into account all precisions of the software. Therefore, cloud based testing is introduced in order to ease the testing procedure with much greater efficiency. The paper suggests a rough formulation for reliability of software in a cloud computing environment. This paper includes a formula is just an idea and it can be improvised further to include other aspects featuring cloud computing. A research in this area can be substantiated by evidences in form of test trials and study of statistical trends thereof to arrive at a refinement of the proposed formula to cater to all types of cloud computing situations. Keywords- Cloud computing, Cloud testing, Performance testing, Functional testing, Compatibility testing, Web browser testing, Latency Testing, stress testing, load testing. Introduction Testing has always been a key success factor for the organizations, requiring massive upfront investments in an infrastructure that tends to be used sporadically. The cloud is well-suited to testing given its resource flexibility (from provisioning and deployment through decommissioning) and reduced security concerns, compared with the issues organizations face when considering placing production data and applications in the cloud. Cloud testing is a form of software testing in which web applications that leverage Cloud computing environments seek to simulate real-world user traffic as a means of load testing and stress testing web sites. The ability and costs to simulate Web traffic for software testing purposes has been an inhibitor to overall Web reliability. Cloud testing basically aligns with the concept of cloud and SaaS. Cloud-based software testing refers to testing and measurement activities on a cloud-based environment and infrastructure by leveraging cloud technologies and solution. Benefits of TaaS include: Reduction in capital expenditure and tool license costs. Pay-as-you-use basis No need to set up and maintain in-house infrastructure for testing No need to purchase expensive tools not fully used Highly flexible, scalable. Allow different platforms, scenarios and geographic locations. Minimum overhead on paperwork. 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 85
1. Materials and Methods 1.1 Cloud Computing The Cloud Computing is a marketing term for computation, software, data access, and storage service over the network. User doesn t have to know the physical location, configuration about the system, which is delivering the service. The name cloud computing could have been inspired by the cloud symbol which is metaphor for the Internet that s often used to represent the internet in flowchart and diagrams. The Cloud computing at it simplest is internet-based computing, with the use of shared resources and software provided on demand with reduced management effort. This usage was originally derived from its common depiction in network diagrams as an outline of a cloud, used to represent the transport of data across carrier backbones to an endpoint location on the other side of the cloud. Cloud computing represents a different way to architect and remotely manage computing resources. It not only changes the way of obtaining computing resources (such as computers, infrastructures, data storage, and application services), but also changes the way of managing and delivering computing services, technologies, and solutions. Cloud computing leads an opportunity in offering testing as a service (TaaS) for SaaS and clouds. Meanwhile, it causes new issues, challenges and needs in software testing, particular in testing clouds and cloud-based applications. It offers a clear comparative view between web-based software testing and cloudbased application testing. In addition, it examines the major issues, challenges, and needs in testing cloud-based software applications. Furthermore, it also summarizes and compares different commercial products and solutions supporting cloud testing as services. A typical cloud must have several distinct properties: elasticity and scalability, multi-tenancy, self-managed function capabilities, service billing and metering functions, connectivity interfaces and technologies. The services in cloud computing are broadly divided into three categories. Infrastructure as a service (Iaas), Platform as a service(paas), Software as a service (Saas). 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 86
Fig 1: Representation of cloud IaaS is a provision model in which an organization outsources the equipment used to support operations, including storage, hardware, servers and networking components. The service provider owns the equipment and is responsible for housing, running and maintaining it. Service providers like Google, Amazon etc owns the infrastructure, monitor it and control it based on the client needs. The client typically pays on a per-use basis. PaaS which is all about providing a platform in the cloud upon which applications can be developed and executed. PaaS contains tools for developing product. The tools consist of hardware components, operating systems, network components and storage facilities. Well known examples of cloud platforms are Google s app engine, Amazon s EC2 and others. Users of these cloud platforms are need not to concern about the hardware requirements, load balancing tasks because these are handled by the providers. SaaS based on the concept of renting application functionality from a service provider rather than buying, installing and running software yourself. Offerings within this range from services such as Salesforce.com at one end, delivering the equivalent of a complete application suite, to players like Message Labs at the other, whose services are designed to complement your operational infrastructure. 1.2 Cloud Testing The Cloud testing can broadly be defined with two different approaches: Definition-1: The Cloud testing is a form of software testing in which Web applications that leverage Cloud computing environments seek to simulate real-world user traffic as a means of load testing and stress testing web sites. The ability and costs to simulate Web traffic for software testing purposes has been an inhibitor to overall Web reliability. Cloud testing basically aligns with the concept of cloud and SaaS. Cloud-based software testing refers to testing and measurement activities on a cloud-based environment and infrastructure by leveraging cloud technologies and solution. Definition-2: The mathematical expression can be elaborated as Let Ai be the set of Clouds needed for testing the product Pi and with respect to Pi, A can be defined as in the Equation (1) 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 87
Where, sm i is the Service Manager of the product Pi belongs to the On-Premises Application And H is the number of products to be tested simultaneously and then 0 < i H. tc ij is the one of the Testing Cloud of Ai and tci (ju) is the one of the Testing Services of tc ij and then 0< j y,0< u k ij. y is the number of Clouds and also the number of different Testing Clouds required for the product Pi. K ij refers to the maximum number of Testing Services of a ij and K ij refers to the total number of Testing Services available in the particular Testing Clouds j of the product P i. Since this cloud framework provides, scalar type testing environment, at any instant, Ai1 Ai2 = ɸ, where, 0< i1,i2 H and i1 i2. i.e. at any specific service duration, neither a single Testing Cloud nor a Testing Services can be shared by more than one product simultaneously. The logical layout of the proposed cloud framework for software testing is shown in the Fig 2. Generally there are three sets of components as Service Manager ({sm 1, sm 2,... sm z }), Testing Clouds ({ tc 1,tc 2,...tc x }) and the clones of Testing Services ({ ts 11,ts 22,...,ts 1k1 }. ({ tsx 1,tsx 2,...,tsx kx }) each of which runs locally on different machines in a network. The logical links between the services refers to the service level dependency among the services in the framework. Such a dependency can represent the fact that one service depends on another for a goal to be fulfilled, task to be performed, or a resource to be made available. Fig 2: Proposed Cloud Environment 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 88
In specifying the proposed system, it has been found that it is highly desirable to explain the model in a layered approach; there are two types (levels) of services: On-Premises Application Services and Cloud Application Services. Cloud Application services: The cloud application services layer is the dynamic one, which will be generated at the time of the testing processes. The overall support is composed of units, which specialize in supporting different testing services. The Service Manager is responsible for supervision and coordination of the core activities of respective layer entities of the overall environment. After getting the assignment from the user, the Service Manager (SM i ) will form the Testing Clouds and can define the set { tc 1, tc 2,.. tc x }. The process of defining the set of required clouds depends on the testing techniques required for any product P i. Then, based on the load, each Testing Cloud will select one or more additional Testing Services of its respective techniques and define the sets of Testing Services. These additional services are to be referred to as secondary services of Service Manager. Each cloud is responsible for providing a specific output standard to which the task output must conform. The output standard depends on the task type and the required output properties such as number of test cases, defects found, time spent for testing, etc. The input to the Consumer Service CS i is from the tester and it includes the set of the testing product, time specification for testing, defect detector estimations and the specification about the required testing techniques. This is transferred to the Service Manager SM i of CS i. The Service Reception receives the input from the CS i and analyze the specification about the required testing techniques. Based on the testing service specifications, the appropriate set of Clouds can be defined and identified through the negotiation process in the Cloud Application Services. Upon the agreement of the negotiation process K y Clouds are formed. Then the assignments will be distributed to the identified set of Testing Cloud and their outputs can be obtained for integration. The Environmental Test Reports from the identified testing Clouds will be integrated in the testing management block and then passed to the external world (CS i ) through the service reception of SM i. The Service Manager is responsible for all types of co-ordination activities in this system. The initial input to the Testing Cloud tc ij is from the Testing Application Management. It includes the set of the testing techniques, time specification for testing, defect detector estimations and the estimated complexity of the product. This is transferred to the Testing Clouds tc ij with a set of estimated values on average size of the modules of the product and the predicted values of total number of test cases to be built by tc ij, average size of the test case and average time required for generating and executing an unit test case. Service Manager will define the mode of load distribution and it is based on the input from the Consumer Service. This is also responsible for defining the number of Testing Services that are needed to generate. Moreover processes of registration, load distribution and collection of results from the Testing Services are to be done. At the same time it will distribute the load to the Testing Clouds of same tc ij. The results from the Testing Clouds i.e. Environmental Partial Test Reports (EPTRs) from the Testing Services will be processed in the Testing Application Management. Then the generated Environmental Test Report (ETR) of tc ij will be transferred to the Consumer Service CS i. 1.3 Types of testing in cloud 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 89
The different types of testing are performed on the cloud they are: Stress testing Performance testing Compatibility testing Functional testing Web browser testing Load testing Latency testing 1. Stress testing in cloud is defined as the process of determining the stability or capabilities of the cloud under extreme conditions. 2. Performance Testing done to measure the cloud s ability such as Speed to Value, Flexibility, Cost Reduction, More Mobility, Scalability, Easy Implementation to support various applications. 3. Compatibility testing is one which is used to cloud environment under different operating systems. The main advantage is to verify whether the cloud environment is able to support all operating systems. 4. Generally cloud applications are run based on the internet. Different web browsers are used to run these applications to check the compatibility of these web browsers in cloud web browser compatibility testing is done. 5. Load testing is performed to identify the cloud environment s behavior under normal and extreme conditions in conducting more efficient and more realistic large-scale tests. 6. Latency testing is used to measure the difference between action and response time of an application in cloud environment. 1.4 Migration of testing into cloud Fig 3: Types of testing in cloud Before performing testing in the cloud we must consider how testing process should be transferred into the cloud. Software testing is a process of assessing the product quality base on analysis and execution. When testing process is shifted into the cloud, the necessary requirements that are involved in the traditional testing process needs to be transferred into new cloud environment. Such requirements include the test cases, test plans, testing techniques, types of testing, and test environment such as test requirements, types of tools used for testing process, etc. Therefore, a controlled and correct process needs to be followed to achieve success while transferring testing process into cloud. Transferring software testing to the cloud requires understanding 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 90
types of risks that are associated while transferring process. The aim of testing should define the risks associated with cloud computing, mainly security because security is main drawback in cloud computing. Simply defining test cases and executing that test cases are not good in cloud computing. When the defined test case not able to define the good design quality attributes, it is tough to execute those test cases in a cloud environment. Whenever the test cases that do not have good quality attributes it must need re-engineering because cloud computing may not support those test cases in testing process. Fig 4: Cloud testing over years 1.5 Issues and Challenges To effectively perform cloud testing, it is very important to understand the primary issues, potential challenges and needs. This section first discuss on the primary issues and challenges, and then summarizes the essential needs in cloud testing. As pointed out by, large internet-based solution vendors (like IBM) have identified the priority and cost-reduction opportunities in cloud testing service for large-scale internet-based applications and could based applications in the near future. 1.5.1 Issues (a) Application Issues (1) The Applications are suitable for online software testing. The types of testing in the cloud that would be most productive. Cloud based SaaS software v/s non-saas software. The Mission critical systems e.g. banking. The Praveen and Tilley (2010) suggest: 1. Characteristics of application under test e.g. test case dependency. 2. Type of testing to be done e.g. unit and performance testing. 3. Ready-made online performance testing package for any customer. 4. The cloud and other systems need to be tested for performance. 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 91
5. One fits all performance testing package. (b) Application Issues (2) The Quality checks for applications that have been tested in the cloud. The High quality is becoming more and more important. The Harmonization of the test processes across multiple players. The Integration between different testing systems in the cloud. The Online testing solutions for e-business applications.the E-business systems are based heavily on XML. The Testing systems based on standards might be easier. The Testing in the cloud may have the potential to enhance e-business models. (c) Management Issues The Pool of testers.it is based on how to fulfill the promise of 24/7 availability. The Cloud computing avails the means to perform testing, but human effort is still required. The Crowd sourcing e.g. utest. The Effects on the customer s business. The Critical for independent testing vendor s.the Knowledge and skills to advice customers appropriately. The Follow customer and adapt to customer trends11. (d) Legal and Financial Issues The test data in order for effective testing to take place, some testing tasks depend highly on the actual customer or production data. It is based on how to deal with confidential or production data especially across different regulations. The Development of new models or algorithms that would generate almost identical test data to facilitate productive testing results. The generated test data should produce the similar quality of test results that would have been achieved if real data had been used. The Pricing models and service descriptions for testing services. It Elaborate and transparent pricing models and depends on what is the customer paying for. 1.5.2 Challenges Having said a lot about the features of cloud based testing, however, it encounters various operational challenges: 1.Lack of standards Since there are no universal standard solutions to integrate public cloud resources with the user companies internal data center resources at present, this poses a big challenge for companies when they need to switch vendors. 2. Security (in public cloud) Security in the public cloud is still a major concern, and encryption techniques currently available today are considered insufficient. The main cause being the data may be stored in a remote location beyond an organization s legal and regulatory jurisdiction. 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 92
3. Supportability in legacy systems (SLAs) Terms and conditions of cloud service are sometimes hard to understand, misleading and biased towards the vendor providing such services which include areas such as clauses governing data integrity, data preservation, data location and transfer. 4. Infrastructure Some cloud providers offers only limited types of configurations, technology, servers and storage, networking and bandwidth, making it difficult to create real-time test environments. 5. Planning/Usage Testing teams should extensively plan their test environments, from utilization point of view. They should also be aware of the associated expenses, such as cost of encrypting data, before putting testing in a cloud environment. Improper planning and usage of cloud-based test environments can increase costs. Even though some of the vendors offer pay-as-you-go cloud based testing services, this approach can be expensive or out of sync with the requirements. 6. Performance Since the public clouds are shared by one or the more users, there may be a case where company might have to wait for the required bandwidth. There may also be a case where service provider suddenly discontinues the required service owing to a maintenance strategy. 1.6 Examples 1. Google app engine: Google app engine often referred as GAE is a platform-as-a-service cloud computing platform developed for hosting the web applications in Google managed data centers. Applications are sand boxed (sand box is a security mechanism for separating the running program s) and run across different servers. It allows automatic scaling of the web applications as the number of requests for the applications. API s in Google app engine helps to access various services like storage (data store, blob store), user management, offline processing (task queue, cron), and web requests (URLFetch). A software development kit (SDK) consisting of tools to develop applications locally on the user's Linux, MacOs, and Windows client systems was also being provided.within the SDK, a development application server simulates the supported Google App Engine APIs and allows the developed applications to be run and debugged before being deployed. The services in Google app engine are mainly supported by Java and python languages. In Google app engine for testing framework it uses Google Web Toolkit (GWT) for creating the user interface and functional logic such as the types of plug-ins to run. Here plug-ins are loaded for data store, blob store, task queue, URLFetch was developed to test the API s in the Google app engine. 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 93
Fig 5: General structure of the framework for testing app engine API s 2. Amazon: Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers. It provides you with complete control of your computing resources and lets you run on Amazon s proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. Amazon EC2 provides developers the tools to build failure resilient applications and isolate themselves from common failure scenarios. It's targeted at smaller web developers that don't want to be caught unawares if their services become unexpectedly popular. The likes of Sun and HP are targeting larger organizations that have complex and resource-intensive processing tasks big number-crunching jobs. Amazon is basically renting out virtual servers, or instances, at its data centers. Rather than pay a fixed fee for your expected capacity plus redundancy, the typical hosting model, with EC2 you only pay for what you use. Users pay by the server-hour and by the number of gigabytes of data that internet users chug from them. With EC2, developers can install their own OS, applications, and configuration, log-in, use or secure their network as they see fit, and exercise root control of their instances. Amazon, by contrast, is taking its service directly to web developers, and has a specific use case in mind. The company is not currently disclosing how long the beta test will run for, or how many testers it is accepting. Would-be users are advised to sign up promptly to avoid disappointment. Amazon Web Services (AWS) offers a range of cloud computing services that allow users to "securely" store and manage a wide range of data types. AWS also incorporates identity, payment, database, messaging, and other services. Amazon promotes AWS as a reliable cloud computing option, but its service level agreement states that "AWS reserves the right to refuse service, terminate accounts, remove or edit content in its sole discretion." 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 94
Fig 6: General structure of the framework for testing Amazon 2. Comparative Analysis and Benefits 2.1 Cloud Testing versus Internet Testing The following table shows the difference between cloud-based software testing and Internet-based testing. Primary Testing Objectives Testing as a Service Testing and Execution Time Testing Environment Internet - Based Testing (i.e. Distributed Web Based system infrastructure) - Assure the quality of system functions and performance based on the given specifications -Check usability, compatibility, interoperability. - In-house internal software testing as engineering tasks - Offline test execution in a test lab. - Testing a product before its delivery - A pre-fixed and configured test environment in a test lab. with purchased hardware and/or software Cloud-Based Software Testing - Assure the quality of functions and performance of SaaS, Clouds, and applications by leveraging a cloud environment - Assure the quality of cloud elasticity & scalability based a SLA - Real-time on-demand testing service offered by a third-party - Online testing service based on a pre-defined SLA - On-demand test execution by thirdparties; - Online test execution in a public cloud; - Offline test execution in a private cloud Testing Environment - A pre-fixed and configured test environment in a test lab. with purchased hardware and/or software - An open public test environment with diverse computing resources - A scalable private test environment in a test lab. 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 95
Testing Costs Function Validation Integration Testing Security Testing Scalability & Performance Testing - Required hardware costs and software (license) costs - Engineering costs in a test process -Validating component functions and system functions as well as service features - Function-based integration - Component-based integration - Architecture-based integration -Interface/connection integration Aim to the following targets: - Function-based security features - User privacy - Client/server access security - Process access security - Data/message integrity - Performed a fixed test environment - Apply simulated user access,,messages, and test data - Online monitor and evaluation - Based on a pre-defined servicelevel-agreement (SLA) - TaaS and Cloud testing service costs (pay-as-you-test) - Engineering costs in SaaS/Cloud/application vendors - SaaS/Cloud service functions, endto-end application functions - Leveraged functions with legacy systems - SaaS-based integration in a cloud - SaaS integration between clouds - Application-oriented end-to-end integration over clouds - Enterprise-oriented application integration between SaaS/Cloud and with legacy systems Aim to the following targets: - SaaS/Cloud security features, including monitor and measurement - User privacy in diverse web clients - End-to-end application security over clouds - SaaS/Cloud API and connectivity security - Security testing with virtual/realtime tests in a vendor s cloud - Performed in a scalable test environment based on a SLA - Apply both virtual and real-time online test data - Online monitor, validation, and measurement Table 1: shows the details in different aspects. 2.2 Benefits The benefits of cloud based software testing are as follows: 1. Reduction in capital expenditure and tool license costs 2. Pay -as-you-use basis 3. No need to set up and maintain in-house infrastructure for testing 4. No need to purchase expensive tools not fully used. 5. Highly flexible, scalable and wide range 6. Allow different platforms, scenarios and geographic locations. 7. Choose the right tools 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 96
8. Minimum overhead on paperwork 9. Contact selected cloud vendors in a timely manner to set up testing environments. 3. Conclusion 3.1 Reliability of cloud computing Recently InfoWorld published a list of the 10 worst cloud outages that happened in the last three years. The list included all the big names like Amazon, Google, Microsoft, and Rack space. The reliability is measured differently for different cloud services like, 1. Amazon Web Services = 99.920% 2. Sidekick = 99.400% 3. Gmail > 99.999% 4. Hotmail > 99.999% 5. Intuit = 99.750% 6. Microsoft s BPOS = 99.958% 7. Sales force = 99.996% 8. Terre mark = 99.971% 9. Pay Pall = 99.983% 10. Rack space = 99.958% Etc. We have given the example of Google app engine and Amazon in our research paper. There is a fundamental difference between reliability of IaaS and SaaS. If you are using IaaS you can take the following measures: - Have an alternate DR site - Have your own backup of the data However, when you are using SaaS, neither of these approaches is feasible. Imagine setting up a backup mailing system to cater for Gmail going down. So, the reliability standard for SaaS has to be much higher than IaaS. 3.2 Reliability for SaaS In our paper we have discussed the SaaS of cloud computing which is more reliable than IaaS. If the provider s service goes down, they will find themselves cut off and unprotected. Their email won t arrive, or perhaps it will arrive as a torrent of spam, malware, and phishing scams. Such a failure could quickly overwhelm a company s on-premise mail servers and network infrastructure, and it will open the door to a host of Web-based security threats and internal data loss risks. It is not enough to minimize these risks - an effective SaaS solution must eliminate them. In order to accomplish this task, a SaaS vendor s data center infrastructure must be: 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 97
Geographically dispersed and physically redundant: Even if a disaster destroys an individual data center, the remaining sites have the capacity and functionality to provide uninterrupted service. Physically secure: Each data center must employ redundant power and cooling systems, physical access control, server clustering, multiple Internet uplinks, and other security measures. Designed for maximum efficiency: The provider should be capable of routing customer traffic to the most appropriate data center, based on geographic location and Internet traffic conditions. This is an especially valuable capability for companies that must secure remote offices and mobile workers. Security-as-a-Service for Web and email illustrates the reliability benefits of a carefully designed data centre infrastructure. Email traffic is routed to multiple data centres, each of which provides enough capacity to meet customer demand. SaaS customers also gain all the benefits of market-leading Web and email security, while eliminating the need to deploy and support on-premise or remote clients. By shifting all management and enforcement processes to these data centres, is able to reduce operational costs for its customers. Other benefits of data centres include redundant. Power with gas-fired generators and redundant cooling, separate wiring paths, multiple high-speed Internet connections, and fault-tolerant equipment clusters with automatic fail-safe capabilities. 3.3 Availability of Cloud Testing: In a cloud computing environment, all the test services within a cloud are conducted in parallel, two clouds are considered to be operating in parallel if the combination is considered failed when both parts fail. The combined system is operational if either is available. From this it follows that the combined availability is 1 - (both parts are unavailable). Fig 7: Cloud computing environment with test services A formula for availability of the product can be proposed as: A p k i = 1 1 j =1 A i y 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 98
For a cloud computing environment where certain test services, say m within a cloud. May be dependent (serial) and certain others are independent (parallel) the formula for availability of the software product can be proposed as: A p y m k i = 1 1 Aj + 1 i= 1 j = 1 j = 1 m ( 1 A ) j 3.4 Future Scope: Testing has always been a key success factor for the organizations, requiring massive upfront investments in an infrastructure that tends to be used sporadically. The cloud is well-suited to testing given its resource flexibility (from provisioning and deployment through decommissioning) and reduced security concerns, compared with the issues organizations face when considering placing production data and applications in the cloud. Organizations should start small and gain confidence with the benefits of Cloud based testing. Small victories build confidence over time, by speeding time to market, reducing costs (that multiply as cloud based testing scales) and ensuring compliance with standards that demonstrate the service is both secured and reliable. Cost of ownership and operation will over the time be reduced by companies that intelligently embrace pay-as-yougo or on-demand-services. Companies should pilot cloud-based testing as early as they feel comfortable to ensure they gain insights and benefits as these service offerings mature and become main stream. Therefore, organizations seriously considering deploying testing as a service need an experienced partner that can ensure cost reductions are achieved or exceeded over time and that time-to-market of software products or services are similarly attained, Logically, Small and Medium Businesses (SMB s) should harness public clouds, while large enterprises must leverage private clouds for their cloud based testing services. But for companies, small and large, the road to cloud based testing is paved with its own set of challenges. Companies confident enough to start early and push forward, however, will reap first-mover advantages that far outweigh the pioneering risks. References [1] G.Jagadeesh, Sandeep Aluri, Dr.Anirban Basu, Cloud based testing: need of testing in cloud infrastructures and cloud platforms,vit University. [2] Jerry Gao, Xiaoying Bai, Wei-Tek Tsai, Cloud Testing- Issues, Challenges, Needs and Practice, San Jose State University, USA, Tsinghua University, China, and Arizona State University, USA. [3] Amazon, Amazon E2, aws.amazon.com/ec2/ Accessed on October 24, 2012. [4] "When to Migrate Software Testing to the Cloud? By tauhida parveen, Scott Tilly in Third International Conference on Software Testing, Verification, and Validation Workshops (ICSTW). [5] T. Vengattaraman, P. Dhavachelvan, A Model of Cloud Based Application Environment for Software Testing, Pondicherry University, R. Baskara, Anna University Chennai, India. 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 99
[6] Cloud Computing, Cloud Computing, epic.org/privacy/cloudcomputing/ Accessed on October 30,2012. 2012, http://www.journalofcomputerscience.com - TIJCSA All Rights Reserved 100