ISSN: 2229-371X

All submissions of the EM system will be redirected to Online Manuscript Submission System. Authors are requested to submit articles directly to Online Manuscript Submission System of respective journal.

CLOUD COMPUTING TESTING BACKGROUNDS AND CHALLENGES BASED ON ITS ENVIRONMENT

Sanjay Ram M*
Department of MCA, Adhiyamaan College of Engineering (Autonomous), Hosur, India
Corresponding Author: Sanjay Ram M, E-mail: sanjayramm@gmail.com
Related article at Pubmed, Scholar Google

Visit for more related articles at Journal of Global Research in Computer Sciences

Abstract

Cloud computing is a rising platform of service computing designed for speedy and dynamic delivery of assured computing resources. Cloud computing has a solution which helps organizations to focus on their core business rather than concerning about the investment and maintenance of their IT infrastructure. Testing cloud applications has its own inclination that demand for original testing methods and tools. Then again, cloud computing also facilitates and provides opportunities for the development of more valuable and scalable testing techniques. Cloud computing leads an opportunity in tendering testing as a service (TaaS) for SaaS and clouds. For the moment, it causes new issues, challenges and requires in testing, meticulous in testing clouds and cloud-based applications, will be discussed in this paper.

INTRODUCTION

Cloud computing is a trade and money-making model. This model has been successfully deployed and executed for various objects supplies since its initiation, but in the recent years it has been honored for IT products and services. Specifically in the IT industry, there is a broad range of products and services available on-demand. Almost every day, notice various „as a Service‟ offerings like „Storage as a Service‟, „Application as a Service‟, and „endless listing‟ as a Service.
Cloud computing is a recent growth of distributed computing paradigm which can support on-demand service sharing with higher level of flexibility and dynamic scalability. Elasticity and scalability in cloud computing environment can be accomplished through load balancing of application instances running separately on a range of operating systems and connected through Web services [1].
Cloud provides Service-Level Agreements (SLAs) for promised uptime availability, cloud computing make use of a model for enabling convenient and on-demand network access to the distributed and sharable computing resources which are configurable [2] [3]. Though the cloud paradigm holds its potential status in the field of distributed computing, cloud platforms are not so far at the center of most people‟s attention.
Cloud computing facilitates the development and utilization of highly flexible, elastic services on-demand, and over broadband network access. Those attributes are driving many organizations to move their businesses to a cloud platform. Testing has been one of the best practice areas for migrating to cloud environment. Virtualization, which is an enabling technology of cloud computing, was first used for quickly creating virtual computing resources with different operating systems (OS) to test software applications on various platforms [4].
Testing new software often requires costly server, storage and network devices only for a limited time [5]. These computing resources are either not used or underutilized after testing, thus gaining extra cost on budget. Especially in some function domains, software testing requires extensive resources. Mobile application providers frequently have to deal with maintaining the quality of their services over a surplus of various combinations of platforms [6]. The computing platforms may include various browser technologies with different backend support running on various mobile OS. To ensure a reliable service, providers have to test their services on all these platforms.
Cloud-based testing has several advantages:
1. Rapid customization of hardware resources - As Companies are allowing cloud environment for their testing use due to the dynamic nature applications which are complex and distributed in the industry.
2. On-demand test services (by an intermediary services) to conduct large-scale and efficient real-time online validation for internet based software in clouds.
3. Effective use of Resources - As Companies are moving most of the frequently used services, instruments, functions, infrastructure and carry hooked on the cloud, it will allow companies to use the resources on the core competencies which helps them developing faster in terms of their ambition and enables them to earn additional money.
4. Easily control scalable cloud system infrastructure to test and calculate the system (SaaS / Cloud / Application) performance and scalability.
In this paper described in section 2 overview of cloud computing like benefits, limitations and distributed cloud environment, and section 3 cloud computing testing environment – non-functional and functional testing environments and section 4 operational challenges of cloud testing and conclusion.

OVERVIEW OF CLOUD COMPUTING

Cloud computing:
Cloud testing is an important part of cloud computing, a new direction in information technology. Cloud computing has gained considerable interest in recent years as a new paradigm for developing and delivering computing applications and services.
Major characteristics of cloud computing are: Service-oriented, broad network access, loose coupling, rapid elasticity, strong fault tolerant, ease use, On-demand, self-service, resource pooling and measured service. The cloud service models are the following:
Cloud computing Software as a Service (SaaS): Applications and products are available on demand for any Internet user.
Cloud computing Platform as a Service (PaaS): The runtime environment is available on demand which is used by developers to deliver their applications.
Cloud computing Infrastructure as a Service (IaaS): Computing resources such as power, storage, networking components or middleware are available on demand. The Cloud is widely categorized on the root of deployment models as well: public, private, community and hybrid Clouds.
Benefits:
The Cloud business model is economically advantageous both for the vendor and end user. The additional advantages of using this business model are: Scalability: Scalability is a fixed quality for cloud deployments. Cloud occurrences are deployed automatically only when needed and as a result, just pay only for the functions and data storage needs. And also lands elasticity since clouds can be scaled to meet changing IT system demands. Almost Unlimited Storage: Storing information in the cloud gives almost unlimited storage capacity. So that, no more need to bother about running out of storage space or increasing current storage space availability. Easy Access to Information: Once registers in the cloud and can access the information from anywhere, where there is an Internet bond. This convenient feature lets move to time zone and geographic position issues. Cloud is environmentally friendly: The cloud is in common more efficient than the typical IT infrastructure and it takes fewer resources to work out, thus saving energy. The benefits are already realized by many IT majors worldwide thanks to cloud providers like Amazon [7], Netmagic and others who are offering public as well as private cloud [8] and its impact cannot be ignored by businesses striving to overcome the constraints of their current IT hardware whilst struggling to justify the cost of investing in major upgrades. Service providers such as Sogeti [9] have a role to play in providing customized cloud strategy and support in delivering efficient and plain test execution scheduled the private, public or hybrid cloud. The Cloud computing model should be invented as “Green Model” as it maximizes practice of resources and minimizes consumption making it environment friendly.
Limitations:
When a vendor migrates from the existing business to the Cloud or is planning to launch a new business on the Cloud, there are various challenges in adopting this business model. Some of the major challenges are: Data integrity, security, privacy and availability.
Similarly, with its entire limitations, the Cloud computing model is a gain especially for small and medium business enterprises. Most of the dangers associated with this model are mitigated by verification and validation. Cloud computing affects all stages of software life cycle, including software testing. Similar to an acceptance of standard terminologies such as SaaS, PaaS, and IaaS in cloud computing environment, the term „Testing as a Service (TaaS)‟. [10][11].
Cloud testing is analyses using three important categories: application, management, and legal and financial issues. Cloud testing has costs and risks and therefore is not necessarily suitable for all types of users and software. In terms of these groups, the following matters are:
Application appropriate for online software testing;
Readymade online performance testing packages for any customer;
Quality checks for applications tested in the cloud;
Coordination of the processes across multiple players;
Online testing results for e-business systems;`
Test cases that are self-sufficient of each other;
A self-contained and easily specialized operational environment;
A programmatically accessible edge suitable for automated testing.
Based on these considerations, the most suitable test cases for cloud environment are:
Unit testing and regression testing;
High volume automated testing;
Performance testing.
Appropriate testing must be at the top priority of any Cloud solution to ensure the delivery of a secure, integrated solution which assurances the needs of the business it is indented to serve. Cloud computing the buzzword is the single largest trend in computing infrastructure today. Cloud Computing is a much more generalized term in which little or no centralized infrastructure exists.
Distributed cloud environment:
The distributed data warehousing (Fig.1) supports and processing with end user through the cloud environment; data warehousing raises the bar on cloud environment. Capabilities such as data aggregation roll-up and related query severe operations may usefully be exposed at the interface whether as Excel-like functions or actual API calls. In the race between computing power and the outburst of data, large volumes of data continue to be stuffed behind I/O subsystems with restricted bandwidth. Growing data volumes are winning. Still, with cloud environment (as with web services), the service, not the database, is the principal data integration method [12].
image
Data warehousing in the cloud will push the pendulum back in the direction of data marts and analytic applications. It is hard to image anyone moving an existing multi-terabyte data warehouse toward the cloud. Such databases will be showed to intra-enterprise corporate clouds, thus the database will want to be web service pleasantly.
The predictable advertise around cloud computing will get a good dose of reality when it confronts the realities of data warehousing. Testing a SaaS in a cloud - It assures the quality of a SaaS in a cloud based on its Functional and Non-functional service requirements. Testing of a cloud environment – It validates the quality of a cloud from an exterior view based on the provided cloud specified capabilities and service traits. Cloud and SaaS vendors as well as end users are interested in carrying on this type of testing.
Testing inside a cloud - It checks the quality of a cloud from an internal view based on the internal infrastructures of a cloud and précised cloud capabilities. Cloud vendors only can execute this type of testing since they have accesses to internal infrastructures and connections between its internal SaaS(s) and management, security, monitor and automatic capabilities. Testing over clouds – It tests cloud-based service applications above clouds, including public, private, and hybrid clouds based on system point application service requirements and patterns. This usually is executed by the cloud-based application system providers.
Development, Test, Acceptance and Production backgrounds
As IaaS and PaaS solutions, cloud test backgrounds need to be virtualized parts of that background. This both makes implementation easier and facilitates the execution of the different instances in the cloud. These virtualized testing backgrounds can be added or removed from the cloud at will, thus providing a flexible option to create test environments (including required configuration), at any time desired.
Development backgrounds:
Cloud solutions are distinctively well grouped to creating development backgrounds, because they are regularly, relatively small in volume.
Test background:
The use of cloud solutions for test environments is highly dependent upon the nature of the applications, information systems (whether administrative or technical), test planes and test varieties. The applicability of a cloud test environment as well depends on criteria like test information, dependencies and edges.
Acceptance background:
A Public Cloud solution is less suited than a traditional environment one for acceptance testing. It is often necessary to use test data and therefore private and hybrid cloud solutions seem the most appropriate for acceptance environments, or parts thereof. Though, when using agile development systems, acceptance testing on the cloud can be achieved iteratively in each background, gradually. Whenever the infrastructure needs to be upgraded to a “production-like” infrastructure, the background can be increase in small size, and after the tests have been carried out, it can be decrease in small size.
Production background:
These are able to also be formed, provided that “cloud-ready” applications.

CLOUD COMPUTING TESTING ENVIRONMENT

Testing a Cloud refers to the verification and validation of backgrounds, applications and infrastructure to are available on-demand. This guarantees that applications, backgrounds and infrastructure conform to the expectations of the cloud computing business form.
Non-Functional Testing:
Every Cloud offering requires traditional and contemporary verification strategies. Conventional testing methodologies are ideal for on-premise applications and backgrounds. Any product or service offered on-premise or on cloud should get together its practical requirements. Specifically for Cloud offerings, the same (or may be more) prominence is required on non-functional requirements. The business must carefully analyze and document what they require from such a solution clearly and instantly recognizable. Fulfilling the business requirements are the key for the success of any software solution since business look more and more often to third parties to deliver these solutions in the Cloud Computing set up, the foundations for the delivery have to be concrete. Business requirements are these foundations. Thorough testing on business requirements will definitely ensure that these are precise and complete. This understanding of what is being asked for in requirements can be achieved through reviews, periodical customer meets and workshops. This will save time and money, later in the software development lifecycle by removing potential software defects before they are built.
Load or Stress testing:
It can be used to prove that the developed solution can scale as required. Software testing tools like the Load Runner and other testing techniques can be used for this purpose. HP LoadRunner can emulate hundreds or thousands of concurrent users to put the application through the rigors of real-life user loads [1].
Performance Testing:
Performance measurement for a Cloud offering is different from on-premise offering. The cloud should be elastic. Elasticity enables enterprises to use limited resources from the cloud application and raise the usage as mandatory. Thus, the Cloud offering should be tested for altering usage. The performance of the application should stay integral with maximum inflow of requests.
Security testing:
Security testing which is an indispensable part of testing applications due to increase in security breaches in business [13]. This can provide assurance that business critical data is stored and transported safely. There must be no unofficial access to information. Shared data integrity should be maintained and secured at all times. At present several organizations and communities are formalizing industry standards to define the acceptability criteria for Cloud offering in terms of security.
Availability Testing:
Cloud offerings must be available at every time. It is the responsibility of the cloud vendor to guarantee that there are no immediate downtimes.
Interoperability Testing:
Any developed or migrate with Cloud application must work in multiple environments and platforms (Fig.2). The application should also have the capability to be executed across various Cloud platforms. It should be easier to move the Cloud applications and platforms from one Infrastructure (as a service) to another Infrastructure. The Security Testing, standards are being formalized for interoperability between diverse Cloud offerings too.
image
Disaster Recovery Testing:
It is preferred that a Cloud offering be available all the time, though it is not 100% achievable even for on-premise applications. In case of a collapse, the disaster recovery time must be low. Verification must be done to ensure the service is back online with minimum adverse effects on the client‟s business.
Multi-tenancy Testing:
Multi-tenancy refers to multiple clients and organizations using an on demand offering. Considering the requirements to be verified for multi-tenancy, the presenting be supposed to be customizable for each client and should provide data and configuration stage security to stay away from any access related issues. A cloud presenting is supposed to be thoroughly validated for every client whenever various clients are active at a specified time.

Functional Testing:

System testing:
System testing techniques allow the proving of the systems performance within its personal entity. Before consideration of any deployment it is serious to prove that the system functions as it has been designed, that the system sections work collectively, entries and exits are as supposed and the overall resulting system is a high quality system.
Integration testing:
Integration testing allows the business to verify that the Cloud solution will work within the current infrastructure and backgrounds, proving that the implementation of a cloud solution does not damage blow any existing systems. The business requirements must be verified and validated to confirm that the end result of the cloud solution will meet the documented needs of the business.
User Acceptance Testing:
User Acceptance Testing will use business requirements to prove that the delivered Cloud solution meets those needs. The location independence element of Cloud Computing solutions makes these types of applications the most versatile in terms of test. The major ways of Cloud computing testing services are (Figure 3):
On-Demand: Testing on demand is used to test On-Demand software as well. It is suitable ever more fashionable to use testing as a service to reproduce production such as cloud backgrounds instead of traditional on-premise testing products.
On-Premise: „Testing as a service‟ can be used for validation and verification of a variety of products owned by businesses or persons.
image
Products are available in all the three delivery models. A variety of non-functional testing for instance security, load, stress, performance and interoperability testing are offered as:
SaaS: Testing products and services are identified as on demand testing applications and are at this time being widely deployed for black box models.
PaaS: Build and automation environments are available on demand. Developers can make use of the on demand environments to build and test the automation scripts.
IaaS: Businesses offer their storage servers or network and other computing infrastructure on demand which are used for verification and validation in production-like environments.
To decide on verification and validation policies, Cloud vendors must understand the technical and commercial portions of their cloud computing offering. Migration of an on-premise function to the cloud computing requires a comprehensive test plan and execution at every stage of migration.
Testing for the cloud classifies the testing of applications that are specifically developed to run on a cloud platform. This fact needs that the application might be utilizing parallel computing features of cloud computing or it might be a multithreaded application. Parallel program testing becomes more critical with the proliferation of cloud computing services. Cloud service development and deployment, test task management, cloud infrastructure and storage, cloud applications domains are good examples of testing for the cloud [14].
The system under test resides either on-premise or on the cloud for testing purposes, but it‟s deployed on a platform other than cloud. Testing for certification is a good example for testing on the cloud. On-demand service delivery attribute of software testing over the cloud paradigm might attract end-users to test the applications which they will install on their PC or mobile devices or check the applications‟ conformance to certain standards [15]. Unit testing activities are another area where on-demand software testing service can be utilized. Symbolic execution concept has been migrated to cloud environment, which facilitates automatic test case generation for unit tests [16] [17] [18].

OPERATIONAL CHALLENGES IN CLOUD TESTING

Operational challenges:
Infrastructure requirements:
It is vital that infrastructure requirements are meticulously set, for the reason that the very flexibility that the cloud offers for testing backgrounds can itself be a risk if the requirements for those backgrounds are not suitable. Results will then be poor and unhelpful perceptions of the cloud as a test background will result from what was really inattentiveness to requirements around the infrastructure. Using a simple checklist will help decrease this danger to a bare minimum.
Legacy Systems:
Most types of services and systems can be virtualized, including legacy systems, but 5-10% of all systems cannot. However, by using strong interfaces through these legacy systems, the risk caused by that disjunction can be decreased.
Security Issues:
The well-publicized nervousness around security in the cloud is an issue that all service providers are working hard to answer. Fundamentally the environment of cloud computing means the data of one consumer is often stored along with another data. To some scope that challenge is being met all the way through encryption, which is often used to isolate data at rest, but this is not a heal all and a detailed evaluation of the encryption systems used should always be accepted.

Advantages of cloud testing:

Less organization work:
As the user in borrowing the service / platform / infrastructure from the cloud service provider, there is no need to deploy employees in managerial work for code deployment, data space, test servers etc. hence the operating of the project becomes less complex and containing less man power and work practice.
Independent work environment:
As testing is performing for the application which are on cloud, there is less dependency of office setup or team setup because user can access the application under test through internet. Location base issues also eliminates with cloud assistance.
Elasticity and cleanness:
Special levels or rankings of tests can be performed on separate backgrounds at an organization‟s convenience. The cloud also offers a new stage of simplicity in terms of working out or bug-fixing milieus, which can be launched as rapidly as the images and configuration can be position in place.
Comprehensive and indicative testing:
Even end-to-end tests for more generic business processes can be agreed out in the cloud. All the essential components can be published in the cloud to make the whole chain of systems. Thus, the whole business processes can also be tested; in the cloud, a more “rational” load can be generated than the virtual load generated by other tools. Cloud enabled concert test tools generate the needed load and stress to test an application more exactly.
Cost effective and reduction:
When a user borrows any service / platform / infrastructure from the cloud, it is contracted for particular period of time. In other users user is paying only for the period for which he is using the cloud services. Therefore the overall cost reduces because user does not need to buy the infrastructure or platform. So testing with cloud is cost effective also. Cost reduction need for expensive environments, which need to be used only when tests have to be performed. Traditionally, internal testing and acceptance backgrounds have been lastingly available for testing projects within a company, creating a lasting pressure on development plans and infrastructure resources. Cloud computing backgrounds however can be permitted and not permitted at will, reducing the cost of background management.
Cleaner, Greener Testing:
It is insightfully true that the efficiencies cloud computing provides create it majorly „greener‟ than usual, hosted models. That is true for testing, too. With sharing cloud resources for their test infrastructure, businesses will use IT resources “on-demand” and eliminate ravage.
Geographic clearness and Traceability:
Test data is frequently perceptive and its location is so important, because data entering or exiting national boundaries can flout national and international policies. To address this, the test cloud result is transparent about the geographic location where services and data are stored, and permits clients to remain data on their individual servers, using a VPN connection.
Standardization journey:
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 movement for the standardization of organizations infrastructure. With the aim of key shift will usually catalyze IT transformation and develop internal IT services development, impact further on application consolidation and collection rationalization, and modify the way enterprises look at resourcing IT services domestic. Major technology vendors such as HP, Intel and Yahoo are presently collaborating to create huge cloud „test beds‟ consisting of many thousands of processors working together as centers‟ of excellence in Cloud Computing [19]. Current test tool offerings by the likes of HP and IBM are ideal for non functional and automated testing in a cloud environment [20].

CONCLUSION

Cloud Applications for business are still in their early stages. Cloud testing is a rapidly emerging area in cloud computing. While cloud testing is still maturing, some interesting theoretical and practical results have been achieved. Only less advantages and less testing challenges of cloud computing had been identified. Testing is a periodic movement and new requirements need to be setting up for future trends. The future is going to be cloud computing solutions for large as well as small and medium business environments.

References

  1. David Cheppal et. al, “A Short Introduction Cloud Platforms – An Enterprise Oriented View”, Technical Report, August 2008.
  2. Khurshid Ahmed, Al-Nayeem Abdullah and Gupta Indranil, “Performance Evaluation of the Illinois Cloud Computing Testbed”, Technical Report, June 2009. http://hdl.handle.net/2142/12983.
  3. Judith M. Myerson, “Cloud computing versus grid computing”, White Paper IBM, March 2009.
  4. Ibm cp-40 project. http://en.wikipedia.org/wiki/IBM CP-40, 2012.
  5. Won Kim, Soo Dong Kim, Eunseok Lee, and Sungyoung Lee. Adoption issues for cloud computing. In Proc. of the 7th International Conference on Advances in Mobile Computing and Multimedia, pages 2–5, New York, NY, USA, 2009.
  6. Youssef Ridene and Franck Barbier. A model-driven approach for automating mobile applications testing. In Proc. of the 5th European Conference on Software Architecture: Companion Volume, pages 9:1–9:7, New York, NY, USA, 2011.
  7. http://www.netmagicsolutions.com/cloudcomputing-service-provider-in-india.html
  8. Leah Muthoni Riungu, Ossi Taipale, Kari Smolander, “Research issues for software testing in the cloud”, Proceedings of IEEE second international conference on cloud computing technology and science. Indianapolis, Indiana USA, Dec. 2010, PP 557-564.
  9. Sergiy Vilkomir, “Cloud Computing Infrastructures: Software Testing Aspects,” Proceedings of the 1st International Workshop on Critical Infrastructure Safety and Security (CrISS-DESSERT‟11), May 11-13-2011, Kirovograd, Ukraine, Vol. 1, pp. 35-40.
  10. Leah Muthoni Riungu, Ossi Taipale, Kari Smolander, “Research issues for software testing in the cloud”, Proceedings of IEEE second international conference on cloud computing technology and science. Indianapolis, Indiana USA, Dec. 2010, PP 557-564.
  11. Tauhida Parveen and Scott Tilley, “When to migrate software testing to the cloud?”, Proceedings of the third international conference on software testing, verification and validation workshops (ICSTW), Paris, April 2010, PP 424-427.
  12. Ericson, Jim. Columns in the Clouds, DM Review, August 2008.
  13. “Security testing” - www.testree.com/FA_security_testing.html
  14. W.K. Chan, Lijun Mei, and Zhenyu Zhang. Modeling and testing of cloud applications. In Services Computing Conference, 2009. IEEE Asia-Pacific, pages 111 –118, Dec. 2009.
  15. George Candea, Stefan Bucur, and Cristian Zamfir. Automated software testing as a service. In Proc. of the 1st ACM Symposium on Cloud Computing, pages 155–160, New York, NY, USA, 2010.
  16. Liviu Ciortea, Cristian Zamfir, Stefan Bucur, Vitaly Chipounov, and George Candea. Cloud9: A software testing service. SIGOPS Oper. Syst. Rev., 43:5–10, Jan. 2010.
  17. Stefan Bucur, Vlad Ureche, Cristian Zamfir, and George Candea. Parallel symbolic execution for automated real-world software testing. In Proc. of The Sixth Conference on Computer Systems, pages 183–198, New York, NY, USA, 2011.
  18. Matt Staats and Corina Pasareanu. Parallel symbolic execution for structural test generation. In Proc. of the 19th International Symposium on Software Testing and Analysis, pages 183–194, New York, NY, USA, 2010.
  19. http://www.hpl.hp.com/open_innovation/cloud_collaboration/projects.html
  20. “HPLoadRunner software in the cloud” - www8.hp.com/in/en/software/softwareproduct. html?compURI.
  21. Ewald Roodenrijs,” Testing on the Cloud” A Sogeti Point of View on the potential of Software Testing using Cloud Computing. Version: 1.0, November 1, 2010.