For any library that invests in IGI Global's InfoSci-Books and/or InfoSci-Journals databases, IGI Global will match the library’s investment with a fund of equal value to go toward subsidizing the OA APCs for their faculty patrons when their work is submitted/accepted under OA into an IGI Global journal.

Subscribe to the Latest Research Through IGI Global's InfoSci-OnDemand Plus

InfoSci®-OnDemand Plus, a subscription-based service, provides researchers the ability to access full-text content from over 100,000+ peer-reviewed book chapters and 25,000+ scholarly journal articles that spans across 350+ topics in 11 core subjects. Users can select articles or chapters that meet their interests and gain access to the full content permanently in their personal online InfoSci-OnDemand Plus library.

Purchase the Encyclopedia of Information Science and Technology, Fourth Edition

and Receive Complimentary E-Books of Previous Editions

When ordering directly through IGI Global's Online Bookstore, receive the complimentary e-books for the first, second, and third editions with the purchase of the Encyclopedia of Information Science and Technology, Fourth Edition e-book.

Create a Free IGI Global Library Account to Receive a 25% Discount on All Purchases

Exclusive benefits include one-click shopping, flexible payment options, free COUNTER 5 reports and MARC records, and a 25% discount on single all titles, as well as the award-winning InfoSci®-Databases.

Abstract

In cloud computing, applications are hosted, deployed, and delivered as services over the Internet. New cloud application services can be developed by tailoring existing ones, while hiding the complexity of the underlying implementation. Cloud applications may be able to adapt to changes in their environment, which should be secure and reliable. The infrastructure on which cloud applications are built is characterized by power, storage, and virtualization. But how does all of this affect the ability to adequately test cloud applications? This chapter investigates the testability of cloud application services. It focuses on the specific problem of reduced controllability and observability of software services hosted in the cloud, and proposes a novel solution referred to as Test Support as-a-Service (TSaaS). A prototype of TSaaS is also presented, and is used to discuss the feasibility, challenges, and benefits of the approach.

Introduction

Cloud application services use computing resources to deliver Software-as-a-Service (SaaS) over the Internet (Armbrust, 2009). Like conventional applications, SaaS is designed to help a user perform a task, but is hosted and deployed in a cloud computing environment. A provider hosts the application service and the user’s data in the cloud, allowing them to be accessed from any location via the World Wide Web. From a software construction perspective, one advantage of such a model is that new application services can be built by tailoring existing ones, while hiding the complexity of the underlying implementation (Greiler, 2009). The cloud provides ubiquitous access to several reusable software services, thereby facilitating rapid application development.

Although much work is being done to model and build cloud application services, there is significantly less research devoted to testing them (Chan, 2009; Rimal 2009). For the software tester, the use of remotely-hosted services within an application represents a significant challenge. When testing an application that uses another service over the Internet, controllability and observability over the remotely-hosted service is generally limited due to security and privacy concerns (King, 2010). As a result, testability is reduced since developers may not be able to stimulate the service with certain inputs, nor check whether actual test results match the expected results (Beizer, 1990; Binder, 1994). Since testing continues to be the primary means of validation used in the software development industry, it is important to study the impact of emerging paradigms such as cloud computing on software testability.

In this chapter we investigate the testability of cloud application services. As a preliminary step to our investigation, we analyze the characteristics of cloud computing that can make the resulting applications easier, or more difficult to test than non-cloud applications. Analyzing these characteristics provides a means for identifying the major challenges associated with testing cloud applications, and investigating ways in which the cloud infrastructure itself can be harnessed to mitigate those challenges. To narrow the scope of the chapter, we tackle the specific research problem of reduced testability of cloud application services due to remoteness and information hiding. Recommendations are made for improving the testability of cloud application services through the description of a novel approach, referred to as Test Support-as-Service (TSaaS). TSaaS leverages the automated tests and infrastructure, which were used to validate a service during development, for the provision of a set of test support operations to aid remote collaborators who are extending the service.

The major objectives of this chapter are to:

•

Identify and analyze the key factors that influence the testability of cloud applications,

•

Outline a development methodology for TSaaS and define the major architectural components of its implementation,

•

Describe the lessons learned from developing the first prototype of TSaaS, and

•

Discuss the viability and future directions of approaches to testing cloud application services.

Background

Cloud computing is the use of computer technology to provide services over the Internet (Armbrust, 2009). Software-as-a-Service (SaaS) refers to applications that are designed to help users perform a task. Examples of SaaS include Google Docs, Salesforce, and Paypal. The concepts of Platform-as-a-Service (PaaS) and Infrastructure-as-a-Service (IaaS) are similar to that of SaaS. However, instead of application services, PaaS and IaaS deliver software development platforms and hardware infrastructures, respectively. An example of PaaS is Windows Azure (Microsoft, 2011), while the Elastic Compute Cloud (Amazon, 2011) is an implementation of IaaS. Hardware virtualization may be used in the cloud to create abstract computing resources from more powerful physical resources (Barham, 2003; Page, 2008). In a virtualization system, the component responsible for managing virtual resources is called a hypervisor.