Towards Improving the Testability of Cloud Application Services

Towards Improving the Testability of Cloud Application Services

Tariq M. King (North Dakota State University, USA), Annaji S. Ganti (North Dakota State University, USA & Microsoft Corporation, USA) and David Froslie (Microsoft Corporation, USA)
DOI: 10.4018/978-1-4666-2536-5.ch015


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.
Chapter Preview


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.

Complete Chapter List

Search this Book: