A Novel Framework for Cloud Testing

Similar documents
Going beyond Conventional Software Testing: Cloud Testing

Testing as a Service on Cloud: A Review

Cloud Testing: A Review Article

Survey on software testing techniques in cloud computing

ITL BULLETIN FOR JUNE 2012 CLOUD COMPUTING: A REVIEW OF FEATURES, BENEFITS, AND RISKS, AND RECOMMENDATIONS FOR SECURE, EFFICIENT IMPLEMENTATIONS

Keywords Cloud Environment, Cloud Testing, Software Testing

REVIEW OF CLOUD TESTING, TYPES, CHALLENGES AND FUTURE SCOPE

Software Testing in Cloud Platform: A Survey

Software Trustworthy Testing Based on Cloud Testing

Perspectives on Moving to the Cloud Paradigm and the Need for Standards. Peter Mell, Tim Grance NIST, Information Technology Laboratory

Testing Techniques and its Challenges in a Cloud Computing Environment

Perspectives on Cloud Computing and Standards. Peter Mell, Tim Grance NIST, Information Technology Laboratory

Security & Trust in the Cloud

Keywords Distributed Computing, On Demand Resources, Cloud Computing, Virtualization, Server Consolidation, Load Balancing

The NIST Definition of Cloud Computing (Draft)

Cloud Computing: The Next Computing Paradigm

The NIST Definition of Cloud Computing

See Appendix A for the complete definition which includes the five essential characteristics, three service models, and four deployment models.

Cloud Computing. Course: Designing and Implementing Service Oriented Business Processes

The Hybrid Cloud: Bringing Cloud-Based IT Services to State Government

A Study on Analysis and Implementation of a Cloud Computing Framework for Multimedia Convergence Services

Method of Fault Detection in Cloud Computing Systems

CHAPTER 8 CLOUD COMPUTING

Security Considerations for Public Mobile Cloud Computing

The Magical Cloud. Lennart Franked. Department for Information and Communicationsystems (ICS), Mid Sweden University, Sundsvall.

How To Understand Cloud Usability

Improving IT Service Management Architecture in Cloud Environment on Top of Current Frameworks

TaaS: An Evolution of Testing Services using Cloud Computing

The Application and Development of Software Testing in Cloud Computing Environment

Software as a Service (SaaS) Testing Challenges- An Indepth

Cloud Computing; What is it, How long has it been here, and Where is it going?

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS

Topics. Images courtesy of Majd F. Sakr or from Wikipedia unless otherwise noted.

A Survey on Cloud Security Issues and Techniques

A Framework for the Design of Cloud Based Collaborative Virtual Environment Architecture

CLOUD COMPUTING. A Primer

Performance Management for Cloudbased STC 2012

White Paper. Cloud Performance Testing

A Survey Paper: Cloud Computing and Virtual Machine Migration

OVERVIEW Cloud Deployment Services

Security Issues in Cloud Computing

A Cloud Computing Handbook for Business

Kent State University s Cloud Strategy

Security Aspects of Cloud Computing

East African Information Conference th August, 2013, Kampala, Uganda. Security and Privacy: Can we trust the cloud?

IS PRIVATE CLOUD A UNICORN?

Master the Might of the Hybrid Cloud

OWASP Chapter Meeting June Presented by: Brayton Rider, SecureState Chief Architect

Capability Paper. Today, aerospace and defense (A&D) companies find

Technology & Business Overview of Cloud Computing

Essential Characteristics of Cloud Computing: On-Demand Self-Service Rapid Elasticity Location Independence Resource Pooling Measured Service

A Study on Service Oriented Network Virtualization convergence of Cloud Computing

A New Cloud Computing Architecture by Integrating Recent Best Reference Frameworks

Cloud-Testing vs. Testing a Cloud

CLOUD COMPUTING TECHNOLOGY INFRASTRUCTURE TO SUPPORT THE KNOWLEDGE MANAGEMENT PROCESS (A CASE STUDY APPROACH)

Mobile Cloud Computing Security Considerations

THE CLOUD AND ITS EFFECTS ON WEB DEVELOPMENT

Cloud Computing for SCADA

Planning the Migration of Enterprise Applications to the Cloud

Virtualization Technologies in SCADA/EMS/DMS/OMS. Vendor perspective Norman Sabelli Ventyx, an ABB company

Research on Operation Management under the Environment of Cloud Computing Data Center

Analysis and Strategy for the Performance Testing in Cloud Computing

Ananthakrishnan J Architect, Sonata Software. Ananth B Product Manager Testing Practice. Sonata Software Limited. Sonata Software Limited

[Sudhagar*, 5(5): May, 2016] ISSN: Impact Factor: 3.785

Future of Cloud Computing. Irena Bojanova, Ph.D. UMUC, NIST

Elasticity in Multitenant Databases Through Virtual Tenants

Investigation of Cloud Computing: Applications and Challenges

Security Model for VM in Cloud

Clinical Trials in the Cloud: A New Paradigm?

An Introduction to Cloud Computing Concepts

International Journal of Scientific & Engineering Research, Volume 6, Issue 4, April ISSN

Service Oriented Cloud Computing Architectures. Asher Vitek 12/3/2011 UMM CSci Senior Seminar Conference Morris, MN.

A New Approach Towards Integrated Cloud Computing Architecture

Cloud Computing For Distributed University Campus: A Prototype Suggestion

How To Understand Cloud Computing

A Hybrid Load Balancing Policy underlying Cloud Computing Environment

BUSINESS MANAGEMENT SUPPORT

Architecting the Cloud

Grid Computing Vs. Cloud Computing

THE QUEST FOR A CLOUD INTEGRATION STRATEGY

A Quality Model for E-Learning as a Service in Cloud Computing Framework

Cloud computing: the state of the art and challenges. Jānis Kampars Riga Technical University


Managing Cloud Computing Risk

Evaluation Methodology of Converged Cloud Environments

Transcription:

A Novel Framework for Cloud Testing Ramin Nasiri Central Tehran Branch, Islamic Azad University, Tehran, Iran Abstract Cloud Testing is a critical 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 via existing affordable infrastructures. Cloud-based testing is more efficient and effective than traditional methods [26]. Cloud testing comes to reduce cost and leverage condident of this activity. In this paper we introduce a new framework for cloud testing that includes four components, application analyzer, test case generator, test execution, and test result. The framework is capable to run autonomously. Keywords Cloud Computing, Cloud Testing, Cloud Computing, TaaS. I. INTRODUCTION Cloud computing has gained considerable interest in recent years as a new paradigm for developing and delivering computing applications and services. As it is regular for any new idea, different cloud computing definitions have emerged. The National Institute of Standard and Technology is followed (NIST, USA): Cloud computing is a model for enabling ubiquitous, convenient, On-Demand network access to a shared pool of configurable computing resource (e.g., network, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models. [1]. NIST further considers the following related characteristics and models [2]: Essential characteristics: On-Demand self-service,broad network access, resource pooling, rapid elasticity, and measured service; Service models: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS); Deployment models: Private cloud, community cloud, public cloud, and hybrid cloud. Cloud computing affects all stages of software life cycle, including software testing. Similar to an acceptance of standard terminology such as SaaS, PaaS, and IaaS in cloud computing literature, the term TaaS (Testing as a Service) is acknowledged today as an essential concept for consideration and study[2]. Typically, TaaS is understood to include both the testing of the cloud and testing using the cloud. This paper is structured as follows. In section 2, a few related works on cloud testing are reviewed. Then in section 3, the benefits, challenges, and types of cloud testing are expressed. Lateron, we introduce a new Sarah Hosseini Central Tehran Branch, Islamic Azad University, Tehran, Iran Email: sarahosieni@yahoo.com framework in the third section. Finally, we come to conclude the paper. II. RELATED WORK Cloud testing is a rapidly developing area of research in software engineering. The first research worked on cloud testing appeared within recent years. However, it is too early to talk about significant success or fundamental research and advances in cloud testing. Riungu, Taipale, and Smolander provide a comprehensive discussion of cloud testing [6]. This work is based on a survey conducted with industry practitioners, in which issues are categorized from the application, management, and legal and financial perspectives. The analysis of this survey reveals the requirements of a cloudbased testing solution from the viewpoint of industry practitioners. In terms of application, the following issues are discussed: Applications suitable for online software testing; Quality checks for applications tested in the cloud; Online testing solutions for E-business systems; Harmonization of the test processes across multiple testers. Parveen and Tilley [7] show that not all applications are suitable for testing in the Cloud and nor all types of testing are suitable for the Cloud. Various types of users have their own requirements to cloud testing. Candea, Burcur, and Zamfir[8] compared three different cloud testing approaches: TaaS for developers to test code; TaaS for end users to check the software installed; TaaS for certification to assess software reliability, safety, and security. The authors, as aforementioned, claimed that for all users the combination of recent advances in test automation and the availability of compute clouds can offer unprecedented levels of testing quality. [9] Other efforts on cloud testing research include investigations on clustering, scheduling, and monitoring testing tasks [10], testing criteria based on formal graph models of cloud applications [11], service composition and testing for cloud computing [12]. The recovery strategies and recovery software that is used for hardware failures should be thoroughly tested. This problem was considered by Gunawi, et al [4]. A couple of new testing frameworks for cloud recovery, FATE (Failure Testing Service) and DESTINI (Declarative Testing Specifications) were suggested. FATE systematically tests cloud systems using various scenarios of multiple failures. DESTINI is designed for clear and precise specifications of recovery procedures. 850

III. CLOUD TESTING A. The definition of Cloud Testing Cloud testing is a new form of software testing in which web applications that used cloud computing environments seek to simulate real-world user traffic as a means of load testing and stress testing web sites (as well-known examples in addition to others). Using cloud testing gives users unlimited resources, paying only for what users consume [27]. B. The Reasons for Using Cloud Computing for Testing 1) Cost Reducing Every enterprise is in the pursuit of the lowest cost and maximized benefits. Software testing as a part of R&D process also needs to reduce the cost, with a minimum of hardware and testing software to test software. The cloud testing environment is not necessary for enterprise to setup, because testing service provider has to develop it. 2) Efficient Testing Using cloud testing can reduce setup time in different ways, such as preparing network, installing operating system, software installation, and various testing tools. 3) Rapid Elasticity Cloud services can be rapidly and elastically provisioned, mostly automatically, to quickly scale out and released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time. 4) Multi Tenacity It refers to the need for policy-driven enforcement, segmentation, isolation, governance, service levels, and charge back/billing models for different consumer constituencies. Consumers might utilize a public cloud provider s service offerings or actually be from the same organization, such as different business units rather than distinct organizational entities, but would still share infrastructure. 5) Measured Service Cloud computing resource usage can be measured, controlled, and reported providing transparency for both the provider and consumer of the utilized service. Cloud computing services use a measuring capability which enables to control and optimize resource usage. This implies that just like air time, electricity or municipality water, IT services are charged per usage metrics, for inst. pay per use. The more you utilize the higher the bill. Just as utility companies sell power to subscribers, and telephone companies sell voice and data services, IT services such as network security management, data center hosting or even departmental billing can now be easily delivered as a contractual service. Albeit, recently providers are proposing a variety of complicated packages to their customers which is new in comparison to other areas. C. Suitable Environment for Cloud Testing The definition of cloud shows that some of software tools and environment required in software testing are available for cloud testing, such as: 851 Software environment: operating system, database, browser, etc. Test the compatibility of software on different OS and browsers. By developing of the cloud technology, testing services will be developed and cloud environment also will be more suitable for software testing. D. Challenges of Cloud Testing 1) Security Security includes both enterprise's data and network. When using cloud testing platform, how enterprise realizes its logical information and technical means must be shown in the test scenarios. In this way, If those information is leaked or revealed to the competitors or intruders, it will do sever harm to the enterprise. Cloud testing is made on top of the internet, so it may combat to some restricted situations like slow internet speed, virus attacks, and so on. 2) Lack of Standardization Currently, there is no widely-known standard solution to integrate public cloud resources and data centers. Public cloud providers have their own pricing models that lead to big challenge while need to switch between vendors. 3) Infrastructure A number of developers only suggest limited types of configurations, technology, servers, storage, network, and bandwidth. 4) Usage Improper usage of cloud test environment can increase costs. 5) Planning Testing team members should carefully plan test environment. Further, they should aware about costs, such as data encryption, before testing in cloud environment, because these requirements increase memory consumption and CPU usage. E. Suitable Tests for Cloud Environment Different types of testing can be run on the cloud environment. 1) Stress Testing 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. 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. 2) Load Testing Load testing 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. 3) Performance Test Finding out thresholds, bottlenecks & limitations is a part of performance testing. For this, testing performance under a particular workload is necessary. 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. 4) Functional Testing 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. 5) Latency Testing Cloud testing is utilized to measure the latency between the action and the corresponding response for any application after deploying it on cloud. 6) Security Testing It is necessary to keep secure stored data on cloud, safe connection between cloud software. F. Types of Cloud Testing There are three different type of cloud-based testing. Each of them has different issues and objectives. 1) Testing a SaaS in a Cloud SaaS testing comprises of validating SaaS applications with business workflow, data integration, application/network security, compliance, performance, availability, scalability, multi-browser compatibility, multi-tenancy, disaster recovery and live upgrade testing. SaaS testing focuses on the core components of application, network, and infrastructure. Challenges in SaaS testing: Testing SaaS upgrades; Business knowledge for effective testing of configurable and non; Validating interface compatibility; Data security and privacy; Enterprise application integrations; Simulating live upgrade testing; Validating data migration from the existing system to a SaaS application; Data migration from one SaaS application to another; Frequent releases of feature rich SaaS application. 2) Testing as a Service TaaS or automated software testing as a cloud-based service (by George Candea) is a critical paradigm. Testing services for cloud are on the rise, because companies seek to reduce costs, speed time to benefit and improve quality of the applications. TaaS is an innovative concept, and it refers to provide on-demand testing service on clouds at any time and all time (365/7/24). 3) Testing a cloud Testing of a cloud: It validates the quality of a cloud from an external view based on the provided cloud specified capabilities and service features. 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 specified cloud capabilities. Only cloud vendors can perform this type of testing since they have accesses to internal infrastructures and connections between its internal SaaS(s) and automatic capabilities, security, management and monitor. 852 IV. OUR PROPOSED FRAMEWORK FOR CLOUD TESTING The software development process is changing with cloud computing, and software testing is a part of this process. Cloud testing is a new model that has changed software testing. The growing importance of cloud testing has received attention in recent years. Cloud-based testing is more efficient and effective than traditional methods but organizations must understand and trust it before it faced widespread adoption. Testing activities consist of designing test cases that are sequences of inputs, running the application with test cases and examining the results produced by this execution. Figure 1 gives a structural overview of the constituent components of our software testing framework. We apply our technical proposals in designing the application or SaaS analyzer, test case generator, test execution, and test result. Fig.1. Framework architecture. The system being tested is not itself part of the framework. The application analyzer accepts source application of cloud platform as input to identify and analyze the key factors that influence the testability of cloud applications. The test case generator generates test cases, possibly from a large test pool, and executes the test cases dynamically on the instrumented programs. We have talked about the need for the framework and what framework based testing looks like. The first step in this process is to analyze the application. This helps us to find testable regions. We then need a test case generator to generate suitable test case based on analysis that we do in previous step. The test case generator generates test cases from a test library, and executes the test cases dynamically. These steps are fully automated. After obtaining an adequate test suite, the test execution enforces each test case and records the corresponding output. Then it applies an approach to evaluate whether the test case induces an application failure. The test reports synthesize the test results of different test suites.

Application analyzer find regions which parts of the application s code should be tested by test cases. For it to be effective, 100 percent of the product's code should be executed by the test cases. If there are segments of application code that are never run during testing, then the application has not been thoroughly tested. Code coverage is a measure used in software testing. It describes the degree to which the source code of an application has been tested. Some of the basic testing techniques based on code coverage are Statement Coverage, Path Coverage, Condition Coverage, and Function Coverage. Test coverage attempts to address questions about when to stop testing, or the amount of testing that is enough for a given program. It is a dynamic white box testing technique. A lot of research literature focuses on test cases selection techniques that outperform random testing in certain aspects. According to the different kinds of software artifacts that testers obtain for testing, test can be further classified into structural testing and functional testing [23]. Structural testing is also best known as whitebox testing or code-based testing. Functional testing refers to the testing strategies where the functional specification rather than the source code is used to guide test cases selection. Therefore it is also known as black-box testing or specification-based testing. These test cases generation techniques use fitness functions to characterize the test requirements, and apply algorithms to search for test cases that achieve the goals, i.e., covering the test requirements [23]. The test case generator produces new test cases that would cover the target conditions in the code from the structure file and determines what conditions should be targeted for new test case generation. Test execution in the Cloud leverage the resources provided by a cloud computing infrastructure to facilitate the concurrent execution of test cases. By leveraging the cloud, tests can be distributed globally, executed at any scale, and run affordably. The report of execution prints the result which includes the generated test cases, condition and branch coverage and percentage of path coverage. Reporting is an important part of the development lifecycle in the quality management area. Reports can be either text-based or graphical. The reports is used to check test case coverage of requirements, follow test execution results to see trends, or display defects that are associated with a selected test plan. Embedded reporting capabilities meet the most common report requirements for quality management. Generated test cases require test data for their execution which makes the test data generation a building block activity in the overall test cases execution process. Many tools and frameworks have been implemented; some are used for test cases generation, others used for test data extraction, whereas others are for reducing already existing sets of test cases or test data by selecting subsets from them, trying by this to optimize the use of test cases or test data. It can be done by many test data generation techniques based on evolutionary testing, genetic algorithms, and other more [24]. V. CONCLUSION In this paper cloud testing are reviewed, advantages and challenges of it are expressed. Then a new framework is introduced that has four components, application analyzer, test case generation, test execution, and test result. First, the application should be analyzed, by code coverage techniques. The test cases extraction and the test data generation being the main building blocks in any testing process. Then test cases are generated and executed. Finally, test results evaluate. The Proposed model is still an abstract model and should be drilled down which is subject of the next paper to be published. REFERENCES [1] Peter Mell and Timothy Grance, The NIST Definition of Cloud Computing, Recommendations of the National Institute of Standards and Technology, January 2011. [2] Lian Yu, Wei-Tek Tsai, Xiangji Chen, Linqing Liu, Yan Zhao, Liangjie Tang, and Wei Zhao, Testingas a Service over Cloud, Proceedings of Fifth IEEE International Symposium on Service Oriented System Engineering, June 2010. [3] Lee Badger, Tim Grance, Robert Patt-Corner, Jeff Voas, Cloud Computing Synopsis and Recommendations, Recommendations of the National Institute of Standards and Technology, May 2012. [4] Haryadi S. Gunawi, Thanh Do, Pallavi Joshi, Peter Alvaro, Joseph M. Hellerstein, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Koushik Sen, and Dhruba Borthakur, FATE and DESTINI: A Framework for Cloud Recovery Testing, Proceeding of 8 th USENIX conference on Networked system design and implementation, April 2011. [5] Jerry Gao, Xiaoying Bai, and Wei-Tek Tsai, Cloud Testing- Issues, Challenges, Needs and Practice, SEPTEMBER 2011. [6] Leah Muthoni Riungu, Ossi Taipale, Kari Smolander, Research Issues for Software Testing in the Cloud, Proceedings of the IEEE second International conference on Cloud Computing Technology and Science, Dec. 2010. [7] T. Parveen, and S. Tilley, When to Migrate Software Testing to the Cloud?, In proc. 2nd International Workshop on Software Testing in the cloud (STITC), 3rd IEEE International Conference on Software Testing, Verification and Validation (ICST), April 2010, pp. 424-427. [8] George Candea, Stefan Bucur, Cristian Zamfir, Automated Software Testing as a Service, Proc. 1st ACM Symposium on Cloud Computing (SOCC), Indianapolis, IN, June 2010. [9] T. Vengattaraman, P. Dhavachelvan, R. Baskaran, A Model of Cloud Based Application Environment for Software Testing, 2010. [10] Conventional Software Testing Vs. Cloud Testing, Mrs.A.Vanitha Katherine, Dr. K. Alagarsamy, Spetember-2012. [11] W.K. Chan, Lijun Mei, Zhenyu Zhang, Modeling and Testing of Cloud Applications, IEEE APSCC, 2009. [12] Wei-Tek Tsai, Peide Zhong, Balasooriya, J., Yinong Chen, Xiaoying Bai, Elston, J., An Approach for Service Composition and Testing for Cloud Computing, Autonomous Decentralized Systems (ISADS) 10th International Symposium on, March 2011. [13] Fang Weidong,Xiong Yong, Cloud Testing: the Next Generation Test Technology, The Tenth International Conference on Electronic Measurement & Instruments, 2011. [14] Xiaoying Bai, Muyang Li, Bin Chen, Wei-Tek Tsai, Jerry Gao, Cloud Testing Tools, Proceedings of The 6th IEEE International Symposium on Service Oriented System Engineering, 2011. [15] Koray Incki, Ismail Ar, Hasan S ozer, A Survey of Software Testing in the Cloud, IEEE Sixth International Conference on Software Security and Reliability Companion, 2012. [16] Atif Farid Mohammad, Hamid Mcheick, Cloud Services Testing: An Understanding, Procedia Computer Science 5, 2011. 853

[17] Prakash.V, Gopalakrishanan.S, Cloud Computing Solution - Benefits and Testing Challenges, Journal of Theoretical and Applied Information Technology, 15 May 2012. [18] K. Priyadarsini, V. Balasubramanian, S. Karthik, Cloud Testing as a Service, International Journal of Advanced Engineering Sciences and Technologies, 2011. [19] G.Jagadeesh, Sandeep Aluri, Dr.Anirban Basu, Cloud based testing: need of testing in cloud infrastructures and cloud platforms, International Journal of Computer Science and Information Technology & Securit, 2012. [20] S. Ravichandran, Innovative Method of Software Testing Environment Using Cloud Computing Technology, International Journal of Communication and Networking System Volume: 01 Issue: 01 January-June 2012. [21] Prakash.V, Bhavani.R, Cloud Testing Muths Facts and Challenges, International Journal of Reviews in Computing, 10th April 2012. [22] William Jenkins, Sergiy Vilkomir, Puneet Sharma, George Pirocanac, Framework for Testing Cloud Platforms and Infrastructures, International Conference on Cloud and Service Computing, 2011. [23] Boris Beizer. Software testing techniques. Van Nostrand Reinhold, New York, USA, 1990. [24] Pakinam N. Boghdady, Nagwa L. Badr, Mohamed Hashem and Mohamed F.Tolba, Test Case Generation and Test Data Extraction Techniques, International Journal of Electrical & Computer Sciences IJECS-IJENS, 2011. [25] A.Vanitha Katherine, K. Alagarsamy, Software Testing in Cloud Platform: A Survey, May 2012. [26] Leah Riungu-Kalliosaari, Ossi Taipale, Kari Smolander, Testing in the Cloud: Exploring the Practice, IEEE Software Magazine, 2012. [27] en.wikipedia.org/wiki/cloud_testing. 854