International Journal Of Scientific & Engineering Research, Volume 3, Issue 9, Spetember-2012 1
ISSN 2229-5518
Conventional Software Testing Vs. Cloud
Testing
Mrs.A.Vanitha Katherine, Dr. K. Alagarsamy,
Abstract
Software Testing is one of the important activities in software development process. Depending on the testing
method employed, software testing can be implemented at any time in the development process. Traditionally most of the test effort occurs after the requirements have been defined and the coding process has been completed, but in the agile approaches most of the test effort is on-going. Conventional testing requires expensive dedicated infrastructure and resources that are only used sporadically. The growing complexity of business applications, it is harder to build and maintain in-house testing facilities that mimic real-time environments. Cloud computing has opened up new opportunities for software testing, which provides unlimited resources with scalability, flexibility and availability of distributed testing environment. It reduces the execution time of testing of large applications and lead to cost-effective solutions. However, it also explores challenges such as data security and a lack of standards. In this paper we present a comparative study on conventional software testing with cloud testing. W e also highlight the challenges of these testing paradigms.
Index Terms: Cloud Computing, Cloud Testing, Testing a Cloud, W APT, STLC, TaaS, SaaS,PaaS, IaaS
—————————— ——————————
environments can be time-consuming and delay-prone. It can
Software testing is one of the significant activities in software development. It determines the correctness, completeness and quality of the software product. In general software testing is done internally using the infrastructure that exists (in-house testing) within the organization.
Over time, the software testing function has become a challenging activity for enterprises due to increasing technological complexities, software sourcing challenges, high costs to simulate and security. The growing complexity of business applications, it is harder to build and maintain in-house testing facilities that mimic real-time environments. Cloud computing is opening up new vistas of opportunity for testing. Compared to maintaining an in-house test environment, cloud- based testing offers a compelling combination of lower costs, pay-peruse and elimination of upfront capital expenditures [1]. The benefits, however, extend beyond cost. The non-cost factors includes utility like, on-demand flexibility, freedom from holding assets, enhanced collaboration, and greater levels of efficiency. Most importantly, it reduces time-to-market for key business applications. At the same time, cloud-based testing introduces a new set of challenges, such as data security and a lack of standards, especially in the public cloud model.
Time-to-market is often restricted by traditional test
environments. That’s because creating on-premise test
————————————————
Dr.K.Alagarsamy is currently working as Associate Professor in computer
centre of Madurai Kamaraj University, Tamil Nadu, India. Email:alagarsamymku@gmail.com
typically take weeks or months to set up a simple test environment for a single application, delaying its release. On- demand provisioning jumpstarts the process for forward-thinking companies, since testing resources required to meet time-to- market demands already exist in the cloud and can be provisioned instantaneously.
With cloud-based testing, organizations no longer need to worry about finding servers, procuring licenses for programs and testing tools and installing them. Service providers give testers access to scalable and ready-to-use virtual labs with a library of operating systems, test management and execution tools, middleware and storage necessary for creating a test environment that closely mirrors the real environment. Testers can run existing applications and virtual machines with minimal or no rewriting and utilize pools of virtualized infrastructure to scale up the test environment within minutes.
Rest of the paper is organized as follows. Section 2
presents the conventional software testing process. Section 3 describes the cloud testing. Section 4 gives the Comparison.
IJSER © 2012
International Journal Of Scientific & Engineering Research, Volume 3, Issue 9, Spetember-2012 2
ISSN 2229-5518
Today’s internet world the web applications are integral part of human life. The web based applications are powerful and have the ability to provide feature rich content to a wide audience spread across the globe [3]. These web applications are stored in remote server and accessed through the web browser. In order to produce the quality and secured web application, testing becomes the important activity in web application development life cycle. The next section, presents the conventional testing activities for the web application.
Web Application Testing (WAPT) is a process of checking the web applications to find the potential bugs before the code is moved into the live/ production environment. The following testing activities are generally carried out for WAPT [2] [4].
1. Functional Testing
2. Usability testing
3. Interface testing
4. Compatibility testing
5. Performance testing
6. Security testing
Functional testing ensures that individual functions are working well. Test cases should ensure that boundary conditions are tested. Invalid inputs should prompt appropriate error messages. For web applications, functional testing can range from testing whether links are working to checking whether changes made by users in a web page are reflected in the database.
Usability testing plays a pivotal role with applications that are designed to make manual tasks easier. The applications should comply with accessibility standards. For web applications, usability test includes navigation test and content test.
Interface testing ensures that individual components are connected properly. The output of one module should be fed to the intended module without any issues. Interface testing plays a vital role for web applications. The main interfaces are web server
-application server interface and application server-database
server interface. All the interactions between these servers are executed and tested properly.
Compatibility of the web site is very important testing aspect which ensures that the web application displays correctly across different devices. This would include browser compatibility, operating system compatibility, mobile browsing and printing options.
Performance testing on web applications measures the performance under various scenarios. Performance tests include stress testing, scalability testing and load testing.
Security testing attempts to explore the vulnerabilities of web applications. This would include test unauthorized access to secure pages should not be permitted, restricted files should not be downloadable without appropriate access, check sessions are automatically killed after prolonged user inactivity [5] etc.
1. Testing is a periodic activity and requires new environments to be set up for each project [7].
2. It is harder to build and maintain in-house testing facilities that
mimic real-time environments.
3. Huge cost investment for establishing testing environment.
Cloud computing is a comprehensive solution that delivers IT as a service. It is an internet-based computing solution where shared resources are provided like electricity distributed on the electrical grid [9]. Computers in the cloud are configured to work together and the various applications use the collective computing power as if they are running on a single system.
With the advent of cloud computing, resources are used as an aggregated virtual computer. This gives the flexibility to allocate the resources on demand. Before dwelling to cloud testing, we need to understand the cloud model. Cloud model is composed of three broad service model (SaaS, PaaS, IaaS) and four deployment model [10] (Public, Private, Community, Hybrid Cloud) as shown the below figure 2.
IJSER © 2012 http://www.ijser.org
International Journal Of Scientific & Engineering Research, Volume 3, Issue 9, Spetember-2012 3
ISSN 2229-5518
Under cloud computing paradigm, testing can be classified as Testing a Cloud and Cloud Test.
Testing a Cloud [11][8] refers to the verification and validation of applications, environments and infrastructure that are available on demand. This ensures that applications, environments and infrastructure conform to the expectations of the cloud computing business model. Testing a Cloud includes availability testing, security testing, performance testing, interoperability testing, and disaster recovery testing, multi- tenancy testing.
Cloud Testing [11][6]is defined as ―Testing as a Service‖. Testing as a service can be used to validation of various products owned by organizations or individuals. IT organizations that deal with testing products and services are making use of a cloud based licensing model for their end clients. For instance load testing is available as service; instead of installing a load testing product to test proprietary application, we can avail testing service on demand. The service includes functional as well as non-functional testing of various applications/products. The figure 3 shows the general cloud testing life cycle. The table 1 highlights the benefits of testing environment in cloud.
Functional testing of both internet and non-internet applications can be performed using cloud testing. The process of verification against specifications or system requirements is carried out in the cloud instead of on-site software testing. Support for Multiple browsers
Testing the applications across different browser
versions (IE, Firefox, Safari, Google Chrome, Opera) i.e. multi browser comparisons.
Cloud offerings must be available at all the times. It is the responsibility of the cloud vendor to ensure that there are no abrupt downtimes. In addition the business of the client must not be adversely affected in case of any planned downtime [11]. Accessibility
Accessibility testing is intended to test the accessibility
of the application across the geographies. Mostly 24/7 – application access may be required to cater to user groups across different geographies.
Testing is to ensure that the potentially sensitive information which traverses the cloud is safe and secure.
Testing is ensure that the privacy of the application users and associated information when used in Cloud.
Non-functional testing is done to ensure that a web application meets the specified performance requirements. Unlike the conventional performance testing techniques, where scalability is limited to certain number of users within the network. In cloud, the applications scalability scope is much wider
Measure response times and isolate issues related to specific steps or actions while system is subjected to increasing load from different locations and multi user operations.
Application stability is a major factor as the user count is expected to be in multiples of hundreds.
Due to the cloud characteristics, it is imperative to identify issues as system is tested to breaking points maximum expected capacity or often beyond the expected usage.
Being hosted in a cloud environment it is prudent to determine maximum capacity for current or future hardware, bandwidth or other needs or to validate that installed hardware and network will support expected usage scenarios.
Other testing are failover testing, application security testing,
GRC (Governance Risk Compliance) testing.
Here, we compared the similarities and differences between conventional software testing with cloud testing. Table 2 shows the details in different aspects.
IJSER © 2012 http://www.ijser.org
International Journal Of Scientific & Engineering Research, Volume 3, Issue 9, Spetember-2012 4
ISSN 2229-5518
There are some challenges associated with cloud testing
[7][13].
Conventional software testing incurs high capital cost such as expenditure on hardware, software and its maintenance to simulate user activity from different geographic locations. In case of applications where rate of increase in number of users is unpredictable or there is variation in deployment environment depending on client requirements, cloud testing is more effective. So cloud testing is becoming a hot research topic in cloud computing and software engineering community. The major contributions of this paper is a comparative study on traditional testing with cloud testing and its challenges.
[1]. http://www.cognizant.com/insights/perspectives /taking- testing-to-the-cloud
[2]. http://www.softwaretestinghelp.com/web-application-
testing/
[3]. http://www.exforsys.com/tutorials/testing/challen ges-in-
testing-web-based-applications.html
[4]. http://www.ibm.com/developerworks/ web/ library/ wa-
webapptesting/
[5]. http://www.guru99.com/web-application-testing. html.
[6]. http://en.wikipedia.org/wiki/Cloud_testing
[7]. Cognizant reports, ―Taking Testing to the Cloud‖. March
2011.
[8]. A.Vanitha Katherine, K. Alagarsamy,"Software Testing in
Cloud Platform: A Survey", IJCA, Volume 46– No.6, May
2012
[9]. http://www.ibm.com/developerworks/cloud/ library/
cloudintro/
[10]. http://www.nist.gov/itl/cloud/
[11]. Neha Mehrotra, ―Cloud Testing Vs. testing a Cloud‖,
10th Annual International Software Testing Conference,
Aug 2011.
[12]. H.Kothandaraman, ― Testing Applications n Cloud‖,
Computer Science Corporation 2011.
[13]. Jerry Gao, Xiaoying Bai, and Wei-Tek Tsai, ―Cloud
Testing- Issues, Challenges, Needs and Practice‖, SEIJ,
Vol. 1, No. 1, Sept 2011
IJSER © 2012 http://www.ijser.org
International Journal Of Scientific & E ngineering Research, Volume 3, Issue 9, Spetember-2012 5
ISSN 2229-5518
Table 1: Test E nviron ment in Cloud [12]
Anribu!e> o f clo ud >olulions | Cha ra c eri>lic> | Benef il> |
Adnnced Yinualization | Te>t resources (infra,tools and people)are pooledandt·inualized | Prot·iding efficient imple memationof inde pendellt infrastructure |
Rapid Provisioning | Test resources are proYisio ned on de mand | Reducing test setup and executio ntime and eliminating errors |
Sen·ice Catalog ordering | Test em·ironment are readily a t·aiiable | Enabling visibility, control and automatio n |
Elastic scaling | Test ent·iro nment can be scaled up or do"n by large f actor astheneed emerges | Optimizes,infra and software lic ense usage |
Flexible pricing | Test resources are priced on suppcned topologv and project phases | Offering pricing optionstailored to user resource need |
t\ letering and billing | Test resources used in reserved a re charged back t o LOBs | Prioritizing innontit·e projects |
Re-platformability (Compatibilit y Testing) | Plat form based configurations(for t esring) can be created andmanaged | Comprehensit·e assurance on product s.en·ice |
t\ laintenance ofmultiple test beds based for multiple release t esting | Release based co nfigurations (fortesring) can be created andmanaged | Complete assurance on maint enance of product sen·ice |
Test fact oriessetups | Emer@ng alternative models for supponing clie nt testingneeds | Collaboratin platform enables collectit·e productit·itv |
Sen·ice t·inualization | In a multi componellt a rchit ecture, anilability of a dependellt component(s) manaaed for tesrin.g | E ffectin comple tio n of componellt let·el testing, despite the dependencies on Critical components |
.lli\1 (Applicatio n Lifecycle t\ lanagement) TU.I (Test Lifecvcle Management) suppon | In a multi componellt a rchitecture, a t·aiiability of a dependellt component(s) managed | Effectin completio n of componellt let·el tesring, despite the dependencies on Critical components |
Ta ble 2: Testi ng E n vironment Provi sioning [12.]{13]
Testing | Cloud Based Sofnnre Testing | Connnlional We b-.\pplicalio n Tesling |
Primary Testing Obj ectives | -Assure the quality of functions and performance of SaaS , Clo uds, a nd a pplicationsby len ra@ng a clo ud enti·ronment - As.sure the quality of cloud elas.ticity & scalabilitv based a SL">. | - Assure the quality o fsystemfunctions and performance based on the given specifications - Check usa bility, compatibility, int eroperability. |
Tes.ring and Execution Time | - On-demandt e;t e xecution by third- panies; - Online test executio nin a public cloud; - Offline test executionin a prit·ate cloud | -Offline t est execution in a t est lab. - Tesring a product before its de!iYery |
Tes.ring Environment | - An open public te;t envirollllli!llt \\ith di\'erse comput:ingresomces -A s.calable prit·ate t es.t entirollllli!llt in a test lab. | - A pre-fL'<ed and configured t est emirollllli!llt in a test lab \\ithpurchasedhardware and or so ft·ware. |
Setringthe tesring enti·ronment and configuration | -In minutes | -In days |
Tes.t Simulation | - \-utual online user access simulation - \"inual online traffic data simulatio n | - Simula ted online user access - Simula ted online traffic data |
Snapshots of multiple mac!Unes together (f o r productit·e cloning) | -Limited only by st ora ge space | -Not Applicable |
COTs Package image configurationimages canbe let·e raged to setuplandscapes | -Limited onlv by st orage space | -Not Applicable |
Configuration parameters for the net work lab | -Can be customi.zable and candet·elop script t o automate this | -Mostly manual -prone t o errors |
Sofhnre tools consolidation for la rge clients | -Sa aS model enable this option- customerpaysonly for the usage | -Cost is high -infra maintenance |
Cases where applicable,more than one t ool canbe used | -Economical alternatiYe | -Economically not t-iable |
Testing Cost s | -Based on a pre-defined sen·ice-level- agreemellt (SL-\) - TaaS andC"loudtestingsen·ice costs (pay-as-you-test) - En@neering costsin Sa aS C1oud application vendors | - Requiredhard\\are costs and software (license) costs. - En@neeringcosts in a test process |
IJSER ©2012
htt p://www .llser. ora