Quote

"Between stimulus and response there is a space. In that space is our power to choose our response.
In our response lies our growth and freedom"


“The only way to discover the limits of the possible is to go beyond them into the impossible.”


Friday 15 June 2012

TaaS in Cloud Computing: What, Why and How

Fundamental Questions about Testing in Cloud

Cloud testing and TaaS are relativly new subjects in software testing community even though there are many technical papers published discussing the cloud architectures, technologies, and models, design, and management. Hence, test engineers and quality assurance managers often encounter many issues and challenges in testing modern clouds and cloud-based applications. Typical questions that come up are as follows:
  • What is cloud testing?
  • What are its special test process and scope, requirements and features?
  • What are different types of cloud testing, environments, and forms do we need to perform?
  • What are the differences between cloud-based software testing and traditional software testing?
  • What are the special requirements and distinct features of cloud-based software testing?
  • What are the special issues, and challenges, and needs for testing in cloud?

What is TaaS and how is it related to Cloud?

Cloud computing is a model enabling an on demand access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal effort. It comes in three major dimensions of service offerings: software-as-a-service (SaaS), platform-as-a service (PaaS), and Infrastructure-as-a service (IaaS). Slowly a fourth dimension is being added to it in the form of Testing as a Service (TaaS) in the cloud. TaaS is an endeavor of bringing the benefits of cloud computing to the world of software testing. By leveraging the benefits offered by cloud computing TaaS can help in following ways:
  • Help reduce the cost of quality in the cloud
  • Reduce the time to create the test environment
  • Reduce full-time resource requirements for testing
  • Reduce test cycle time
  • Enhance parallel and heavy loading
  • Hence decrease time to move to production. 
To understand the relative position of this evolving fourth dimension i.e TaaS, we need to understand the other three dimensions of the cloud offerings i.e SaaS, PaaS and IaaS.
A typical cloud must have several distinct properties: elasticity and scalability, multi-tenancy, self-managed function capabilities, service billing and metering functions, connectivity interfaces and technologies. The highlights of cloud computing can be captured in the following bullets:
  • Clouds can be Private, Hybrid, Public 
  • Cloud services can be as SaaS, PaaS, IaaS 
  • Cloud usage can be Enterprise, Community, Open
The most important characteristics of the cloud offerings are depicted in the picture below: 
The 3 Dimensions of the Cloud
 

Cloud Migration: everyone is thinking if not started yet

Cloud computing provides a cost-effective and customizable means through which scalable computing power and diverse services (such as computer hardware and software resources, networks and computing infrastructures), diverse application services, business processes to personal intelligence and collaboration are delivered as services to large-scale global users whenever and wherever they need.
As a result most of the business in the large and SMB (Small and Medium Business) category have already started or planning to start migration to the cloud. The primary derivatives that are being looked at are the cost effectiveness and lack of effort in scaling up and scaling down the infrastructure.

Over to Cloud: What changes for the Testing Team?

Traditionally people have been working on single server applications and to ensure the quality of such applications several techniques and approaches were developed and practiced over time. Now since the migration to the cloud is becoming general practice hence it is important to understand the Do’s, the Don’t’s, and the How-To of the cloud migration. To perform cloud-based software testing one need to learn testing and measurement activities on a cloud-based environment and how to leverage cloud technologies and solutions. It is important to figure out the relative balance in the efforts/tools/resources that need to be employed to make sure that each of the factors affecting the end-user experience is adequately taken care of without shooting the price of quality. The objectives of the quality team responsible for testing in cloud should now incorporate the following points:
  • To assure the quality of cloud-based applications deployed in a cloud
  • To verify the functional services, business processes, and system performance of the application deployed on the cloud
  • To verify the scalability based on system requirements of the cloud based application
  • To validate software as a service (SaaS) in a cloud environment
  • To validate the software performance and security
  • To check the provided automatic cloud-based functional services, for example auto-provisioned functions
  • To test cloud compatibility and inter-operation capability between SaaS and applications in a cloud infrastructure, for example, checking the APIs of SaaS and their cloud connectivity to others

Types of Cloud Testing

 Cloud Testing can be of following four formats depending on weather you are a cloud vendor:
  • Testing over cloud: It tests cloud-based service applications over clouds, including private, public, and hybrid clouds based on system level application service requirements and specifications. This usually is performed by the cloud-based application system providers.
  • 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.
  • Testing a SaaS in a cloud: it aims to assure the quality of a SaaS in a cloud for it functional and non-functional requirements.

What is new in Cloud Testing?

The new features/areas that are required/come-up in a cloud based testing environment are primarily of the following four types:
  • Cloud-based testing environment/platform: The scalable environment/platform is a new function compared to the traditional fixed, dedicated and pre-configured testing environment.
  • SLAs of the services: In cloud computing, all clouds, SaaS, and applications usually provide diverse services to their end users and customers with well-defined service-level-agreement. Naturally, these agreements will become a part of testing and quality assurance requirements, such as system reliability, availability, security, and performance agreements.
  • Price models and service billing – Since utility computing is one of basic concepts and features in cloud computing, so price models and utility billing becomes basic parts and service for testing as a service. In other words, required computing resources and infrastructures (including tools), and testing task services will be charged based on pre-defined cost models.
  • Large-scale cloud-based data and traffic simulation - Applying and simulating large scale online user accesses and traffic data (or messages) in connectivity interfaces is necessary in cloud testing, particularly in system-level function validation and performance testing.

TaaS Details

TaaS is the enabling of the static/dynamic on-demand testing services in/on/over clouds for the third-parties at any time and all time. One of the primary objectives is to reduce the IT budget of businesses to focus their core businesses by outsource software testing tasks to a third party using TaaS service model. The TaaS workflow can be divided into several sub-tasks which need to be completed to make the TaaS model working. The sub-tasks in the TaaS workflow as follows:
  • TaaS process management, which offers test project management and process control.
  • QoS requirements management, which supports book keeping and modeling of software testing and QoS requirements, including quality assurance modeling.
  • Test environment service, which provides on-demand test environment services to establish the required virtual (or physical) cloud-based computing resources and infrastructures, as well as the necessary tools.
  • Test solution service, which offers diverse systematic testing solutions (such as, test modeling and test methods), and test-ware generation and management services.
  • Test simulation service, which establishes on-demand test simulation environments with selected facilitates (such as tools), and supports the necessary test data/message generation.
  • On-demand test service, which provides on-demand test execution services based on selected schedules and test wares.
  • Tracking and monitor service, which allows test engineers to track and monitor diverse program behaviors at different levels in/on/over clouds for the testing purpose.
  • TaaS pricing and billing, which enables TaaS vendors to offer customers with selectable testing service contracts based pre-defined pricing models, and billing service.